00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __freMediaContainerController_h
00023 #define __freMediaContainerController_h
00024
00025 #include "freMediaContainerControllerBase.h"
00026 #include "freMediaContainer.h"
00027
00028 namespace FREE
00029 {
00030
00031 freControllerIDMacro(MediaContainerController, "Media Container");
00032
00038 class MediaContainerController : public MediaContainerControllerBase< MediaContainer >
00039 {
00040 public:
00041 typedef MediaContainer ComponentType;
00042 typedef MediaContainerControllerBase<MediaContainer> Superclass;
00043
00044 itkTypeMacro(MediaContainerController, MediaContainerControllerBase);
00045
00046 MediaContainerController();
00047
00048 virtual ValidityTag::Pointer GetMediaValidityTag(const MediaID& mediaID, SessionComponentCache* pComponentCache) const;
00049
00050 virtual ValidityTag::Pointer GetMediaValidityTagRequirement(const MediaID& mediaID, SessionComponentCache* pComponentCache) const;
00051
00052 virtual std::string GetMediaControllerID(const MediaID& mediaID, SessionComponentCache* pComponentCache) const;
00053
00054 protected:
00055 virtual GenericComponentType* GetSubComponentCasted(ComponentType* pMainComponent,
00056 const ComponentID& compID,
00057 SessionComponentCache* pMainComponentCache) const;
00058
00059 virtual void SetSubComponentCasted(GenericComponentType* pSubComponent,
00060 ComponentType* pMainComponent,
00061 const ComponentID compID,
00062 SessionComponentCache* pMainComponentCache) const;
00063
00064 virtual GenericMediaPointer GetMediaCasted(const MediaID& mediaID,
00065 ComponentType* pComponent,
00066 SessionComponentCache* pComponentCache,
00067 SessionInfo* pSessionInfo) const;
00068
00069 virtual void SetMediaCasted(const MediaID& mediaID,
00070 GenericMediaType* pMedia,
00071 ComponentType* pComponent,
00072 SessionComponentCache* pComponentCache,
00073 SessionInfo* pSessionInfo) const;
00074
00075 };
00076
00077 }
00078
00079 #endif