diff options
Diffstat (limited to 'src/buffer/clock.h')
| -rw-r--r-- | src/buffer/clock.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/buffer/clock.h b/src/buffer/clock.h index 8324b6a..eb3dcaf 100644 --- a/src/buffer/clock.h +++ b/src/buffer/clock.h @@ -33,8 +33,10 @@ enum { struct camu_clock { f64 base; + f64 offset; atomic(f64) tick; atomic(f64) pause; + atomic(bool) external_pause; f64 paused_at; atomic(f64) last_pts; void (*callback)(void *, u8); @@ -43,14 +45,14 @@ struct camu_clock { void camu_clock_init(struct camu_clock *clock, void (*callback)(void *, u8), void *userdata); void camu_clock_set(struct camu_clock *clock, f64 base); +void camu_clock_offset(struct camu_clock *clock, f64 offset); void camu_clock_seek(struct camu_clock *clock, f64 base, u64 target); -void camu_clock_loop(struct camu_clock *clock, f64 last_pts); -void camu_clock_pause(struct camu_clock *clock, u64 target); +bool camu_clock_pause(struct camu_clock *clock, u64 target); +void camu_clock_external_pause(struct camu_clock *clock); void camu_clock_resume(struct camu_clock *clock, u64 target); -bool camu_clock_is_paused(struct camu_clock *clock); f64 camu_clock_get_base_pts(struct camu_clock *clock); -f64 camu_clock_get_pts(struct camu_clock *clock, f64 latency, bool allow_set); +f64 camu_clock_get_pts(struct camu_clock *clock, f64 latency, bool allow_set, bool *armed_for_pause); f64 camu_clock_get_last_pts(struct camu_clock *clock); |