mirror of
https://github.com/RetroPie/EmulationStation.git
synced 2024-05-31 18:47:42 -04:00
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:
commit
e782d53637
|
@ -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();
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -300,6 +300,10 @@ void VideoVlcComponent::startVideo()
|
|||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
remove(getTitlePath().c_str());
|
||||
}
|
||||
PowerSaver::pause();
|
||||
setupContext();
|
||||
|
||||
|
|
Loading…
Reference in a new issue