mirror of
https://github.com/FunKey-Project/RetroFE.git
synced 2026-01-12 00:59:12 +01:00
added attractModeCollectionTime and attractModeSkipCollection parameters to allow switching collections in attract mode.
This commit is contained in:
parent
fc52b94ce0
commit
fe7f9a77de
@ -25,6 +25,7 @@ AttractMode::AttractMode()
|
||||
, isSet_(false)
|
||||
, elapsedTime_(0)
|
||||
, elapsedPlaylistTime_(0)
|
||||
, elapsedCollectionTime_(0)
|
||||
, activeTime_(0)
|
||||
{
|
||||
}
|
||||
@ -36,20 +37,35 @@ void AttractMode::reset( bool set )
|
||||
isSet_ = set;
|
||||
activeTime_ = 0;
|
||||
if (!set)
|
||||
elapsedPlaylistTime_ = 0;
|
||||
{
|
||||
elapsedPlaylistTime_ = 0;
|
||||
elapsedCollectionTime_ = 0;
|
||||
}
|
||||
}
|
||||
|
||||
bool AttractMode::update(float dt, Page &page)
|
||||
int AttractMode::update(float dt, Page &page)
|
||||
{
|
||||
|
||||
elapsedTime_ += dt;
|
||||
elapsedPlaylistTime_ += dt;
|
||||
elapsedTime_ += dt;
|
||||
elapsedPlaylistTime_ += dt;
|
||||
elapsedCollectionTime_ += dt;
|
||||
|
||||
// Check if it's time to switch playlists
|
||||
if (!isActive_ && elapsedPlaylistTime_ > idlePlaylistTime && idlePlaylistTime > 0)
|
||||
{
|
||||
elapsedTime_ = 0;
|
||||
elapsedPlaylistTime_ = 0;
|
||||
return true;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
// Check if it's time to switch collections
|
||||
if (!isActive_ && elapsedCollectionTime_ > idleCollectionTime && idleCollectionTime > 0)
|
||||
{
|
||||
elapsedTime_ = 0;
|
||||
elapsedPlaylistTime_ = 0;
|
||||
elapsedCollectionTime_ = 0;
|
||||
return 2;
|
||||
}
|
||||
|
||||
|
||||
@ -81,7 +97,7 @@ bool AttractMode::update(float dt, Page &page)
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -22,10 +22,11 @@ class AttractMode
|
||||
public:
|
||||
AttractMode();
|
||||
void reset( bool set = false );
|
||||
bool update(float dt, Page &page);
|
||||
int update(float dt, Page &page);
|
||||
float idleTime;
|
||||
float idleNextTime;
|
||||
float idlePlaylistTime;
|
||||
float idleCollectionTime;
|
||||
bool isActive();
|
||||
bool isSet();
|
||||
|
||||
@ -34,5 +35,6 @@ private:
|
||||
bool isSet_;
|
||||
float elapsedTime_;
|
||||
float elapsedPlaylistTime_;
|
||||
float elapsedCollectionTime_;
|
||||
float activeTime_;
|
||||
};
|
||||
|
||||
@ -302,21 +302,24 @@ void RetroFE::run( )
|
||||
return;
|
||||
}
|
||||
|
||||
int attractModeTime = 0;
|
||||
int attractModeNextTime = 0;
|
||||
int attractModePlaylistTime = 0;
|
||||
std::string firstCollection = "Main";
|
||||
bool running = true;
|
||||
RETROFE_STATE state = RETROFE_NEW;
|
||||
int attractModeTime = 0;
|
||||
int attractModeNextTime = 0;
|
||||
int attractModePlaylistTime = 0;
|
||||
int attractModeCollectionTime = 0;
|
||||
std::string firstCollection = "Main";
|
||||
bool running = true;
|
||||
RETROFE_STATE state = RETROFE_NEW;
|
||||
|
||||
config_.getProperty( "attractModeTime", attractModeTime );
|
||||
config_.getProperty( "attractModeNextTime", attractModeNextTime );
|
||||
config_.getProperty( "attractModePlaylistTime", attractModePlaylistTime );
|
||||
config_.getProperty( "attractModeCollectionTime", attractModeCollectionTime );
|
||||
config_.getProperty( "firstCollection", firstCollection );
|
||||
|
||||
attract_.idleTime = static_cast<float>(attractModeTime);
|
||||
attract_.idleNextTime = static_cast<float>(attractModeNextTime);
|
||||
attract_.idlePlaylistTime = static_cast<float>(attractModePlaylistTime);
|
||||
attract_.idleTime = static_cast<float>(attractModeTime);
|
||||
attract_.idleNextTime = static_cast<float>(attractModeNextTime);
|
||||
attract_.idlePlaylistTime = static_cast<float>(attractModePlaylistTime);
|
||||
attract_.idleCollectionTime = static_cast<float>(attractModeCollectionTime);
|
||||
|
||||
int initializeStatus = 0;
|
||||
|
||||
@ -761,28 +764,40 @@ void RetroFE::run( )
|
||||
case RETROFE_COLLECTION_UP_SCROLL:
|
||||
if ( currentPage_->isMenuIdle( ) )
|
||||
{
|
||||
RETROFE_STATE state_tmp = processUserInput( currentPage_ );
|
||||
if ( state_tmp == RETROFE_COLLECTION_UP_REQUEST )
|
||||
std::string attractModeSkipCollection = "";
|
||||
config_.getProperty( "attractModeSkipCollection", attractModeSkipCollection );
|
||||
// Check if we need to skip this collection in attract mode or if we can select it
|
||||
if ( attractMode_ && currentPage_->getSelectedItem( )->name == attractModeSkipCollection )
|
||||
{
|
||||
state = RETROFE_COLLECTION_UP_REQUEST;
|
||||
}
|
||||
else if ( state_tmp == RETROFE_COLLECTION_DOWN_REQUEST )
|
||||
{
|
||||
state = RETROFE_COLLECTION_DOWN_REQUEST;
|
||||
currentPage_->setScrolling(Page::ScrollDirectionForward);
|
||||
currentPage_->scroll(true);
|
||||
currentPage_->updateScrollPeriod( );
|
||||
}
|
||||
else
|
||||
{
|
||||
currentPage_->setScrolling(Page::ScrollDirectionIdle); // Stop scrolling
|
||||
nextPageItem_ = currentPage_->getSelectedItem( );
|
||||
bool enterOnCollection = true;
|
||||
config_.getProperty( "enterOnCollection", enterOnCollection );
|
||||
if ( currentPage_->getSelectedItem( )->leaf || !enterOnCollection ) // Current selection is a game or enterOnCollection is not set
|
||||
RETROFE_STATE state_tmp = processUserInput( currentPage_ );
|
||||
if ( state_tmp == RETROFE_COLLECTION_UP_REQUEST )
|
||||
{
|
||||
state = RETROFE_HIGHLIGHT_REQUEST;
|
||||
state = RETROFE_COLLECTION_UP_REQUEST;
|
||||
}
|
||||
else // Current selection is a menu
|
||||
else if ( state_tmp == RETROFE_COLLECTION_DOWN_REQUEST )
|
||||
{
|
||||
state = RETROFE_COLLECTION_HIGHLIGHT_EXIT;
|
||||
state = RETROFE_COLLECTION_DOWN_REQUEST;
|
||||
}
|
||||
else
|
||||
{
|
||||
currentPage_->setScrolling(Page::ScrollDirectionIdle); // Stop scrolling
|
||||
nextPageItem_ = currentPage_->getSelectedItem( );
|
||||
bool enterOnCollection = true;
|
||||
config_.getProperty( "enterOnCollection", enterOnCollection );
|
||||
if ( currentPage_->getSelectedItem( )->leaf || !enterOnCollection ) // Current selection is a game or enterOnCollection is not set
|
||||
{
|
||||
state = RETROFE_HIGHLIGHT_REQUEST;
|
||||
}
|
||||
else // Current selection is a menu
|
||||
{
|
||||
state = RETROFE_COLLECTION_HIGHLIGHT_EXIT;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1178,7 +1193,8 @@ void RetroFE::run( )
|
||||
{
|
||||
if (!splashMode)
|
||||
{
|
||||
if (attract_.update( deltaTime, *currentPage_ ))
|
||||
int attractReturn = attract_.update( deltaTime, *currentPage_ );
|
||||
if (attractReturn == 1) // Change playlist
|
||||
{
|
||||
attract_.reset( attract_.isSet( ) );
|
||||
currentPage_->nextPlaylist( );
|
||||
@ -1188,6 +1204,11 @@ void RetroFE::run( )
|
||||
currentPage_->nextPlaylist( );
|
||||
state = RETROFE_PLAYLIST_REQUEST;
|
||||
}
|
||||
if (attractReturn == 2) // Change collection
|
||||
{
|
||||
attract_.reset( attract_.isSet( ) );
|
||||
state = RETROFE_COLLECTION_UP_REQUEST;
|
||||
}
|
||||
}
|
||||
if ( menuMode_ )
|
||||
{
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
|
||||
std::string retrofe_version_major = "0";
|
||||
std::string retrofe_version_minor = "9";
|
||||
std::string retrofe_version_build = "11";
|
||||
std::string retrofe_version_build = "12";
|
||||
|
||||
|
||||
std::string Version::getString( )
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user