OSDN Git Service

first commit
[eliscolors/main.git] / ElisLayer.h
1 //
2 //  ElisLayer.h
3 //  Elis Colors
4 //
5 //  Created by 柳 on 09/09/12.
6 //  Copyright 2009 __MyCompanyName__. All rights reserved.
7 //
8
9 #import <Cocoa/Cocoa.h>
10 #import "ElisBase.h"
11 #import "ElisMedia.h"
12 #import "ElisEffect.h"
13
14 // Elisの中核となるデータ構造。モデル。
15 // Old ElisのLayer+Trackに相当。
16
17 // 徐々に肥大化しつつある。どうしよう。
18
19 @interface ElisLayer : NSObject {
20     ElisMedia* media;  // メディアオブジェクト
21     int trackNumber;  // トラック番号。0から
22     QTTimeRange mapping;
23     CALayer* alayer;
24     NSPoint position;
25     QTTime offset;
26     NSMutableArray* effects;
27     ElisKeyframe *pxKeyframe, *pyKeyframe; // Positionのキーフレーム
28 }
29
30 //@property (assign) QTTimeRange mapping; // マッピング情報。(QTTimeRange)
31 @property (assign) ElisMedia* media;
32 //@property CALayer* alayer;
33 //@property (assign) NSValue* offset;
34
35 - (void)changeMapping;
36 - (void)setAlayer:(CALayer *)layer;
37 - (int)trackNumber;
38 - (NSPoint)getPositionForTime:(QTTime)time;
39 - (BOOL)isInclude:(QTTime)time;
40 - (CIImage*)getEffectedImage:(CVTimeStamp*)timeStamp forTime:(QTTime)time;
41 - (void)play;
42 - (void)stop;
43 - (QTTimeRange)mapping;
44 - (CIImage*)getEffectedImageWithoutStamp:(QTTime)time;
45
46 - (BOOL)canChangeOffset:(float)df;
47 - (void)changeOffset:(float)df;
48 - (BOOL)canChangeMapping:(CGRect)rect;
49
50 - (CIImage*)applyEffects:(CIImage*)image forTime:(QTTime)time;
51 - (void)addEffect:(NSString*)name;
52 - (QTTime)convertToInnnerTime:(QTTime)globalTime;
53
54 - (void)createPropertyTableDataSource:(NSMutableArray*)t_effects
55                              property:(NSMutableArray*)t_propertyNames
56                                 value:(NSMutableArray*)t_valueNames;
57
58 - (void)setPositionY:(float)y forTime:(QTTime)time;
59 - (void)setPositionX:(float)x forTime:(QTTime)time;
60
61 - (QTTime)plusOffsetTime:(QTTime)time;
62 - (void)removePositionXKeyframe;
63 - (void)removePositionYKerframe;
64
65 @end