@@ -18,6 +18,11 @@ GuiVideoScreensaverOptions::GuiVideoScreensaverOptions(Window* window, const cha
1818 PowerSaver::updateTimeouts ();
1919 });
2020
21+ auto stretch_screensaver = std::make_shared<SwitchComponent>(mWindow );
22+ stretch_screensaver->setState (Settings::getInstance ()->getBool (" StretchVideoOnScreenSaver" ));
23+ addWithLabel (" STRETCH VIDEO ON SCREENSAVER" , stretch_screensaver);
24+ addSaveFunc ([stretch_screensaver] { Settings::getInstance ()->setBool (" StretchVideoOnScreenSaver" , stretch_screensaver->getState ()); });
25+
2126#ifdef _RPI_
2227 auto ss_omx = std::make_shared<SwitchComponent>(mWindow );
2328 ss_omx->setState (Settings::getInstance ()->getBool (" ScreenSaverOmxPlayer" ));
@@ -36,17 +41,49 @@ GuiVideoScreensaverOptions::GuiVideoScreensaverOptions(Window* window, const cha
3641 addWithLabel (" SHOW GAME INFO ON SCREENSAVER" , ss_info);
3742 addSaveFunc ([ss_info, this ] { Settings::getInstance ()->setString (" ScreenSaverGameInfo" , ss_info->getSelected ()); });
3843
44+ #ifdef _RPI_
45+ ComponentListRow row;
46+
47+ // Set subtitle position
48+ auto ss_omx_subs_align = std::make_shared< OptionListComponent<std::string> >(mWindow , " GAME INFO ALIGNMENT" , false );
49+ std::vector<std::string> align_mode;
50+ align_mode.push_back (" left" );
51+ align_mode.push_back (" center" );
52+ for (auto it = align_mode.cbegin (); it != align_mode.cend (); it++)
53+ ss_omx_subs_align->add (*it, *it, Settings::getInstance ()->getString (" SubtitleAlignment" ) == *it);
54+ addWithLabel (" GAME INFO ALIGNMENT" , ss_omx_subs_align);
55+ addSaveFunc ([ss_omx_subs_align, this ] { Settings::getInstance ()->setString (" SubtitleAlignment" , ss_omx_subs_align->getSelected ()); });
56+
57+ // Set font size
58+ auto ss_omx_font_size = std::make_shared<SliderComponent>(mWindow , 1 .f , 64 .f , 1 .f , " h" );
59+ ss_omx_font_size->setValue ((float )(Settings::getInstance ()->getInt (" SubtitleSize" )));
60+ addWithLabel (" GAME INFO FONT SIZE" , ss_omx_font_size);
61+ addSaveFunc ([ss_omx_font_size] {
62+ int subSize = (int )Math::round (ss_omx_font_size->getValue ());
63+ Settings::getInstance ()->setInt (" SubtitleSize" , subSize);
64+ });
65+
66+ // Define subtitle font
67+ auto ss_omx_font_file = std::make_shared<TextComponent>(mWindow , " " , Font::get (FONT_SIZE_SMALL), 0x777777FF );
68+ addEditableTextComponent (row, " PATH TO FONT FILE" , ss_omx_font_file, Settings::getInstance ()->getString (" SubtitleFont" ));
69+ addSaveFunc ([ss_omx_font_file] {
70+ Settings::getInstance ()->setString (" SubtitleFont" , ss_omx_font_file->getValue ());
71+ });
72+
73+ // Define subtitle italic font
74+ auto ss_omx_italic_font_file = std::make_shared<TextComponent>(mWindow , " " , Font::get (FONT_SIZE_SMALL), 0x777777FF );
75+ addEditableTextComponent (row, " PATH TO ITALIC FONT FILE" , ss_omx_italic_font_file, Settings::getInstance ()->getString (" SubtitleItalicFont" ));
76+ addSaveFunc ([ss_omx_italic_font_file] {
77+ Settings::getInstance ()->setString (" SubtitleItalicFont" , ss_omx_italic_font_file->getValue ());
78+ });
79+ #endif
80+
3981#ifndef _RPI_
4082 auto captions_compatibility = std::make_shared<SwitchComponent>(mWindow );
4183 captions_compatibility->setState (Settings::getInstance ()->getBool (" CaptionsCompatibility" ));
4284 addWithLabel (" USE COMPATIBLE LOW RESOLUTION FOR CAPTIONS" , captions_compatibility);
4385 addSaveFunc ([captions_compatibility] { Settings::getInstance ()->setBool (" CaptionsCompatibility" , captions_compatibility->getState ()); });
4486#endif
45-
46- auto stretch_screensaver = std::make_shared<SwitchComponent>(mWindow );
47- stretch_screensaver->setState (Settings::getInstance ()->getBool (" StretchVideoOnScreenSaver" ));
48- addWithLabel (" STRETCH VIDEO ON SCREENSAVER" , stretch_screensaver);
49- addSaveFunc ([stretch_screensaver] { Settings::getInstance ()->setBool (" StretchVideoOnScreenSaver" , stretch_screensaver->getState ()); });
5087}
5188
5289GuiVideoScreensaverOptions::~GuiVideoScreensaverOptions ()
0 commit comments