summaryrefslogtreecommitdiff
path: root/src/buffer/clock.h
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2026-04-13 17:36:54 -0400
committerAndrew Opalach <andrew@akon.city> 2026-04-13 17:36:54 -0400
commit4ceadc74f0086168fbc576032ba3e6f23af16e39 (patch)
treea542703d78f2b29ac1a756fdceec78e40860bab0 /src/buffer/clock.h
parent77b54c35bf9587450cd636e0d7df37e190e28bfb (diff)
downloadcamu-4ceadc74f0086168fbc576032ba3e6f23af16e39.tar.gz
camu-4ceadc74f0086168fbc576032ba3e6f23af16e39.tar.bz2
camu-4ceadc74f0086168fbc576032ba3e6f23af16e39.zip
Changes that went uncommitted for too long
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/buffer/clock.h')
-rw-r--r--src/buffer/clock.h10
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);