00001
00004 #ifndef FBXFILESDK_KFBXPLUGINS_KFBXVIDEO_H
00005 #define FBXFILESDK_KFBXPLUGINS_KFBXVIDEO_H
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
00039
00040
00041
00042 #include <fbxfilesdk/components/kbaselib/kaydaradef_h.h>
00043 #include <fbxfilesdk/components/kbaselib/kaydara.h>
00044
00045 #include <fbxfilesdk/components/kbaselib/klib/kerror.h>
00046 #ifdef KARCH_DEV_MACOSX_CFM
00047 #include <CFURL.h>
00048 #include <Files.h>
00049 #endif
00050
00051 #include <fbxfilesdk/kfbxmath/kfbxvector2.h>
00052 #include <fbxfilesdk/kfbxplugins/kfbxgroupname.h>
00053 #include <fbxfilesdk/kfbxplugins/kfbxtakenodecontainer.h>
00054
00055 #include <fbxfilesdk/fbxfilesdk_nsbegin.h>
00056
00057
00061 class KFBX_DLL KFbxVideo : public KFbxTakeNodeContainer
00062 {
00063 KFBXOBJECT_DECLARE(KFbxVideo,KFbxTakeNodeContainer);
00064 public:
00069
00071 void Reset();
00073
00078
00082 void ImageTextureSetMipMap(bool pUseMipMap);
00083
00087 bool ImageTextureGetMipMap();
00088
00094 bool SetFileName(char const* pName);
00095
00099 KString GetFileName ();
00100
00106 bool SetRelativeFileName(char const* pName);
00107
00111 char* GetRelativeFileName();
00112
00116 double GetFrameRate();
00117
00121 int GetLastFrame();
00122
00126 int GetWidth();
00127
00131 int GetHeight();
00132
00138 void SetStartFrame(int pStartFrame);
00139
00143 int GetStartFrame();
00144
00150 void SetStopFrame(int pStopFrame);
00151
00155 int GetStopFrame();
00156
00162 void SetPlaySpeed(double pPlaySpeed);
00163
00167 double GetPlaySpeed();
00168
00173 void SetOffset(KTime pTime);
00174
00175
00176
00177
00178 KTime GetOffset();
00179
00185 void SetFreeRunning(bool pState);
00186
00190 bool GetFreeRunning();
00191
00192
00198 void SetLoop(bool pLoop);
00199
00203 bool GetLoop();
00204
00205
00216 typedef enum
00217 {
00218 None,
00219 Fields,
00220 HalfEven,
00221 HalfOdd,
00222 FullEven,
00223 FullOdd,
00224 FullEvenOdd,
00225 FullOddEven
00226 } EInterlaceMode;
00227
00231 void SetInterlaceMode(EInterlaceMode pInterlaceMode);
00232
00236 EInterlaceMode GetInterlaceMode();
00237
00238
00244 typedef enum
00245 {
00246 Disk,
00247 Memory,
00248 DiskAsync
00249 } EAccessMode;
00250
00254 void SetAccessMode(EAccessMode pAccessMode);
00255
00259 EAccessMode GetAccessMode();
00261
00262
00267
00271 KError& GetError();
00272
00277 typedef enum
00278 {
00279 eTAKE_NODE_ERROR,
00280 eERROR_COUNT
00281 } EError;
00282
00286 EError GetLastErrorID() const;
00287
00291 const char* GetLastErrorString() const;
00292
00294
00295 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00296
00297
00298 virtual KFbxObject* Clone(KFbxObject* pContainer, KFbxObject::ECloneType pCloneType) const;
00299
00300 protected:
00301 KFbxVideo(KFbxSdkManager& pManager, char const* pName);
00302
00303 virtual void Construct(const KFbxVideo* pFrom);
00304 virtual bool ConstructProperties(bool pForceSet);
00305 virtual bool ConnecNotify(KFbxConnectEvent const &pEvent);
00306
00307 public:
00308 virtual KString GetTypeName() const;
00309 virtual KStringList GetTypeFlags() const;
00310
00311 void SetOriginalFormat(bool pState);
00312 bool GetOriginalFormat();
00313 void SetOriginalFilename(const char* pOriginalFilename);
00314 const char* GetOriginalFilename() const;
00315
00316 protected:
00317 void Init();
00318
00319 static KError smError;
00320
00321 KFbxTypedProperty<fbxDouble1> FrameRate;
00322 KFbxTypedProperty<fbxInteger1> LastFrame;
00323 KFbxTypedProperty<fbxInteger1> Width;
00324 KFbxTypedProperty<fbxInteger1> Height;
00325 KFbxTypedProperty<fbxString> Path;
00326 KFbxTypedProperty<fbxInteger1> StartFrame;
00327 KFbxTypedProperty<fbxInteger1> StopFrame;
00328 KFbxTypedProperty<fbxDouble1> PlaySpeed;
00329 KFbxTypedProperty<fbxTime> Offset;
00330 KFbxTypedProperty<EInterlaceMode> InterlaceMode;
00331 KFbxTypedProperty<fbxBool1> FreeRunning;
00332 KFbxTypedProperty<fbxBool1> Loop;
00333 KFbxTypedProperty<EAccessMode> AccessMode;
00334
00335 bool mUseMipMap;
00336 bool mOriginalFormat;
00337 KString mOriginalFilename;
00338
00339
00340 KString mRelativeFilename;
00341 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS
00342 };
00343
00344 typedef KFbxVideo* HKFbxVideo;
00345
00346 inline EFbxType FbxTypeOf( KFbxVideo::EInterlaceMode const &pItem ) { return eENUM; }
00347 inline EFbxType FbxTypeOf( KFbxVideo::EAccessMode const &pItem ) { return eENUM; }
00348
00349 #include <fbxfilesdk/fbxfilesdk_nsend.h>
00350
00351 #endif // FBXFILESDK_KFBXPLUGINS_KFBXVIDEO_H
00352