#include <ktime.h>
KTime can measure time in hour, minute, second, frame, field, residual and also combination of these units. It is recommended to use KTime for all time related operations. For example, currently it is used in KFbxGlobalSettings, KFbxGlobalTimeSettings, KFbxCache, all curve filters and all animation-related classes, etc. KTime is just used to represent a moment, to represent a period of time, KTimeSpan should be used.
Definition at line 71 of file ktime.h.
Time Modes and Protocols |
|
enum | ETimeMode
{ eDEFAULT_MODE = 0, eFRAMES120 = 1, eFRAMES100 = 2, eFRAMES60 = 3, eFRAMES50 = 4, eFRAMES48 = 5, eFRAMES30 = 6, eFRAMES30_DROP = 7, eNTSC_DROP_FRAME = 8, eNTSC_FULL_FRAME = 9, ePAL = 10, eCINEMA = 11, eFRAMES1000 = 12, eCINEMA_ND = 13, eCUSTOM = 14, eTIME_MODE_COUNT = 15 } |
Time modes. More... |
|
enum | ETimeProtocol
{ eSMPTE, eFRAME, eDEFAULT_PROTOCOL, eTIME_PROTOCOL_COUNT } |
Time protocols. More... |
|
static void | SetGlobalTimeMode (ETimeMode pTimeMode, double pFrameRate=0.0) |
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 kLongLong & | Get () 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, double pFramerate=0.0) |
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, double pFramerate=0.0) |
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, double pFramerate=0.0) const |
Get time in
hour/minute/second/frame/field/residual format. |
|
KTime | GetFramedTime (bool pRound=true) |
Snaps a time value to the time value
associated with the nearest frame. |
|
kLongLong | GetHour (bool pCummul=false, int pTimeMode=eDEFAULT_MODE, double pFramerate=0.0) const |
Get number of hours in time. |
|
kLongLong | GetMinute (bool pCummul=false, int pTimeMode=eDEFAULT_MODE, double pFramerate=0.0) const |
Get number of minutes in time. |
|
kLongLong | GetSecond (bool pCummul=false, int pTimeMode=eDEFAULT_MODE, double pFramerate=0.0) const |
Get number of seconds in time. |
|
kLongLong | GetFrame (bool pCummul=false, int pTimeMode=eDEFAULT_MODE, double pFramerate=0.0) const |
Get number of frames in time. |
|
kLongLong | GetField (bool pCummul=false, int pTimeMode=eDEFAULT_MODE, double pFramerate=0.0) const |
Get number of fields in time. |
|
kLongLong | GetResidual (int pTimeMode=eDEFAULT_MODE, double pFramerate=0.0) const |
Get residual time exceeding last full field.
|
|
char * | GetTimeString (char *pTimeString, int pInfo=5, int pTimeMode=eDEFAULT_MODE, int pTimeFormat=eDEFAULT_PROTOCOL, double pFramerate=0.0) const |
Get time in a human readable format.
|
|
void | SetTimeString (char *pTime, int pTimeMode=eDEFAULT_MODE, int pTimeFormat=eDEFAULT_PROTOCOL, double pFramerate=0.0) |
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. |
|
KTime & | operator= (const KTime &pTime) |
Assignment operator. |
|
KTime & | operator+= (const KTime &pTime) |
Addition operator. |
|
KTime & | operator-= (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. |
|
KTime & | operator++ () |
Increment time of one unit of the internal
format (prefix form). |
|
const KTime | operator++ (int) |
Increment time of one unit of the internal
format (postfix form). |
|
KTime & | operator-- () |
Decrement time of one unit of the internal
format (prefix form). |
|
const KTime | operator-- (int) |
Decrement time of one unit of the internal
format (postfix form). |
|
Public Member Functions |
|
KTime (kLongLong pTime=0) | |
Constructor. |
|
kLongLong | GetOneFrameValue (int pTimeMode, double pFramerate) const |
Static Public Member Functions |
|
static KTime | GetSystemTimer () |
Friends |
|
KFBX_DLL KTime::ETimeMode | KTime_GetGlobalTimeMode () |
KFBX_DLL HKTimeModeObject | KTime_GetGlobalTimeModeObject () |
KFBX_DLL KTime::ETimeProtocol | KTime_GetGlobalTimeFormat () |
KFBX_DLL void | KTime_SetGlobalTimeMode (KTime::ETimeMode pTimeMode, double pFrameRate=0.0) |
KFBX_DLL void | KTime_SetGlobalTimeFormat (KTime::ETimeProtocol pTimeFormat) |
enum ETimeMode |
Time modes.
eNTSC_DROP_FRAME
is used for broadcasting
operations where clock time must be (almost) in sync with time
code. To bring back color NTSC time code with clock time, this mode
drops 2 frames per minute except for every 10 minutes (00, 10, 20,
30, 40, 50). 108 frames are dropped per hour. Over 24 hours the
error is 2 frames and 1/4 of a frame.eNTSC_FULL_FRAME
represents a time address
and therefore is NOT IN SYNC with clock time. A time code of
01:00:00:00 equals a clock time of 01:00:03:18.eFRAMES30_DROP
drops 2 frames every minutes
except for every 10 minutes (00, 10, 20, 30, 40, 50). This time
code represents a time address and is therefore NOT IN SYNC with
clock time. A time code of 01:00:03:18 equals a clock time of
01:00:00:00. It is the close counterpart of mode
eNTSC_FULL_FRAME
. Time modes.
enum ETimeProtocol |
static void SetGlobalTimeMode | ( | ETimeMode | pTimeMode, | |
double | pFrameRate = 0.0 |
|||
) | [static] |
Set default time mode.
pTimeMode | Time mode identifier. | |
pFrameRate | Custom framerate, only have effect in case of pTimeMode = KTime::eCUSTOM |
eDEFAULT_MODE
.static ETimeMode GetGlobalTimeMode | ( | ) | [static] |
Get default time mode.
static void SetGlobalTimeProtocol | ( | ETimeProtocol | pTimeProtocol | ) | [static] |
Set default time protocol.
pTimeProtocol | Time protocol identifier. |
eDEFAULT_PROTOCOL
.static ETimeProtocol GetGlobalTimeProtocol | ( | ) | [static] |
Get default time protocol.
static double GetFrameRate | ( | ETimeMode | pTimeMode | ) | [static] |
Get frame rate associated with time mode, in frames per second.
pTimeMode | Time mode identifier. |
static ETimeMode ConvertFrameRateToTimeMode | ( | double | pFrameRate, | |
double | lPrecision =
0.00000001 |
|||
) | [static] |
Get time mode associated with frame rate.
pFrameRate | The frame rate value. | |
lPrecision | The tolerance value. |
eDEFAULT_MODE
if no time mode associated to the given
frame rate is found.void Set | ( | kLongLong | pTime | ) | [inline] |
const kLongLong& Get | ( | ) | const [inline] |
void SetMilliSeconds | ( | kLongLong | pMilliSeconds | ) | [inline] |
Set time in milliseconds.
pMilliSeconds | Time value to set. |
Definition at line 221 of file ktime.h.
References K_LONGLONG.
kLongLong GetMilliSeconds | ( | ) | const [inline] |
Get time in milliseconds.
Definition at line 226 of file ktime.h.
References K_LONGLONG.
void SetSecondDouble | ( | double | pTime | ) |
Set time in seconds.
pTime | Time value to set. |
double GetSecondDouble | ( | ) | const |
void SetTime | ( | int | pHour, | |
int | pMinute, | |||
int | pSecond, | |||
int | pFrame = 0 , |
|||
int | pField = 0 , |
|||
int | pTimeMode =
eDEFAULT_MODE , |
|||
double | pFramerate = 0.0 |
|||
) |
Set time in hour/minute/second/frame/field format.
pHour | The hours value. | |
pMinute | The minutes value. | |
pSecond | The seconds value. | |
pFrame | The frames values. | |
pField | The field value. | |
pTimeMode | Time mode identifier. | |
pFramerate | Custom framerate in case of pTimeMode = KTime::eCUSTOM |
Referenced by KFbxAnimCurveKFCurveKey::SetTime().
void SetTime | ( | int | pHour, | |
int | pMinute, | |||
int | pSecond, | |||
int | pFrame, | |||
int | pField, | |||
int | pResidual, | |||
int | pTimeMode, | |||
double | pFramerate = 0.0 |
|||
) |
Set time in hour/minute/second/frame/field/residual format.
pHour | The hours value. | |
pMinute | The minutes value. | |
pSecond | The seconds value. | |
pFrame | The frames values. | |
pField | The field value. | |
pResidual | The hundredths of frame value. | |
pTimeMode | Time mode identifier. | |
pFramerate | Custom framerate in case of pTimeMode = KTime::eCUSTOM |
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 , |
|||
double | pFramerate = 0.0 |
|||
) | const |
Get time in hour/minute/second/frame/field/residual format.
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 hundredths of frame value. | |
pTimeMode | The time mode identifier which will dictate the extraction algorithm. | |
pFramerate | Custom framerate in case of pTimeMode = KTime::eCUSTOM |
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 |
) |
Snaps a time value to the time value associated with the nearest frame.
pRound | If true the return value is rounded to the nearest
integer. |
kLongLong GetHour | ( | bool | pCummul = false , |
|
int | pTimeMode =
eDEFAULT_MODE , |
|||
double | pFramerate = 0.0 |
|||
) | const |
Get number of hours in time.
pCummul | This parameter has no effect. | |
pTimeMode | Time mode identifier. | |
pFramerate | Custom framerate in case of pTimeMode = KTime::eCUSTOM |
kLongLong GetMinute | ( | bool | pCummul = false , |
|
int | pTimeMode =
eDEFAULT_MODE , |
|||
double | pFramerate = 0.0 |
|||
) | const |
Get number of minutes in time.
pCummul | If true , get total number of minutes. If
false , get number of minutes exceeding last full
hour. |
|
pTimeMode | Time mode identifier. | |
pFramerate | Custom framerate in case of pTimeMode = KTime::eCUSTOM |
kLongLong GetSecond | ( | bool | pCummul = false , |
|
int | pTimeMode =
eDEFAULT_MODE , |
|||
double | pFramerate = 0.0 |
|||
) | const |
Get number of seconds in time.
pCummul | If true , get total number of seconds. If
false , get number of seconds exceeding last full
minute. |
|
pTimeMode | Time mode identifier. | |
pFramerate | Custom framerate in case of pTimeMode = KTime::eCUSTOM |
kLongLong GetFrame | ( | bool | pCummul = false , |
|
int | pTimeMode =
eDEFAULT_MODE , |
|||
double | pFramerate = 0.0 |
|||
) | const |
Get number of frames in time.
pCummul | If true , get total number of frames. If
false , get number of frames exceeding last full
second. |
|
pTimeMode | Time mode identifier. | |
pFramerate | Custom framerate in case of pTimeMode = KTime::eCUSTOM |
kLongLong GetField | ( | bool | pCummul = false , |
|
int | pTimeMode =
eDEFAULT_MODE , |
|||
double | pFramerate = 0.0 |
|||
) | const |
Get number of fields in time.
pCummul | If true , get total number of fields. If
false , get number of fields exceeding last full
frame. |
|
pTimeMode | Time mode identifier. | |
pFramerate | Custom framerate in case of pTimeMode = KTime::eCUSTOM |
Get residual time exceeding last full field.
pTimeMode | Time mode identifier. | |
pFramerate | Custom framerate in case of pTimeMode = KTime::eCUSTOM |
char* GetTimeString | ( | char * | pTimeString, | |
int | pInfo = 5 , |
|||
int | pTimeMode =
eDEFAULT_MODE , |
|||
int | pTimeFormat =
eDEFAULT_PROTOCOL , |
|||
double | pFramerate = 0.0 |
|||
) | const |
Get time in a human readable format.
pTimeString | An array large enough to contain a minimum of 19 characters. | |
pInfo | The amount of information if time protocol is
eSMPTE:
|
|
pTimeMode | Requested time mode. | |
pTimeFormat | Requested time protocol. | |
pFramerate | Custom framerate in case of pTimeMode = KTime::eCUSTOM |
Referenced by fbxCopy().
void SetTimeString | ( | char * | pTime, | |
int | pTimeMode =
eDEFAULT_MODE , |
|||
int | pTimeFormat =
eDEFAULT_PROTOCOL , |
|||
double | pFramerate = 0.0 |
|||
) |
Set time in a human readable format.
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. | |
pFramerate | Custom framerate in case of pTimeMode = KTime::eCUSTOM |
bool operator== | ( | const KTime & | pTime | ) | const [inline] |
bool operator!= | ( | const KTime & | pTime | ) | const [inline] |
bool operator>= | ( | const KTime & | pTime | ) | const [inline] |
bool operator<= | ( | const KTime & | pTime | ) | const [inline] |
bool operator> | ( | const KTime & | pTime | ) | const [inline] |
bool operator< | ( | const KTime & | pTime | ) | const [inline] |
KTime& operator++ | ( | ) | [inline] |
KTime& operator-- | ( | ) | [inline] |
static KTime GetSystemTimer | ( | ) | [static] |
KFBX_DLL KTime::ETimeMode KTime_GetGlobalTimeMode | ( | ) | [friend] |
KFBX_DLL HKTimeModeObject KTime_GetGlobalTimeModeObject | ( | ) | [friend] |
KFBX_DLL KTime::ETimeProtocol KTime_GetGlobalTimeFormat | ( | ) | [friend] |
KFBX_DLL void KTime_SetGlobalTimeMode | ( | KTime::ETimeMode | pTimeMode, | |
double | pFrameRate = 0.0 |
|||
) | [friend] |
KFBX_DLL void KTime_SetGlobalTimeFormat | ( | KTime::ETimeProtocol | pTimeFormat | ) | [friend] |