From 77b54c35bf9587450cd636e0d7df37e190e28bfb Mon Sep 17 00:00:00 2001 From: Andrew Opalach Date: Mon, 13 Apr 2026 17:01:47 -0400 Subject: Smaller stuff that went uncommitted Signed-off-by: Andrew Opalach --- src/libsink/desktop.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'src/libsink/desktop.c') diff --git a/src/libsink/desktop.c b/src/libsink/desktop.c index af6fc50..ccc34a3 100644 --- a/src/libsink/desktop.c +++ b/src/libsink/desktop.c @@ -146,10 +146,10 @@ static void log_sink_status(struct camu_desktop *c) offset += al_snprintf(status + offset, sizeof(status) - offset, "]"); status[offset] = '\0'; - log_info("%s, window size: %ux%u, volume: %.2f", status, c->scr.width, c->scr.height, c->mixer.volume); + log_info("%s, window size: %ux%u, volume: %.2f.", status, c->scr.width, c->scr.height, c->mixer.volume); return; notplaying: - log_info("Not playing, window size: %ux%u", c->scr.width, c->scr.height); + log_info("Not playing, window size: %ux%u, volume %.2f.", c->scr.width, c->scr.height, c->mixer.volume); } static void screen_callback(void *userdata, u8 op, void *opaque) @@ -158,6 +158,9 @@ static void screen_callback(void *userdata, u8 op, void *opaque) switch (op) { case CAMU_SCREEN_SET_VOLUME: { f32 volume = *(f32 *)opaque; + if (volume == -1.f) { + volume = (c->mixer.volume == 0.f) ? 1.f : 0.f; + } camu_mixer_set_volume(&c->mixer, volume); log_info("Volume: %f.", volume); break; @@ -203,11 +206,11 @@ static void screen_callback(void *userdata, u8 op, void *opaque) } } -bool camu_desktop_open(struct camu_desktop *c, const char *window_name) +bool camu_desktop_open(struct camu_desktop *c, char *window_name) { c->scr.callback = screen_callback; c->scr.userdata = c; - if (!camu_screen_init(&c->scr) || !camu_screen_create_window(&c->scr, window_name)) { + if (!(camu_screen_init(&c->scr) && camu_screen_create_window(&c->scr, window_name))) { log_error("Failed to create window."); return false; } @@ -279,6 +282,8 @@ void camu_desktop_free(struct camu_desktop *c) camu_sink_free(&c->sink); al_str_free(&c->sink.default_list); camu_mixer_close(&c->mixer); - c->renderer->free(&c->renderer); + if (c->renderer) { + c->renderer->free(&c->renderer); + } camu_screen_close(&c->scr); } -- cgit v1.2.3-101-g0448