Added attractModePlaylistCollectionNumber to switch playlists after a certain number of collection changes in Attract Mode.

This commit is contained in:
Pieter Hulshoff 2020-04-23 15:57:15 +02:00
parent b2ee4b8db6
commit c8a12bac13
3 changed files with 47 additions and 15 deletions

View File

@ -71,8 +71,9 @@ RetroFE::RetroFE( Configuration &c )
, keyDelayTime_(.3f)
, reboot_(false)
{
menuMode_ = false;
attractMode_ = false;
menuMode_ = false;
attractMode_ = false;
attractModePlaylistCollectionNumber_ = 0;
}
@ -734,20 +735,35 @@ bool RetroFE::run( )
if (rememberMenu && lastMenuPlaylists_.find( currentPage_->getCollectionName( ) ) != lastMenuPlaylists_.end( ))
{
currentPage_->selectPlaylist( lastMenuPlaylists_[currentPage_->getCollectionName( )] ); // Switch to last playlist
currentPage_->selectPlaylist( lastMenuPlaylists_[currentPage_->getCollectionName( )] ); // Switch to last playlist
currentPage_->setScrollOffsetIndex( lastMenuOffsets_[currentPage_->getCollectionName( )] );
}
else
{
currentPage_->selectPlaylist( autoPlaylist );
}
if ( rememberMenu && lastMenuOffsets_.find( currentPage_->getCollectionName( ) ) != lastMenuOffsets_.end( ) )
{
currentPage_->setScrollOffsetIndex( lastMenuOffsets_[currentPage_->getCollectionName( )] );
}
currentPage_->onNewItemSelected( );
state = RETROFE_COLLECTION_DOWN_MENU_ENTER;
currentPage_->onNewItemSelected( );
if ( attractMode_ ) // Check playlist change in attract mode
{
attractModePlaylistCollectionNumber_ += 1;
int attractModePlaylistCollectionNumber = 0;
config_.getProperty( "attractModePlaylistCollectionNumber", attractModePlaylistCollectionNumber );
// Check if playlist should be changed
if ( attractModePlaylistCollectionNumber_ > 0 && attractModePlaylistCollectionNumber_ >= attractModePlaylistCollectionNumber )
{
attractModePlaylistCollectionNumber_ = 0;
currentPage_->nextPlaylist( );
std::string attractModeSkipPlaylist = "";
config_.getProperty( "attractModeSkipPlaylist", attractModeSkipPlaylist );
if (currentPage_->getPlaylistName( ) == attractModeSkipPlaylist)
currentPage_->nextPlaylist( );
state = RETROFE_PLAYLIST_REQUEST;
}
}
}
break;
@ -763,9 +779,14 @@ bool RetroFE::run( )
case RETROFE_COLLECTION_DOWN_ENTER:
if ( currentPage_->isIdle( ) )
{
currentPage_->setScrolling(Page::ScrollDirectionForward);
currentPage_->scroll(true);
currentPage_->updateScrollPeriod( );
int attractModePlaylistCollectionNumber = 0;
config_.getProperty( "attractModePlaylistCollectionNumber", attractModePlaylistCollectionNumber );
if (!( attractMode_ && attractModePlaylistCollectionNumber > 0 && attractModePlaylistCollectionNumber_ == 0 ))
{
currentPage_->setScrolling(Page::ScrollDirectionForward);
currentPage_->scroll(true);
currentPage_->updateScrollPeriod( );
}
state = RETROFE_COLLECTION_DOWN_SCROLL;
}
break;
@ -1346,14 +1367,24 @@ RetroFE::RETROFE_STATE RetroFE::processUserInput( Page *page )
(input_.keystate(UserInput::KeyCodeCollectionLeft) && (!page->isHorizontalScroll( ) || !input_.keystate(UserInput::KeyCodeLeft))))
{
attract_.reset( );
state = RETROFE_COLLECTION_UP_REQUEST;
bool backOnCollection = false;
config_.getProperty( "backOnCollection", backOnCollection );
if ( page->getMenuDepth( ) == 1 || !backOnCollection )
state = RETROFE_COLLECTION_UP_REQUEST;
else
state = RETROFE_BACK_REQUEST;
}
else if ((input_.keystate(UserInput::KeyCodeCollectionDown) && ( page->isHorizontalScroll( ) || !input_.keystate(UserInput::KeyCodeDown))) ||
(input_.keystate(UserInput::KeyCodeCollectionRight) && (!page->isHorizontalScroll( ) || !input_.keystate(UserInput::KeyCodeRight))))
{
attract_.reset( );
state = RETROFE_COLLECTION_DOWN_REQUEST;
bool backOnCollection = false;
config_.getProperty( "backOnCollection", backOnCollection );
if ( page->getMenuDepth( ) == 1 || !backOnCollection )
state = RETROFE_COLLECTION_DOWN_REQUEST;
else
state = RETROFE_BACK_REQUEST;
}
else if (input_.keystate(UserInput::KeyCodePageUp))

View File

@ -134,6 +134,7 @@ private:
AttractMode attract_;
bool menuMode_;
bool attractMode_;
int attractModePlaylistCollectionNumber_;
bool reboot_;
std::map<std::string, unsigned int> lastMenuOffsets_;

View File

@ -21,7 +21,7 @@
std::string retrofe_version_major = "0";
std::string retrofe_version_minor = "9";
std::string retrofe_version_build = "34";
std::string retrofe_version_build = "35";
std::string Version::getString( )