diff options
| author | 2025-09-08 14:30:49 -0400 | |
|---|---|---|
| committer | 2025-09-08 14:30:49 -0400 | |
| commit | 3294789c8712a3cb984ae1bc732934f3e2670a81 (patch) | |
| tree | c292eb8caba9fcc616624332f4bdc26e197422ea /src/screen | |
| parent | ce955da36daa278d5b331b3c97e228e733a5125e (diff) | |
| download | camu-3294789c8712a3cb984ae1bc732934f3e2670a81.tar.gz camu-3294789c8712a3cb984ae1bc732934f3e2670a81.tar.bz2 camu-3294789c8712a3cb984ae1bc732934f3e2670a81.zip | |
Optimize subtitle allocations, subtitle toggle
- Cleanup renderers.
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/screen')
| -rw-r--r-- | src/screen/screen.c | 13 | ||||
| -rw-r--r-- | src/screen/screen.h | 3 |
2 files changed, 13 insertions, 3 deletions
diff --git a/src/screen/screen.c b/src/screen/screen.c index ee6b1e9..f310970 100644 --- a/src/screen/screen.c +++ b/src/screen/screen.c @@ -287,7 +287,13 @@ static bool key_callback(void *userdata, u8 state, u16 button) scr->callback(scr->userdata, CAMU_SCREEN_TOGGLE_PAUSE, NULL); break; case STELA_KEY_S: - scr->callback(scr->userdata, CAMU_SCREEN_SHUFFLE, NULL); + if (SCREEN_MOD1(scr)) { + scr->callback(scr->userdata, CAMU_SCREEN_SHUFFLE, NULL); + } else { + scr->subtitles_enabled = !scr->subtitles_enabled; + log_info(scr->subtitles_enabled ? "Subtitles enabled." : "Subtitles disabled."); + return true; + } break; case STELA_KEY_E: scr->callback(scr->userdata, CAMU_SCREEN_RESEEK, NULL); @@ -468,6 +474,9 @@ bool camu_screen_init(struct camu_screen *scr) scr->renderer = NULL; al_atomic_store(u32)(&scr->force_refresh, 1, AL_ATOMIC_RELAXED); scr->flags = CAMU_SCREEN_ZOOM_PAN_SIMPLE; + scr->scaling_disabled = false; + scr->transparent_background = false; + scr->subtitles_enabled = true; scr->last_click_ts = SCREEN_INVALID_TS; scr->last_pointer_x = 0.0; scr->last_pointer_y = 0.0; @@ -510,8 +519,6 @@ bool camu_screen_create_window(struct camu_screen *scr, const char *name) scr->width = scr->window->width; scr->height = scr->window->height; scr->fullscreen = false; - scr->scaling_disabled = false; - scr->transparent_background = false; #ifdef STELA_EVENT_BUFFER nn_thread_create(&scr->thread, event_thread, scr); #endif diff --git a/src/screen/screen.h b/src/screen/screen.h index e03fdb3..6b95fed 100644 --- a/src/screen/screen.h +++ b/src/screen/screen.h @@ -69,6 +69,9 @@ struct camu_screen { bool fullscreen; bool scaling_disabled; bool transparent_background; +#ifdef CAMU_HAVE_SUBTITLES + bool subtitles_enabled; +#endif u64 last_click_ts; f64 last_pointer_y; f64 last_pointer_x; |