Merge pull request #847 from pjft/system-screensaver

Change order of menu per user request
Fix image screensaver game selection
Fix glitches with subtitles and video gamelist view
This commit is contained in:
pjft 2024-01-21 09:58:22 +00:00 committed by GitHub
commit e782d53637
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 18 additions and 13 deletions

View file

@ -95,7 +95,7 @@ bool SystemScreenSaver::inputDuringScreensaver(InputConfig* config, Input input)
{
selectGame(is_start_input);
}
else if (is_favorite_input && !UIModeController::getInstance()->isUIModeKid())
else if (is_favorite_input && !UIModeController::getInstance()->isUIModeKid() && (screensaver_type == "random video" || !slideshow_custom_media))
{
if (mCurrentGame)
{
@ -237,8 +237,7 @@ void SystemScreenSaver::startScreenSaver(SystemData* system)
}
else
{
if (!mCurrentGame)
pickRandomGameListImage(path, mCurrentGame != NULL);
pickRandomGameListImage(path, mCurrentGame != NULL);
}
if (isFileVideo(path))
@ -272,6 +271,7 @@ void SystemScreenSaver::startScreenSaver(SystemData* system)
void SystemScreenSaver::stopScreenSaver(bool toResume)
{
remove(getTitlePath().c_str());
if ((mBackgroundAudio) && (mStopBackgroundAudio))
{
mBackgroundAudio->stop();

View file

@ -22,16 +22,6 @@ GuiGamelistOptions::GuiGamelistOptions(Window* window, SystemData* system) : Gui
mFromPlaceholder = file->isPlaceHolder();
ComponentListRow row;
// add launch system screensaver
std::string screensaver_behavior = Settings::getInstance()->getString("ScreenSaverBehavior");
if (screensaver_behavior == "random video" || (screensaver_behavior == "slideshow" && !Settings::getInstance()->getBool("SlideshowScreenSaverCustomMediaSource"))) {
row.elements.clear();
row.addElement(std::make_shared<TextComponent>(mWindow, "LAUNCH SYSTEM SCREENSAVER", Font::get(FONT_SIZE_MEDIUM), 0x777777FF), true);
row.makeAcceptInputHandler(std::bind(&GuiGamelistOptions::launchSystemScreenSaver, this));
mMenu.addRow(row);
}
if (!mFromPlaceholder) {
row.elements.clear();
@ -86,6 +76,16 @@ GuiGamelistOptions::GuiGamelistOptions(Window* window, SystemData* system) : Gui
mMenu.addRow(row);
}
// add launch system screensaver
std::string screensaver_behavior = Settings::getInstance()->getString("ScreenSaverBehavior");
if (screensaver_behavior == "random video" || (screensaver_behavior == "slideshow" && !Settings::getInstance()->getBool("SlideshowScreenSaverCustomMediaSource"))) {
row.elements.clear();
row.addElement(std::make_shared<TextComponent>(mWindow, "LAUNCH SYSTEM SCREENSAVER", Font::get(FONT_SIZE_MEDIUM), 0x777777FF), true);
row.makeAcceptInputHandler(std::bind(&GuiGamelistOptions::launchSystemScreenSaver, this));
mMenu.addRow(row);
}
// "sort list by" menuitem
mListSort = std::make_shared<SortList>(mWindow, "SORT GAMES BY", false);
for(unsigned int i = 0; i < FileSorts::SortTypes.size(); i++)
@ -184,6 +184,7 @@ bool GuiGamelistOptions::launchSystemScreenSaver()
}
}
mWindow->startScreenSaver(system);
mWindow->renderScreenSaver();
delete this;
return true;

View file

@ -300,6 +300,10 @@ void VideoVlcComponent::startVideo()
}
}
}
else
{
remove(getTitlePath().c_str());
}
PowerSaver::pause();
setupContext();