diff options
Diffstat (limited to 'include/recorder/recording_clock.h')
| -rw-r--r-- | include/recorder/recording_clock.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/include/recorder/recording_clock.h b/include/recorder/recording_clock.h new file mode 100644 index 0000000..4e302b6 --- /dev/null +++ b/include/recorder/recording_clock.h @@ -0,0 +1,29 @@ +#ifndef GSR_RECORDER_RECORDING_CLOCK_H +#define GSR_RECORDER_RECORDING_CLOCK_H + +#include <stdbool.h> + +#ifdef __cplusplus +extern "C" { +#endif + +/* Monotonic clock that excludes the time the recording has been paused. Safe to use from multiple threads */ +typedef struct gsr_recording_clock gsr_recording_clock; + +gsr_recording_clock* gsr_recording_clock_create(void); +void gsr_recording_clock_destroy(gsr_recording_clock *self); + +/* Sets the time the recording started to now */ +void gsr_recording_clock_start(gsr_recording_clock *self); +double gsr_recording_clock_get_start_time(const gsr_recording_clock *self); +/* Returns the current time, excluding the time the recording has been paused */ +double gsr_recording_clock_get_time(const gsr_recording_clock *self); + +void gsr_recording_clock_set_paused(gsr_recording_clock *self, bool paused); +bool gsr_recording_clock_is_paused(const gsr_recording_clock *self); + +#ifdef __cplusplus +} +#endif + +#endif /* GSR_RECORDER_RECORDING_CLOCK_H */ |
