summaryrefslogtreecommitdiff
path: root/src/libsink/desktop.c
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2026-08-26 17:56:52 -0400
committerAndrew Opalach <andrew@akon.city> 2026-08-26 17:56:52 -0400
commit197d41a3e23cab35848f623c6133baccc62aacbe (patch)
tree04943c1de9653de53615e10ced1eab07c2562325 /src/libsink/desktop.c
parent6094c907b26e21f13373bae6bf3306dbae40af3c (diff)
downloadcamu-197d41a3e23cab35848f623c6133baccc62aacbe.tar.gz
camu-197d41a3e23cab35848f623c6133baccc62aacbe.tar.bz2
camu-197d41a3e23cab35848f623c6133baccc62aacbe.zip
OSD stuff and Android fixes
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/libsink/desktop.c')
-rw-r--r--src/libsink/desktop.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/libsink/desktop.c b/src/libsink/desktop.c
index e9ccedb..2707f34 100644
--- a/src/libsink/desktop.c
+++ b/src/libsink/desktop.c
@@ -127,12 +127,11 @@ static void log_sink_status(struct camu_desktop *c)
u64 pts = camu_clock_get_last_pts(&current->clock) * 1000000u;
u64 duration = current->client.duration;
- pts = MIN(duration, pts);
bool paused = current->paused;
camu_sink_return_current(sink);
- u64 remaining = duration - pts;
+ u64 remaining = duration - MIN(pts, duration);
if (remaining == 0) {
goto notplaying;
}
@@ -162,14 +161,17 @@ static void screen_callback(void *userdata, u8 op, void *opaque)
volume = (c->mixer.volume == 0.f) ? 1.f : 0.f;
}
camu_mixer_set_volume(&c->mixer, volume);
- log_info("Volume: %f.", volume);
+ *(f32 *)opaque = volume;
break;
}
case CAMU_SCREEN_OFFSET_VOLUME: {
f32 volume = camu_mixer_offset_volume(&c->mixer, *(f32 *)opaque);
- log_info("Volume: %f.", volume);
+ *(f32 *)opaque = volume;
break;
}
+ case CAMU_SCREEN_ADD:
+ camu_sink_add(&c->sink, (str *)opaque);
+ break;
case CAMU_SCREEN_SKIP:
camu_sink_skip(&c->sink, *(s32 *)opaque);
break;
@@ -189,6 +191,9 @@ static void screen_callback(void *userdata, u8 op, void *opaque)
camu_sink_shuffle(&c->sink);
break;
case CAMU_SCREEN_STATUS:
+ camu_sink_status(&c->sink, (struct camu_osd *)opaque);
+ break;
+ case CAMU_SCREEN_PRINT:
log_sink_status(c);
break;
#ifdef CAMU_SCREEN_DEBUG_KEY