00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __freMediaControllerBase_h
00023 #define __freMediaControllerBase_h
00024
00025 #include "freControllerBase.h"
00026 #include "freMediaControllerInterface.h"
00027
00028 namespace FREE
00029 {
00030
00031 freControllerIDMacro(MediaControllerBase, "MediaBase");
00032
00038 template <class TMedia>
00039 class MediaControllerBase : public ComponentControllerBase< TMedia >,
00040 public MediaControllerInterface
00041 {
00042 public:
00043 typedef TMedia ComponentType;
00044 typedef ComponentControllerBase<TMedia> Superclass;
00045
00046 typedef typename ComponentType::Pointer ComponentPointer;
00047 typedef typename Superclass::GenericComponentType GenericComponentType;
00048 typedef typename Superclass::GenericComponentPointer GenericComponentPointer;
00049 typedef typename Superclass::GenericMediaType GenericMediaType;
00050 typedef typename Superclass::GenericMediaPointer GenericMediaPointer;
00051
00052 itkTypeMacro(MediaControllerBase, ComponentControllerBase);
00053
00054 MediaControllerBase();
00055
00063 virtual bool LoadMedia(SessionComponentCache* pCache) const;
00064
00068 virtual unsigned long GetMediaDimension() const;
00069
00070 protected:
00071
00072 virtual ComponentPointer BuildMainComponent(ComponentSetup* pComponentSetup,
00073 SessionComponentCache* pComponentCache) const;
00074
00075 virtual GenericMediaPointer GetMediaCasted(const MediaID& mediaID,
00076 ComponentType* pComponent,
00077 SessionComponentCache* pComponentCache,
00078 SessionInfo* pSessionInfo) const;
00079
00080 virtual void SetMediaCasted(const MediaID& mediaID,
00081 GenericMediaType* pMedia,
00082 ComponentType* pComponent,
00083 SessionComponentCache* pComponentCache,
00084 SessionInfo* pSessionInfo) const;
00085
00086 virtual void GenerateProfile(CtrlProfile::ControllerProfile& profile,
00087 const SessionComponentCache* pComponentCache,
00088 bool bRegardOldSetup) const;
00089 };
00090
00091
00092 typedef MediaControllerInterface GenericMediaController;
00093
00094 }
00095
00096 #ifndef ITK_MANUAL_INSTANTIATION
00097 #include "freMediaControllerBase.txx"
00098 #endif
00099
00100 #endif