Go to the documentation of this file.00001
00011
00012
00013 #if (_MSC_VER > 1000) || defined(SGI_COMPILER)
00014 #pragma once
00015 #endif
00016
00017 #ifndef __XSITIME_H__
00018 #define __XSITIME_H__
00019
00020
00021 #include "sicppsdk.h"
00022 #include "xsi_string.h"
00023
00024 namespace XSI {
00025
00026
00027
00047
00048
00049 class SICPPSDKDECL CTime
00050 {
00051 public:
00053 enum Format
00054 {
00055 NTSC,
00056 PAL,
00057 FILM,
00058 CUSTOM
00059 };
00060
00062 enum Unit
00063 {
00064 Frames,
00065 Hours,
00066 Minutes,
00067 Seconds,
00068 Milliseconds
00069 };
00070
00074 CTime();
00075
00080 CTime(double in_time);
00081
00087 CTime(double in_time, Format in_format, double in_customrate = 1.0);
00088
00095 CTime(double in_time, CTime::Unit in_units, Format in_format, double in_customrate = 1.0);
00096
00100 CTime(const CTime& in_time);
00101
00104 ~CTime();
00105
00110 double GetTime(Unit in_units = CTime::Frames ) const;
00111
00116 void PutTime(double in_time, CTime::Unit units = CTime::Frames );
00117
00121 CTime::Format GetFormat(void) const;
00122
00126 double GetFrameRate(void) const;
00127
00132 void PutFormat(CTime::Format in_format, double in_customrate = 1.0 );
00133
00148 CString GetAsText(void) const;
00149
00164 void SetAsText(const CString& in_str);
00165
00170 CTime& operator= ( const CTime& in_time );
00171
00176 CTime& operator= ( double in_time );
00177
00182 bool operator== ( const CTime& rhs ) const;
00183
00188 bool operator== ( const double rhs ) const;
00189
00194 bool operator!= ( const CTime& rhs ) const;
00195
00200 bool operator!= ( const double rhs ) const;
00201
00205 operator double() const ;
00206
00211 CTime Round() const;
00212
00217 static CTime::Format ConvertFromPlayControlFormat( const long lFormat );
00218
00223 static LONG ConvertToPlayControlFormat( const CTime::Format eFormat );
00224
00225 private:
00226 void* m_pvoid;
00227 };
00228
00234 SICPPSDKDECL bool operator== ( const double lhs, const CTime& rhs);
00235
00241 SICPPSDKDECL bool operator!= ( const double lhs, const CTime& rhs);
00242
00243
00252
00253 class SICPPSDKDECL CTimeArray
00254 {
00255 public:
00259 CTimeArray( LONG in_size=0);
00260
00264 CTimeArray(const CTimeArray& in_array);
00265
00267 ~CTimeArray();
00268
00273 CTimeArray& operator=( const CTimeArray& in_array );
00274
00278 LONG GetCount() const;
00279
00284 CStatus Add( const CTime& in_item );
00285
00289 CStatus Clear();
00290
00296 CStatus Resize( LONG in_size);
00297
00304 const CTime& operator[]( LONG in_index ) const;
00305
00311 CTime& operator[]( LONG in_index );
00312
00318 bool operator==(const CTimeArray& in_array) const;
00319
00325 bool operator!=(const CTimeArray& in_array) const;
00326
00327 private:
00328
00329 void* m_ptr;
00330 };
00331
00332
00333 };
00334
00335 #endif // __XSITIME_H__