Go to the
documentation of this file.
00001 #ifndef __FBDECK_H__
00002 #define __FBDECK_H__
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00043 #include <kaydaradef.h>
00044 #ifndef FBSDK_DLL
00045
00048 #define FBSDK_DLL K_DLLIMPORT
00049 #endif
00050
00051 #include <fbsdk/fbcomponent.h>
00052
00053 #ifdef FBSDKUseNamespace
00054 namespace FBSDKNamespace {
00055 #endif
00056
00064 #define FBRegisterDeck( UniqueNameStr, ClassName, Label, Description, IconFilename ) \
00065 HIObject RegisterDeck##ClassName( HIObject ,char * pName,void * ) \
00066 { \
00067 ClassName *Class = new ClassName(pName); \
00068 Class->UniqueName = UniqueNameStr; \
00069 if (Class->FBCreate()) { \
00070 Class->ThreadSync(); \
00071 return Class->GetHIObject(); \
00072 } else { \
00073 delete Class; \
00074 return NULL; \
00075 } \
00076 } \
00077 FBLibraryModule( ClassName ) \
00078 { \
00079 FBRegisterObject( ClassName,"Decks",Label,Description,RegisterDeck##ClassName, true, IconFilename ); \
00080 }
00081
00085 #define FBDeckDeclare( ClassName ) \
00086 FBClassDeclare( ClassName,FBDeck ); \
00087 public: \
00088 ClassName(char * pName):FBDeck(pName) { FBClassInit; } \
00089 private:
00090
00094 #define FBDeckImplementation( ThisComponent ) \
00095 FBClassImplementation( ThisComponent )
00096
00098
00100 __FB_FORWARD( FBDeck );
00101
00102
00104 enum FBDeckTransportMode{
00105 kFBDeckTransportNone,
00106 kFBDeckTransportSlave,
00107 kFBDeckTransportMaster
00108 };
00109
00110 FB_DEFINE_ENUM ( FBSDK_DLL, DeckTransportMode );
00111 FB_DEFINE_COMPONENT ( FBSDK_DLL, Deck );
00112
00114 class FBSDK_DLL FBDeck : public FBComponent {
00115 __FBClassDeclare( FBDeck,FBComponent );
00116 public:
00117 char *UniqueName;
00118 void ThreadSync();
00119
00124 FBDeck(char *pName, HIObject pObject=NULL);
00125
00126 IObject_Declare(Implementation);
00127
00128
00129 virtual void DeckStatusUpdateNotify();
00130 virtual void DeckAutoCommandsNotify();
00131
00132
00133 virtual void Rewind ();
00134 virtual void Stop ();
00135
00138 virtual void Play (double pSpeed = 1.0);
00139 virtual void Forward ();
00140
00143 virtual void ReversePlay (double pSpeed = 1.0);
00144 virtual void StepBack ();
00145 virtual void StepForward ();
00146 virtual void Eject ();
00147
00150 virtual void CueAt (FBTime pTime);
00151
00152
00156 virtual FBTime GetTime ();
00157
00158
00160
00161 virtual bool FbxStore ( HFBFbxObject pFbxObject, kFbxObjectStore pStoreWhat );
00162 virtual bool FbxRetrieve ( HFBFbxObject pFbxObject, kFbxObjectStore pStoreWhat );
00164
00165
00166 FBPropertyString IconFilename;
00167
00168
00169 FBPropertyBool Online;
00170 FBPropertyTime Offset;
00171 FBPropertyTime Latency;
00172 FBPropertyTime PreRoll;
00173 FBPropertyTime PostRoll;
00174 FBPropertyDeckTransportMode TransportControl;
00175
00176
00177 FBPropertyBool CassetteInside;
00178 FBPropertyBool PlayingForward;
00179 FBPropertyBool PlayingBackward;
00180 FBPropertyBool EE;
00181 FBPropertyBool StandBy;
00182 };
00183
00185
00188 class FBSDK_DLL FBPropertyListDeck : public FBPropertyListComponent
00189 {
00190 public:
00191 FBPropertyListDeck();
00196 FBDeck* operator[](int pIndex);
00197 };
00198
00199 #ifdef FBSDKUseNamespace
00200 }
00201 #endif
00202 #endif