From 2f5bfed9e9978b4c6097e0bc3e320e5f63569d67 Mon Sep 17 00:00:00 2001 From: Pieter Hulshoff Date: Tue, 16 Apr 2019 22:48:31 +0200 Subject: [PATCH] Prevent resetting of attract mode when switching playlist through attract mode. Added attractModeSkipPlaylist option to settings.conf. --- RetroFE/Source/Execute/AttractMode.cpp | 4 ++-- RetroFE/Source/Execute/AttractMode.h | 2 +- RetroFE/Source/RetroFE.cpp | 8 ++++++-- RetroFE/Source/Version.cpp | 2 +- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/RetroFE/Source/Execute/AttractMode.cpp b/RetroFE/Source/Execute/AttractMode.cpp index 42f20a6..71b3ba1 100644 --- a/RetroFE/Source/Execute/AttractMode.cpp +++ b/RetroFE/Source/Execute/AttractMode.cpp @@ -29,13 +29,13 @@ AttractMode::AttractMode() { } -void AttractMode::reset( bool set ) +void AttractMode::reset( bool set, bool resetElapsedPlaylistTime ) { elapsedTime_ = 0; isActive_ = false; isSet_ = set; activeTime_ = 0; - if (!set) + if (resetElapsedPlaylistTime) elapsedPlaylistTime_ = 0; } diff --git a/RetroFE/Source/Execute/AttractMode.h b/RetroFE/Source/Execute/AttractMode.h index e11afa7..bf59a2d 100644 --- a/RetroFE/Source/Execute/AttractMode.h +++ b/RetroFE/Source/Execute/AttractMode.h @@ -21,7 +21,7 @@ class AttractMode { public: AttractMode(); - void reset( bool set = false ); + void reset( bool set = false, bool resetElapsedPlaylistTime = true ); bool update(float dt, Page &page); float idleTime; float idleNextTime; diff --git a/RetroFE/Source/RetroFE.cpp b/RetroFE/Source/RetroFE.cpp index 7cd70c8..e61eba2 100644 --- a/RetroFE/Source/RetroFE.cpp +++ b/RetroFE/Source/RetroFE.cpp @@ -893,8 +893,12 @@ void RetroFE::run( ) { if (attract_.update( deltaTime, *currentPage_ )) { - attract_.reset( ); + attract_.reset( attract_.isSet( ), true ); currentPage_->nextPlaylist( ); + std::string attractModeSkipPlaylist = ""; + config_.getProperty( "attractModeSkipPlaylist", attractModeSkipPlaylist ); + if (currentPage_->getPlaylistName( ) == attractModeSkipPlaylist) + currentPage_->nextPlaylist( ); state = RETROFE_PLAYLIST_REQUEST; } } @@ -1149,7 +1153,7 @@ RetroFE::RETROFE_STATE RetroFE::processUserInput( Page *page ) page->resetScrollPeriod( ); if (page->isMenuScrolling( )) { - attract_.reset( attract_.isSet( ) ); + attract_.reset( attract_.isSet( ), false ); state = RETROFE_HIGHLIGHT_REQUEST; } } diff --git a/RetroFE/Source/Version.cpp b/RetroFE/Source/Version.cpp index ee098cd..bfa4051 100644 --- a/RetroFE/Source/Version.cpp +++ b/RetroFE/Source/Version.cpp @@ -21,7 +21,7 @@ std::string retrofe_version_major = "0"; std::string retrofe_version_minor = "8"; -std::string retrofe_version_build = "28"; +std::string retrofe_version_build = "29"; std::string Version::getString( )