Added support for attract mode playlist switch using attractModePlaylistTime configuration option.

This commit is contained in:
Pieter Hulshoff 2019-04-15 22:09:29 +02:00
parent 801434188b
commit 8876c0989e
4 changed files with 35 additions and 20 deletions

View File

@ -24,6 +24,7 @@ AttractMode::AttractMode()
, isActive_(false)
, isSet_(false)
, elapsedTime_(0)
, elapsedPlaylistTime_(0)
, activeTime_(0)
{
}
@ -34,21 +35,23 @@ void AttractMode::reset( bool set )
isActive_ = false;
isSet_ = set;
activeTime_ = 0;
if (!set)
elapsedPlaylistTime_ = 0;
}
void AttractMode::update(float dt, Page &page)
bool AttractMode::update(float dt, Page &page)
{
elapsedTime_ += dt;
elapsedTime_ += dt;
elapsedPlaylistTime_ += dt;
// Check if it's time to switch playlists
if (!isActive_ && elapsedPlaylistTime_ > idlePlaylistTime && idlePlaylistTime > 0)
return true;
// enable attract mode when idling for the expected time. Disable if idle time is set to 0.
if(!isActive_ && (elapsedTime_ > idleTime && idleTime > 0))
{
isActive_ = true;
isSet_ = true;
elapsedTime_ = 0;
activeTime_ = ((float)((1000+rand()) % 5000)) / 1000;
}
if(!isActive_ && isSet_ && elapsedTime_ > idleNextTime && idleNextTime > 0)
if(!isActive_ && ((elapsedTime_ > idleTime && idleTime > 0) || (isSet_ && elapsedTime_ > idleNextTime && idleNextTime > 0)))
{
isActive_ = true;
isSet_ = true;
@ -72,6 +75,9 @@ void AttractMode::update(float dt, Page &page)
isActive_ = false;
}
}
return false;
}

View File

@ -22,9 +22,10 @@ class AttractMode
public:
AttractMode();
void reset( bool set = false );
void update(float dt, Page &page);
bool update(float dt, Page &page);
float idleTime;
float idleNextTime;
float idlePlaylistTime;
bool isActive();
bool isSet();
@ -32,6 +33,6 @@ private:
bool isActive_;
bool isSet_;
float elapsedTime_;
float elapsedPlaylistTime_;
float activeTime_;
};

View File

@ -301,18 +301,21 @@ void RetroFE::run( )
return;
}
int attractModeTime = 0;
int attractModeNextTime = 0;
int attractModeTime = 0;
int attractModeNextTime = 0;
int attractModePlaylistTime = 0;
std::string firstCollection = "Main";
bool running = true;
RETROFE_STATE state = RETROFE_NEW;
bool running = true;
RETROFE_STATE state = RETROFE_NEW;
config_.getProperty( "attractModeTime", attractModeTime );
config_.getProperty( "attractModeNextTime", attractModeNextTime );
config_.getProperty( "attractModePlaylistTime", attractModePlaylistTime );
config_.getProperty( "firstCollection", firstCollection );
attract_.idleTime = static_cast<float>(attractModeTime);
attract_.idleNextTime = static_cast<float>(attractModeNextTime);
attract_.idleTime = static_cast<float>(attractModeTime);
attract_.idleNextTime = static_cast<float>(attractModeNextTime);
attract_.idlePlaylistTime = static_cast<float>(attractModePlaylistTime);
int initializeStatus = 0;
@ -888,7 +891,12 @@ void RetroFE::run( )
{
if (!splashMode)
{
attract_.update( deltaTime, *currentPage_ );
if (attract_.update( deltaTime, *currentPage_ ))
{
attract_.reset( );
currentPage_->nextPlaylist( );
state = RETROFE_PLAYLIST_REQUEST;
}
}
if ( menuMode_ )
{

View File

@ -21,7 +21,7 @@
std::string retrofe_version_major = "0";
std::string retrofe_version_minor = "8";
std::string retrofe_version_build = "27";
std::string retrofe_version_build = "28";
std::string Version::getString( )