KTime Class Reference

#include <ktime.h>

List of all members.


Detailed Description

Class to encapsulate time units.

Definition at line 64 of file ktime.h.

Time Modes and Protocols

enum  ETimeMode
 Time modes. More...
enum  ETimeProtocol
 Time protocols. More...
static void SetGlobalTimeMode (ETimeMode pTimeMode)
 Set default time mode.
static ETimeMode GetGlobalTimeMode ()
 Get default time mode.
static void SetGlobalTimeProtocol (ETimeProtocol pTimeProtocol)
 Set default time protocol.
static ETimeProtocol GetGlobalTimeProtocol ()
 Get default time protocol.
static double GetFrameRate (ETimeMode pTimeMode)
 Get frame rate associated with time mode, in frames per second.
static ETimeMode ConvertFrameRateToTimeMode (double pFrameRate, double lPrecision=0.00000001)
 Get time mode associated with frame rate.

Time Conversion

void Set (kLongLong pTime)
 Set time in internal format.
const kLongLongGet () const
 Get time in internal format.
void SetMilliSeconds (kLongLong pMilliSeconds)
 Set time in milliseconds.
kLongLong GetMilliSeconds () const
 Get time in milliseconds.
void SetSecondDouble (double pTime)
 Set time in seconds.
double GetSecondDouble () const
 Get time in seconds.
void SetTime (int pHour, int pMinute, int pSecond, int pFrame=0, int pField=0, int pTimeMode=eDEFAULT_MODE)
 Set time in hour/minute/second/frame/field format.
void SetTime (int pHour, int pMinute, int pSecond, int pFrame, int pField, int pResidual, int pTimeMode)
 Set time in hour/minute/second/frame/field/residual format.
bool GetTime (kLongLong &pHour, kLongLong &pMinute, kLongLong &pSecond, kLongLong &pFrame, kLongLong &pField, kLongLong &pResidual, int pTimeMode=eDEFAULT_MODE) const
 Get time in hour/minute/second/frame/field/residual format.
KTime GetFramedTime (bool pRound=true)
 Set time in internal format.
kLongLong GetHour (bool pCummul=false, int pTimeMode=eDEFAULT_MODE) const
 Get number of hours in time.
kLongLong GetMinute (bool pCummul=false, int pTimeMode=eDEFAULT_MODE) const
 Get number of minutes in time.
kLongLong GetSecond (bool pCummul=false, int pTimeMode=eDEFAULT_MODE) const
 Get number of seconds in time.
kLongLong GetFrame (bool pCummul=false, int pTimeMode=eDEFAULT_MODE) const
 Get number of frames in time.
kLongLong GetField (bool pCummul=false, int pTimeMode=eDEFAULT_MODE) const
 Get number of fields in time.
kLongLong GetResidual (int pTimeMode=eDEFAULT_MODE) const
 Get residual time exceeding last full field.
char * GetTimeString (char *pTimeString, int pInfo=5, int pTimeMode=eDEFAULT_MODE, int pTimeFormat=eDEFAULT_PROTOCOL) const
 Get time in a human readable format.
void SetTimeString (char *pTime, int pTimeMode=eDEFAULT_MODE, int pTimeFormat=eDEFAULT_PROTOCOL)
 Set time in a human readable format.

Time Operators

bool operator== (const KTime &pTime) const
 Equality operator.
bool operator!= (const KTime &pTime) const
 Inequality operator.
bool operator>= (const KTime &pTime) const
 Superior or equal to operator.
bool operator<= (const KTime &pTime) const
 Inferior or equal to operator.
bool operator> (const KTime &pTime) const
 Superior to operator.
bool operator< (const KTime &pTime) const
 Inferior to operator.
KTimeoperator= (const KTime &pTime)
 Assignment operator.
KTimeoperator+= (const KTime &pTime)
 Addition operator.
KTimeoperator-= (const KTime &pTime)
 Subtraction operator.
KTime operator+ (const KTime &pTime) const
 Addition operator.
KTime operator- (const KTime &pTime) const
 Subtraction operator.
KTime operator * (const int Mult) const
 Multiplication operator.
KTime operator/ (const KTime &pTime) const
 Division operator.
KTime operator * (const KTime &pTime) const
 Multiplication operator.
KTimeoperator++ ()
 Increment time of one unit of the internal format.
KTimeoperator-- ()
 Decrement time of one unit of the internal format.

Public Member Functions

 KTime (kLongLong pTime=0)
 Constructor.


Member Enumeration Documentation

enum ETimeMode

Time modes.

  • eDEFAULT_MODE
  • eFRAMES120 120 frames/s
  • eFRAMES100 100 frames/s
  • eFRAMES60 60 frames/s
  • eFRAMES50 50 frames/s
  • eFRAMES48 48 frame/s
  • eFRAMES30 30 frames/s BLACK & WHITE NTSC
  • eFRAMES30_DROP 30 frames/s use when diplay in frame is selected(equivalent to NTSC_DROP)
  • eNTSC_DROP_FRAME 29.97002617 frames/s drop COLOR NTSC
  • eNTSC_FULL_FRAME 29.97002617 frames/s COLOR NTSC
  • ePAL 25 frames/s PAL/SECAM
  • eCINEMA 24 frames/s
  • eFRAMES1000 1000 milli/s (use for datetime)
  • eCINEMA_DROP 23.976 frames/s

Definition at line 121 of file ktime.h.

Time protocols.

  • eSMPTE SMPTE Protocol
  • eFRAME Frame count
  • eDEFAULT_PROTOCOL Default protocol (initialized to eFRAMES)

Definition at line 145 of file ktime.h.


Constructor & Destructor Documentation

KTime ( kLongLong  pTime = 0  )  [inline]

Constructor.

Parameters:
pTime Initial value.

Definition at line 72 of file ktime.h.


Member Function Documentation

static void SetGlobalTimeMode ( ETimeMode  pTimeMode  )  [static]

Set default time mode.

Parameters:
pTimeMode Time mode identifier.
Remarks:
It is meaningless to set default time mode to eDEFAULT_MODE.

static ETimeMode GetGlobalTimeMode (  )  [static]

Get default time mode.

Returns:
Currently set time mode identifier.
Remarks:
Default time mode initial value is eFRAMES30.

static void SetGlobalTimeProtocol ( ETimeProtocol  pTimeProtocol  )  [static]

Set default time protocol.

Parameters:
pTimeProtocol Time protocol identifier.
Remarks:
It is meaningless to set default time protocol to eDEFAULT_PROTOCOL.

static ETimeProtocol GetGlobalTimeProtocol (  )  [static]

Get default time protocol.

Returns:
Currently set time protocol identifier.
Remarks:
Default time protocol initial value is eSMPTE.

static double GetFrameRate ( ETimeMode  pTimeMode  )  [static]

Get frame rate associated with time mode, in frames per second.

Parameters:
pTimeMode Time mode identifier.
Returns:
Frame rate value.

static ETimeMode ConvertFrameRateToTimeMode ( double  pFrameRate,
double  lPrecision = 0.00000001 
) [static]

Get time mode associated with frame rate.

Parameters:
pFrameRate The frame rate value.
lPrecision The tolerance value.
Returns:
The corresponding time mode identifier or eDEFAULT_MODE if no time mode associated to the given frame rate is found.

void Set ( kLongLong  pTime  )  [inline]

Set time in internal format.

Parameters:
pTime Time value to set.

Definition at line 201 of file ktime.h.

const kLongLong& Get (  )  const [inline]

Get time in internal format.

Returns:
Time value.

Definition at line 206 of file ktime.h.

void SetMilliSeconds ( kLongLong  pMilliSeconds  )  [inline]

Set time in milliseconds.

Parameters:
pMilliSeconds Time value to set.

Definition at line 211 of file ktime.h.

References K_LONGLONG.

kLongLong GetMilliSeconds (  )  const [inline]

Get time in milliseconds.

Returns:
Time value.

Definition at line 216 of file ktime.h.

References K_LONGLONG.

void SetSecondDouble ( double  pTime  ) 

Set time in seconds.

Parameters:
pTime Time value to set.

double GetSecondDouble (  )  const

Get time in seconds.

Returns:
Time value.

void SetTime ( int  pHour,
int  pMinute,
int  pSecond,
int  pFrame = 0,
int  pField = 0,
int  pTimeMode = eDEFAULT_MODE 
)

Set time in hour/minute/second/frame/field format.

Parameters:
pHour The hours value.
pMinute The minutes value.
pSecond The seconds value.
pFrame The frames values.
pField The field value.
pTimeMode A time mode identifier.
Remarks:
Parameters pHour, pMinute, pSecond, pFrame and pField are summed together. For example, it is possible to set the time to 83 seconds in the following ways: SetTime(0,1,23) or SetTime(0,0,83).

void SetTime ( int  pHour,
int  pMinute,
int  pSecond,
int  pFrame,
int  pField,
int  pResidual,
int  pTimeMode 
)

Set time in hour/minute/second/frame/field/residual format.

Parameters:
pHour The hours value.
pMinute The minutes value.
pSecond The seconds value.
pFrame The frames values.
pField The field value.
pResidual The hundreths of frame value.
pTimeMode A time mode identifier.
Remarks:
Parameters pHour, pMinute, pSecond, pFrame, pField and pResidual are summed together, just like above. pResidual represents hundreths of frame, and won't necessarily correspond to an exact internal value.

The time mode can't have a default value, because otherwise SetTime(int, int, int, int, int, int) would be ambiguous. Please specify DEFAULT_MODE.

bool GetTime ( kLongLong pHour,
kLongLong pMinute,
kLongLong pSecond,
kLongLong pFrame,
kLongLong pField,
kLongLong pResidual,
int  pTimeMode = eDEFAULT_MODE 
) const

Get time in hour/minute/second/frame/field/residual format.

Parameters:
pHour The returned hours value.
pMinute The returned minutes value.
pSecond The returned seconds value.
pFrame The returned frames values.
pField The returned field value.
pResidual The returned hundreths of frame value.
pTimeMode The time mode identifier which will dictate the extraction algorithm.
Returns:
true if the pTimeMode parameter is a valid identifier and thus the extraction succeeded. If the function returns false, all the values are set to 0.

KTime GetFramedTime ( bool  pRound = true  ) 

Set time in internal format.

Parameters:
pTime Time value to set.

kLongLong GetHour ( bool  pCummul = false,
int  pTimeMode = eDEFAULT_MODE 
) const

Get number of hours in time.

Parameters:
pCummul This parameter has no effect.
pTimeMode Time mode identifier.
Returns:
Hours value.

kLongLong GetMinute ( bool  pCummul = false,
int  pTimeMode = eDEFAULT_MODE 
) const

Get number of minutes in time.

Parameters:
pCummul If true, get total number of minutes. If false, get number of minutes exceeding last full hour.
pTimeMode Time mode identifier.
Returns:
Minutes value.

kLongLong GetSecond ( bool  pCummul = false,
int  pTimeMode = eDEFAULT_MODE 
) const

Get number of seconds in time.

Parameters:
pCummul If true, get total number of seconds. If false, get number of seconds exceeding last full minute.
pTimeMode Time mode identifier.
Returns:
Seconds value.

kLongLong GetFrame ( bool  pCummul = false,
int  pTimeMode = eDEFAULT_MODE 
) const

Get number of frames in time.

Parameters:
pCummul If true, get total number of frames. If false, get number of frames exceeding last full second.
pTimeMode Time mode identifier.
Returns:
Frames values.

kLongLong GetField ( bool  pCummul = false,
int  pTimeMode = eDEFAULT_MODE 
) const

Get number of fields in time.

Parameters:
pCummul If true, get total number of fields. If false, get number of fields exceeding last full frame.
pTimeMode Time mode identifier.
Returns:
Fields value.

kLongLong GetResidual ( int  pTimeMode = eDEFAULT_MODE  )  const

Get residual time exceeding last full field.

Parameters:
pTimeMode Time mode identifier.
Returns:
Residual value.

char* GetTimeString ( char *  pTimeString,
int  pInfo = 5,
int  pTimeMode = eDEFAULT_MODE,
int  pTimeFormat = eDEFAULT_PROTOCOL 
) const

Get time in a human readable format.

Parameters:
pTimeString An array large enough to contain a minimum of 19 characters.
pInfo The amount of information if time protocol is eSMPTE:
  • 1 means hours only
  • 2 means hours and minutes
  • 3 means hours, minutes and seconds
  • 4 means hours, minutes, seconds and frames
  • 5 means hours, minutes, seconds, frames and field
  • 6 means hours, minutes, seconds, frames, field and residual value
pTimeMode Requested time mode.
pTimeFormat Requested time protocol.
Returns:
pTimeString parameter filled with a time value or set to a empty string if parameter pInfo is not valid.

void SetTimeString ( char *  pTime,
int  pTimeMode = eDEFAULT_MODE,
int  pTimeFormat = eDEFAULT_PROTOCOL 
)

Set time in a human readable format.

Parameters:
pTime An array of a maximum of 18 characters. If time protocol is eSMPTE, pTimeString must be formatted this way: "[hours:]minutes[:seconds[.frames[.fields]]]". Hours, minutes, seconds, frames and fields are parsed as integers and brackets indicate optional parts. If time protocol is eFRAME, pTimeString must be formatted this way: "frames". Frames is parsed as a 64 bits integer.
pTimeMode Given time mode.
pTimeFormat Given time protocol.

bool operator== ( const KTime pTime  )  const [inline]

Equality operator.

Definition at line 391 of file ktime.h.

bool operator!= ( const KTime pTime  )  const [inline]

Inequality operator.

Definition at line 394 of file ktime.h.

bool operator>= ( const KTime pTime  )  const [inline]

Superior or equal to operator.

Definition at line 397 of file ktime.h.

bool operator<= ( const KTime pTime  )  const [inline]

Inferior or equal to operator.

Definition at line 400 of file ktime.h.

bool operator> ( const KTime pTime  )  const [inline]

Superior to operator.

Definition at line 403 of file ktime.h.

bool operator< ( const KTime pTime  )  const [inline]

Inferior to operator.

Definition at line 406 of file ktime.h.

KTime& operator= ( const KTime pTime  )  [inline]

Assignment operator.

Definition at line 409 of file ktime.h.

KTime& operator+= ( const KTime pTime  )  [inline]

Addition operator.

Definition at line 412 of file ktime.h.

KTime& operator-= ( const KTime pTime  )  [inline]

Subtraction operator.

Definition at line 415 of file ktime.h.

KTime operator+ ( const KTime pTime  )  const

Addition operator.

KTime operator- ( const KTime pTime  )  const

Subtraction operator.

KTime operator * ( const int  Mult  )  const

Multiplication operator.

KTime operator/ ( const KTime pTime  )  const

Division operator.

KTime operator * ( const KTime pTime  )  const

Multiplication operator.

KTime& operator++ (  )  [inline]

Increment time of one unit of the internal format.

Definition at line 433 of file ktime.h.

KTime& operator-- (  )  [inline]

Decrement time of one unit of the internal format.

Definition at line 436 of file ktime.h.