xsi_time.h
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__