From 49e01c8cde0c212abd3c67091102cfd7797c1e07 Mon Sep 17 00:00:00 2001 From: Andrew Opalach Date: Tue, 10 Dec 2024 15:04:31 -0500 Subject: Improve screen and mixer deinitialization Signed-off-by: Andrew Opalach --- src/sink/desktop.c | 10 +++++----- src/sink/input_simulator.c | 3 +++ src/sink/input_simulator.h | 3 +++ src/sink/meson.build | 5 +---- 4 files changed, 12 insertions(+), 9 deletions(-) (limited to 'src/sink') diff --git a/src/sink/desktop.c b/src/sink/desktop.c index 85080ba..ccd2e11 100644 --- a/src/sink/desktop.c +++ b/src/sink/desktop.c @@ -10,7 +10,7 @@ #include "desktop.h" #include "common.h" -#ifdef _DEBUG_ +#ifdef CAMU_SCREEN_DEBUG_KEY #include "input_simulator.h" #endif @@ -50,16 +50,16 @@ static void screen_callback(void *userdata, u8 op, void *opaque) case CAMU_SCREEN_RESEEK: camu_sink_reseek(&c->sink); break; +#ifdef CAMU_SCREEN_DEBUG_KEY case CAMU_SCREEN_DEBUG: -#ifdef _DEBUG_ if (camu_input_simulator_running()) { camu_input_simulator_stop(); } else { camu_input_simulator_run(&c->sink); } //camu_sink_unset(&c->sink); -#endif break; +#endif case CAMU_SCREEN_VOLUME: { f64 amount = *(f64 *)opaque; camu_sink_offset_volume(&c->sink, (f32)amount); @@ -121,14 +121,14 @@ bool camu_desktop_tick(struct camu_desktop *c) void camu_desktop_stop(struct camu_desktop *c) { -#ifdef _DEBUG_ +#ifdef CAMU_SCREEN_DEBUG_KEY if (camu_input_simulator_running()) { camu_input_simulator_stop(); } #endif camu_mixer_pause(&c->mixer); camu_mixer_clear(&c->mixer); - camu_screen_set_state(&c->scr, CAMU_SCREEN_CLOSED); + // We have already stopped ticking the screen at this point. camu_screen_clear(&c->scr); camu_sink_stop(&c->sink); } diff --git a/src/sink/input_simulator.c b/src/sink/input_simulator.c index b9c92ca..92e3936 100644 --- a/src/sink/input_simulator.c +++ b/src/sink/input_simulator.c @@ -1,3 +1,5 @@ +#include "../screen/screen.h" +#ifdef CAMU_SCREEN_DEBUG_KEY #include #include @@ -58,3 +60,4 @@ void camu_input_simulator_stop(void) quit = 1; aki_thread_join(&thread); } +#endif diff --git a/src/sink/input_simulator.h b/src/sink/input_simulator.h index 40253d0..e05b03e 100644 --- a/src/sink/input_simulator.h +++ b/src/sink/input_simulator.h @@ -1,7 +1,10 @@ #pragma once +#include "../screen/screen.h" +#ifdef CAMU_SCREEN_DEBUG_KEY #include "../libsink/sink.h" void camu_input_simulator_run(struct camu_sink *sink); bool camu_input_simulator_running(void); void camu_input_simulator_stop(void); +#endif diff --git a/src/sink/meson.build b/src/sink/meson.build index 067b045..30a5f39 100644 --- a/src/sink/meson.build +++ b/src/sink/meson.build @@ -1,7 +1,4 @@ -desktop_src = ['desktop.c'] -if is_debug - desktop_src += ['input_simulator.c'] -endif +desktop_src = ['desktop.c', 'input_simulator.c'] desktop_deps = [libsink] desktop_args = ['-DCAMU_MIXER_THREADED', '-DCAMU_SCREEN_THREADED'] desktop = declare_dependency(sources: desktop_src, dependencies: desktop_deps, -- cgit v1.2.3-101-g0448