00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __freMediaDrainController_h
00023 #define __freMediaDrainController_h
00024
00025 #include "freMediaBridgeController.h"
00026 #include "freMediaContainer.h"
00027
00028 namespace FREE
00029 {
00030
00031 freControllerIDMacro(MediaDrainController, "Media Drain");
00032
00038 class MediaDrainController : public MediaBridgeController
00039 {
00040 public:
00041 typedef MediaContainer ComponentType;
00042 typedef MediaBridgeController Superclass;
00043
00044 itkTypeMacro(MediaDrainController, MediaBridgeController);
00045
00046 MediaDrainController();
00047
00048 DeclareParameterMacro(SaveAllMedia);
00049
00050 virtual ValidityTag::Pointer GetMediaValidityTag(const MediaID& mediaID, SessionComponentCache* pComponentCache) const;
00051
00052 virtual Parameter::Pointer GetParameter(const SessionComponentCache* pComponentCache,
00053 const std::string& sParameterName) const;
00054
00061 virtual bool SaveMedia(const MediaID& mediaID, SessionComponentCache* pComponentCache, SessionInfo* pSessionInfo) const;
00062
00067 virtual STLStringVector SaveAllMedia(SessionComponentCache* pComponentCache, SessionInfo* pSessionInfo) const;
00068
00069 protected:
00070 virtual void GenerateProfile(CtrlProfile::ControllerProfile& profile,
00071 const SessionComponentCache* pComponentCache,
00072 bool bRegardOldSetup) const;
00073
00074 virtual void SetMediaCasted(const MediaID& mediaID, GenericMediaType* pMedia,
00075 ComponentType* pComponent,
00076 SessionComponentCache* pComponentCache,
00077 SessionInfo* pSessionInfo) const;
00078 };
00079
00080 }
00081
00082 #endif