summaryrefslogtreecommitdiff
path: root/src/screen
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2025-09-08 14:30:49 -0400
committerAndrew Opalach <andrew@akon.city> 2025-09-08 14:30:49 -0400
commit3294789c8712a3cb984ae1bc732934f3e2670a81 (patch)
treec292eb8caba9fcc616624332f4bdc26e197422ea /src/screen
parentce955da36daa278d5b331b3c97e228e733a5125e (diff)
downloadcamu-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.c13
-rw-r--r--src/screen/screen.h3
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;