00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef MOBJECT_SESSION_CLIP_H
00025 #define MOBJECT_SESSION_CLIP_H
00026
00027 #include "proc/mobject/session/abstractmo.hpp"
00028
00029
00030 namespace asset
00031 {
00032 class Media;
00033 class Clip;
00034 }
00035
00036 namespace mobject
00037 {
00038 namespace session
00039 {
00040 using asset::Media;
00041 typedef P<Media> PMedia;
00042 typedef P<asset::Clip> PClipAsset;
00043
00044
00057 class Clip : public AbstractMO
00058 {
00059 protected:
00061 Time start_;
00062
00070 const Media & mediaDef_;
00071 const asset::Clip & clipDef_;
00072
00073 Clip (const asset::Clip&, const Media&);
00074 friend class MObjectFactory;
00075
00076
00077 virtual void setupLength();
00078
00079 public:
00080 virtual bool isValid() const;
00081
00083 PMedia getMedia () const;
00084
00089 PClipAsset findClipAsset () const;
00090
00091 DEFINE_PROCESSABLE_BY (builder::BuilderTool);
00092
00093 };
00094
00095 typedef Placement<Clip> PClipMO;
00096
00097
00098
00099 }
00100
00102 DEFINE_SPECIALIZED_PLACEMENT (session::Clip, MObject);
00103
00104
00105 }
00106 #endif