feat(core,player,app): subtitle size, background and colour settings

Plain-text subtitles (SRT) were drawn in mpv's bare default, thin white
text that bright scenes swallow. Settings → Playback now picks a size,
an outline or a dark box, and white or yellow text. Styled (ASS) tracks
keep their own look and take only the size.

The box options are mpv 0.38's, so they are set best effort: an older
libmpv logs and plays on. The style syncs with the other playback
settings, and the Android bridge keeps the stored style instead of
resetting it on save.
This commit is contained in:
nvrl committed 2026-10-27 19:50:21 +01:00
1 parent 658c620c82
commit 65a669e231
9 files changed
+265 -3

No files matched your search

+7
View File
@@ -235,6 +235,8 @@ pub enum Action {
subtitles: bool,
subtitle: Option<String>,
},
/// How plain subtitles look, from the next file.
SetSubtitleStyle(pstr_core::prefs::SubtitleStyle),
/// Play faster or slower, and keep doing so for the next file.
SetSpeed(f64),
/// Seek past openings and credits without being asked.
@@ -1938,6 +1940,11 @@ impl App {
prefs.subtitle_language = subtitle;
self.engine.set_playback_prefs(prefs, true);
}
Action::SetSubtitleStyle(style) => {
let mut prefs = self.engine.playback_prefs();
prefs.subtitle_style = style;
self.engine.set_playback_prefs(prefs, true);
}
Action::SetAppearance(appearance) => {
self.engine.set_appearance(appearance);
theme::apply(ctx, appearance);