mirror of
https://github.com/cookiengineer/audacity
synced 2025-06-15 23:59:37 +02:00
73 lines
1.7 KiB
C
73 lines
1.7 KiB
C
/* porttime.h -- portable interface to millisecond timer */
|
|
|
|
/* CHANGE LOG FOR PORTTIME
|
|
10-Jun-03 Mark Nelson & RBD
|
|
boost priority of timer thread in ptlinux.c implementation
|
|
*/
|
|
|
|
/* Should there be a way to choose the source of time here? */
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
|
|
typedef enum {
|
|
ptNoError = 0, /* success */
|
|
ptHostError = -10000, /* a system-specific error occurred */
|
|
ptAlreadyStarted, /* cannot start timer because it is already started */
|
|
ptAlreadyStopped, /* cannot stop timer because it is already stopped */
|
|
ptInsufficientMemory /* memory could not be allocated */
|
|
} PtError;
|
|
|
|
|
|
typedef long PtTimestamp;
|
|
|
|
typedef void (PtCallback)( PtTimestamp timestamp, void *userData );
|
|
|
|
/*
|
|
Pt_Start() starts a real-time service.
|
|
|
|
resolution is the timer resolution in ms. The time will advance every
|
|
resolution ms.
|
|
|
|
callback is a function pointer to be called every resolution ms.
|
|
|
|
userData is passed to callback as a parameter.
|
|
|
|
return value:
|
|
Upon success, returns ptNoError. See PtError for other values.
|
|
*/
|
|
PtError Pt_Start(int resolution, PtCallback *callback, void *userData);
|
|
|
|
/*
|
|
Pt_Stop() stops the timer.
|
|
|
|
return value:
|
|
Upon success, returns ptNoError. See PtError for other values.
|
|
*/
|
|
PtError Pt_Stop();
|
|
|
|
/*
|
|
Pt_Started() returns true iff the timer is running.
|
|
*/
|
|
int Pt_Started();
|
|
|
|
/*
|
|
Pt_Time() returns the current time in ms.
|
|
*/
|
|
PtTimestamp Pt_Time();
|
|
|
|
/*
|
|
Pt_Sleep() pauses, allowing other threads to run.
|
|
|
|
duration is the length of the pause in ms. The true duration
|
|
of the pause may be rounded to the nearest or next clock tick
|
|
as determined by resolution in Pt_Start().
|
|
*/
|
|
void Pt_Sleep(long duration);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|