mirror of
https://github.com/FunKey-Project/RetroFE.git
synced 2025-12-15 03:08:52 +01:00
BUG correction: text not cleared on deallocation, better state printing in state machine
Signed-off-by: Vincent-FK <vincent.buso@funkey-project.com>
This commit is contained in:
parent
c96bd40a9b
commit
5bb70b02eb
@ -288,9 +288,11 @@ bool CollectionInfoBuilder::ImportDirectory(CollectionInfo *info, std::string me
|
|||||||
bool romHierarchy = false;
|
bool romHierarchy = false;
|
||||||
bool truRIP = false;
|
bool truRIP = false;
|
||||||
|
|
||||||
|
/* Clear Item list */
|
||||||
|
//info->items.clear();
|
||||||
|
|
||||||
if (mergedCollectionName != "")
|
if (mergedCollectionName != "")
|
||||||
{
|
{
|
||||||
|
|
||||||
std::string mergedFile = Utils::combinePath(Configuration::absolutePath, "collections", mergedCollectionName, info->name + ".sub");
|
std::string mergedFile = Utils::combinePath(Configuration::absolutePath, "collections", mergedCollectionName, info->name + ".sub");
|
||||||
Logger::write(Logger::ZONE_INFO, "CollectionInfoBuilder", "Checking for \"" + mergedFile + "\"");
|
Logger::write(Logger::ZONE_INFO, "CollectionInfoBuilder", "Checking for \"" + mergedFile + "\"");
|
||||||
(void)conf_.getProperty("collections." + mergedCollectionName + ".list.includeMissingItems", showMissing);
|
(void)conf_.getProperty("collections." + mergedCollectionName + ".list.includeMissingItems", showMissing);
|
||||||
|
|||||||
@ -152,6 +152,7 @@ void ScrollingList::deallocateSpritePoints( )
|
|||||||
|
|
||||||
void ScrollingList::allocateSpritePoints( )
|
void ScrollingList::allocateSpritePoints( )
|
||||||
{
|
{
|
||||||
|
|
||||||
if ( !items_ || items_->size( ) == 0 ) return;
|
if ( !items_ || items_->size( ) == 0 ) return;
|
||||||
if ( !scrollPoints_ ) return;
|
if ( !scrollPoints_ ) return;
|
||||||
if ( components_.size( ) == 0 ) return;
|
if ( components_.size( ) == 0 ) return;
|
||||||
@ -611,6 +612,7 @@ bool ScrollingList::allocateTexture( unsigned int index, Item *item )
|
|||||||
|
|
||||||
for ( unsigned int n = 0; n < names.size() && !t; ++n )
|
for ( unsigned int n = 0; n < names.size() && !t; ++n )
|
||||||
{
|
{
|
||||||
|
|
||||||
// check collection path for art
|
// check collection path for art
|
||||||
if ( layoutMode_ )
|
if ( layoutMode_ )
|
||||||
{
|
{
|
||||||
|
|||||||
@ -35,11 +35,13 @@ Text::Text( std::string text, Page &p, Font *font, float scaleX, float scaleY )
|
|||||||
Text::~Text( )
|
Text::~Text( )
|
||||||
{
|
{
|
||||||
freeGraphicsMemory( );
|
freeGraphicsMemory( );
|
||||||
|
textData_.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Text::freeGraphicsMemory( )
|
void Text::freeGraphicsMemory( )
|
||||||
{
|
{
|
||||||
Component::freeGraphicsMemory( );
|
Component::freeGraphicsMemory( );
|
||||||
|
textData_.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Text::allocateGraphicsMemory( )
|
void Text::allocateGraphicsMemory( )
|
||||||
|
|||||||
@ -806,7 +806,6 @@ bool Page::popCollection()
|
|||||||
|
|
||||||
void Page::enterMenu()
|
void Page::enterMenu()
|
||||||
{
|
{
|
||||||
|
|
||||||
for(MenuVector_T::iterator it = menus_.begin(); it != menus_.end(); it++)
|
for(MenuVector_T::iterator it = menus_.begin(); it != menus_.end(); it++)
|
||||||
{
|
{
|
||||||
for(std::vector<ScrollingList *>::iterator it2 = menus_[std::distance(menus_.begin(), it)].begin(); it2 != menus_[std::distance(menus_.begin(), it)].end(); it2++)
|
for(std::vector<ScrollingList *>::iterator it2 = menus_[std::distance(menus_.begin(), it)].begin(); it2 != menus_[std::distance(menus_.begin(), it)].end(); it2++)
|
||||||
|
|||||||
@ -313,118 +313,6 @@ bool RetroFE::deInitialize( )
|
|||||||
return retVal;
|
return retVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Print State
|
|
||||||
void RetroFE::printState(RETROFE_STATE state){
|
|
||||||
switch(state){
|
|
||||||
case RETROFE_IDLE:
|
|
||||||
printf("RETROFE_IDLE");
|
|
||||||
break;
|
|
||||||
case RETROFE_LOAD_ART:
|
|
||||||
printf("RETROFE_LOAD_ART");
|
|
||||||
break;
|
|
||||||
case RETROFE_ENTER:
|
|
||||||
printf("RETROFE_ENTER");
|
|
||||||
break;
|
|
||||||
case RETROFE_SPLASH_EXIT:
|
|
||||||
printf("RETROFE_SPLASH_EXIT");
|
|
||||||
break;
|
|
||||||
case RETROFE_PLAYLIST_REQUEST:
|
|
||||||
printf("RETROFE_PLAYLIST_REQUEST");
|
|
||||||
break;
|
|
||||||
case RETROFE_PLAYLIST_EXIT:
|
|
||||||
printf("RETROFE_PLAYLIST_EXIT");
|
|
||||||
break;
|
|
||||||
case RETROFE_PLAYLIST_LOAD_ART:
|
|
||||||
printf("RETROFE_PLAYLIST_LOAD_ART");
|
|
||||||
break;
|
|
||||||
case RETROFE_PLAYLIST_ENTER:
|
|
||||||
printf("RETROFE_PLAYLIST_ENTER");
|
|
||||||
break;
|
|
||||||
case RETROFE_MENUJUMP_REQUEST:
|
|
||||||
printf("RETROFE_MENUJUMP_REQUEST");
|
|
||||||
break;
|
|
||||||
case RETROFE_MENUJUMP_EXIT:
|
|
||||||
printf("RETROFE_MENUJUMP_EXIT");
|
|
||||||
break;
|
|
||||||
case RETROFE_MENUJUMP_LOAD_ART:
|
|
||||||
printf("RETROFE_MENUJUMP_LOAD_ART");
|
|
||||||
break;
|
|
||||||
case RETROFE_MENUJUMP_ENTER:
|
|
||||||
printf("RETROFE_MENUJUMP_ENTER");
|
|
||||||
break;
|
|
||||||
case RETROFE_HIGHLIGHT_REQUEST:
|
|
||||||
printf("RETROFE_HIGHLIGHT_REQUEST");
|
|
||||||
break;
|
|
||||||
case RETROFE_HIGHLIGHT_EXIT:
|
|
||||||
printf("RETROFE_HIGHLIGHT_EXIT");
|
|
||||||
break;
|
|
||||||
case RETROFE_HIGHLIGHT_LOAD_ART:
|
|
||||||
printf("RETROFE_HIGHLIGHT_LOAD_ART");
|
|
||||||
break;
|
|
||||||
case RETROFE_HIGHLIGHT_ENTER:
|
|
||||||
printf("RETROFE_HIGHLIGHT_ENTER");
|
|
||||||
break;
|
|
||||||
case RETROFE_NEXT_PAGE_REQUEST:
|
|
||||||
printf("RETROFE_NEXT_PAGE_REQUEST");
|
|
||||||
break;
|
|
||||||
case RETROFE_NEXT_PAGE_MENU_EXIT:
|
|
||||||
printf("RETROFE_NEXT_PAGE_MENU_EXIT");
|
|
||||||
break;
|
|
||||||
case RETROFE_NEXT_PAGE_MENU_LOAD_ART:
|
|
||||||
printf("RETROFE_NEXT_PAGE_MENU_LOAD_ART");
|
|
||||||
break;
|
|
||||||
case RETROFE_NEXT_PAGE_MENU_ENTER:
|
|
||||||
printf("RETROFE_NEXT_PAGE_MENU_ENTER");
|
|
||||||
break;
|
|
||||||
case RETROFE_HANDLE_MENUENTRY:
|
|
||||||
printf("RETROFE_HANDLE_MENUENTRY");
|
|
||||||
break;
|
|
||||||
case RETROFE_LAUNCH_ENTER:
|
|
||||||
printf("RETROFE_LAUNCH_ENTER");
|
|
||||||
break;
|
|
||||||
case RETROFE_LAUNCH_REQUEST:
|
|
||||||
printf("RETROFE_LAUNCH_REQUEST");
|
|
||||||
break;
|
|
||||||
case RETROFE_LAUNCH_EXIT:
|
|
||||||
printf("RETROFE_LAUNCH_EXIT");
|
|
||||||
break;
|
|
||||||
case RETROFE_BACK_REQUEST:
|
|
||||||
printf("RETROFE_BACK_REQUEST");
|
|
||||||
break;
|
|
||||||
case RETROFE_BACK_MENU_EXIT:
|
|
||||||
printf("RETROFE_BACK_MENU_EXIT");
|
|
||||||
break;
|
|
||||||
case RETROFE_BACK_MENU_LOAD_ART:
|
|
||||||
printf("RETROFE_BACK_MENU_LOAD_ART");
|
|
||||||
break;
|
|
||||||
case RETROFE_BACK_MENU_ENTER:
|
|
||||||
printf("RETROFE_BACK_MENU_ENTER");
|
|
||||||
break;
|
|
||||||
case RETROFE_MENUMODE_START_REQUEST:
|
|
||||||
printf("RETROFE_MENUMODE_START_REQUEST");
|
|
||||||
break;
|
|
||||||
case RETROFE_MENUMODE_START_LOAD_ART:
|
|
||||||
printf("RETROFE_MENUMODE_START_LOAD_ART");
|
|
||||||
break;
|
|
||||||
case RETROFE_MENUMODE_START_ENTER:
|
|
||||||
printf("RETROFE_MENUMODE_START_ENTER");
|
|
||||||
break;
|
|
||||||
case RETROFE_NEW:
|
|
||||||
printf("RETROFE_NEW");
|
|
||||||
break;
|
|
||||||
case RETROFE_QUIT_REQUEST:
|
|
||||||
printf("RETROFE_QUIT_REQUEST");
|
|
||||||
break;
|
|
||||||
case RETROFE_QUIT:
|
|
||||||
printf("RETROFE_QUIT");
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
printf("STATE UNDEFINED:%d", state);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
printf("\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Run RetroFE
|
// Run RetroFE
|
||||||
void RetroFE::run( )
|
void RetroFE::run( )
|
||||||
@ -479,6 +367,7 @@ void RetroFE::run( )
|
|||||||
bool running = true;
|
bool running = true;
|
||||||
bool initInBackground = false;
|
bool initInBackground = false;
|
||||||
config_.getProperty( "initInBackground", initInBackground );
|
config_.getProperty( "initInBackground", initInBackground );
|
||||||
|
|
||||||
RETROFE_STATE state = RETROFE_NEW;
|
RETROFE_STATE state = RETROFE_NEW;
|
||||||
|
|
||||||
config_.getProperty( "attractModeTime", attractModeTime );
|
config_.getProperty( "attractModeTime", attractModeTime );
|
||||||
@ -526,9 +415,19 @@ void RetroFE::run( )
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Uncomment to print State for debug purposes
|
// Print state for debug purposes
|
||||||
//printState(state);
|
#if 0
|
||||||
|
static RETROFE_STATE prev_state = state;
|
||||||
|
#undef X
|
||||||
|
#define X(a, b) b,
|
||||||
|
static const char *retrofe_states_str[] = {RETROFE_STATES};
|
||||||
|
if(prev_state != state){
|
||||||
|
printf("RetroFE new state: %s\n", retrofe_states_str[state]);
|
||||||
|
prev_state = state;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Main state machine
|
||||||
switch(state)
|
switch(state)
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -694,6 +593,7 @@ void RetroFE::run( )
|
|||||||
{
|
{
|
||||||
currentPage_->reallocateMenuSpritePoints( );
|
currentPage_->reallocateMenuSpritePoints( );
|
||||||
currentPage_->menuJumpEnter( );
|
currentPage_->menuJumpEnter( );
|
||||||
|
forceRender(true);
|
||||||
state = RETROFE_MENUJUMP_ENTER;
|
state = RETROFE_MENUJUMP_ENTER;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -805,7 +705,9 @@ void RetroFE::run( )
|
|||||||
}
|
}
|
||||||
|
|
||||||
currentPage_->onNewItemSelected( );
|
currentPage_->onNewItemSelected( );
|
||||||
|
printf("\nbefore currentPage_->reallocateMenuSpritePoints()\n");
|
||||||
currentPage_->reallocateMenuSpritePoints( );
|
currentPage_->reallocateMenuSpritePoints( );
|
||||||
|
printf("after currentPage_->reallocateMenuSpritePoints()\n\n");
|
||||||
|
|
||||||
state = RETROFE_NEXT_PAGE_MENU_LOAD_ART;
|
state = RETROFE_NEXT_PAGE_MENU_LOAD_ART;
|
||||||
|
|
||||||
@ -1061,6 +963,14 @@ void RetroFE::run( )
|
|||||||
running = false;
|
running = false;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
// Unknown state
|
||||||
|
default:
|
||||||
|
std::stringstream ss;
|
||||||
|
ss << "Wrong state: " << state;
|
||||||
|
Logger::write( Logger::ZONE_ERROR, "RetroFE", "Wrong state: " + ss.str() );
|
||||||
|
state = RETROFE_IDLE;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle screen updates and attract mode
|
// Handle screen updates and attract mode
|
||||||
|
|||||||
@ -31,6 +31,44 @@
|
|||||||
#include <map>
|
#include <map>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
/* State machine states */
|
||||||
|
#define RETROFE_STATES \
|
||||||
|
X(RETROFE_IDLE, "RETROFE_IDLE") \
|
||||||
|
X(RETROFE_LOAD_ART, "RETROFE_LOAD_ART") \
|
||||||
|
X(RETROFE_ENTER, "RETROFE_ENTER") \
|
||||||
|
X(RETROFE_SPLASH_EXIT, "RETROFE_SPLASH_EXIT") \
|
||||||
|
X(RETROFE_PLAYLIST_REQUEST, "RETROFE_PLAYLIST_REQUEST") \
|
||||||
|
X(RETROFE_PLAYLIST_EXIT, "RETROFE_PLAYLIST_EXIT") \
|
||||||
|
X(RETROFE_PLAYLIST_LOAD_ART, "RETROFE_PLAYLIST_LOAD_ART") \
|
||||||
|
X(RETROFE_PLAYLIST_ENTER, "RETROFE_PLAYLIST_ENTER") \
|
||||||
|
X(RETROFE_MENUJUMP_REQUEST, "RETROFE_MENUJUMP_REQUEST") \
|
||||||
|
X(RETROFE_MENUJUMP_EXIT, "RETROFE_MENUJUMP_EXIT") \
|
||||||
|
X(RETROFE_MENUJUMP_LOAD_ART, "RETROFE_MENUJUMP_LOAD_ART") \
|
||||||
|
X(RETROFE_MENUJUMP_ENTER, "RETROFE_MENUJUMP_ENTER") \
|
||||||
|
X(RETROFE_HIGHLIGHT_REQUEST, "RETROFE_HIGHLIGHT_REQUEST") \
|
||||||
|
X(RETROFE_HIGHLIGHT_EXIT, "RETROFE_HIGHLIGHT_EXIT") \
|
||||||
|
X(RETROFE_HIGHLIGHT_LOAD_ART, "RETROFE_HIGHLIGHT_LOAD_ART") \
|
||||||
|
X(RETROFE_HIGHLIGHT_ENTER, "RETROFE_HIGHLIGHT_ENTER") \
|
||||||
|
X(RETROFE_NEXT_PAGE_REQUEST, "RETROFE_NEXT_PAGE_REQUEST") \
|
||||||
|
X(RETROFE_NEXT_PAGE_MENU_EXIT, "RETROFE_NEXT_PAGE_MENU_EXIT") \
|
||||||
|
X(RETROFE_NEXT_PAGE_MENU_LOAD_ART, "RETROFE_NEXT_PAGE_MENU_LOAD_ART") \
|
||||||
|
X(RETROFE_NEXT_PAGE_MENU_ENTER, "RETROFE_NEXT_PAGE_MENU_ENTER") \
|
||||||
|
X(RETROFE_HANDLE_MENUENTRY, "RETROFE_HANDLE_MENUENTRY") \
|
||||||
|
X(RETROFE_LAUNCH_ENTER, "RETROFE_LAUNCH_ENTER") \
|
||||||
|
X(RETROFE_LAUNCH_REQUEST, "RETROFE_LAUNCH_REQUEST") \
|
||||||
|
X(RETROFE_LAUNCH_EXIT, "RETROFE_LAUNCH_EXIT") \
|
||||||
|
X(RETROFE_BACK_REQUEST, "RETROFE_BACK_REQUEST") \
|
||||||
|
X(RETROFE_BACK_MENU_EXIT, "RETROFE_BACK_MENU_EXIT") \
|
||||||
|
X(RETROFE_BACK_MENU_LOAD_ART, "RETROFE_BACK_MENU_LOAD_ART") \
|
||||||
|
X(RETROFE_BACK_MENU_ENTER, "RETROFE_BACK_MENU_ENTER") \
|
||||||
|
X(RETROFE_MENUMODE_START_REQUEST, "RETROFE_MENUMODE_START_REQUEST") \
|
||||||
|
X(RETROFE_MENUMODE_START_LOAD_ART, "RETROFE_MENUMODE_START_LOAD_ART") \
|
||||||
|
X(RETROFE_MENUMODE_START_ENTER, "RETROFE_MENUMODE_START_ENTER") \
|
||||||
|
X(RETROFE_NEW, "RETROFE_NEW") \
|
||||||
|
X(RETROFE_QUIT_REQUEST, "RETROFE_QUIT_REQUEST") \
|
||||||
|
X(RETROFE_QUIT, "RETROFE_QUIT") \
|
||||||
|
X(NB_RETROFE_STATES, "")
|
||||||
|
|
||||||
|
|
||||||
class CollectionInfo;
|
class CollectionInfo;
|
||||||
class Configuration;
|
class Configuration;
|
||||||
@ -57,43 +95,9 @@ private:
|
|||||||
SDL_Thread *initializeThread;
|
SDL_Thread *initializeThread;
|
||||||
static int initialize( void *context );
|
static int initialize( void *context );
|
||||||
|
|
||||||
enum RETROFE_STATE
|
#undef X
|
||||||
{
|
#define X(a, b) a,
|
||||||
RETROFE_IDLE,
|
enum RETROFE_STATE {RETROFE_STATES};
|
||||||
RETROFE_LOAD_ART,
|
|
||||||
RETROFE_ENTER,
|
|
||||||
RETROFE_SPLASH_EXIT,
|
|
||||||
RETROFE_PLAYLIST_REQUEST,
|
|
||||||
RETROFE_PLAYLIST_EXIT,
|
|
||||||
RETROFE_PLAYLIST_LOAD_ART,
|
|
||||||
RETROFE_PLAYLIST_ENTER,
|
|
||||||
RETROFE_MENUJUMP_REQUEST,
|
|
||||||
RETROFE_MENUJUMP_EXIT,
|
|
||||||
RETROFE_MENUJUMP_LOAD_ART,
|
|
||||||
RETROFE_MENUJUMP_ENTER,
|
|
||||||
RETROFE_HIGHLIGHT_REQUEST,
|
|
||||||
RETROFE_HIGHLIGHT_EXIT,
|
|
||||||
RETROFE_HIGHLIGHT_LOAD_ART,
|
|
||||||
RETROFE_HIGHLIGHT_ENTER,
|
|
||||||
RETROFE_NEXT_PAGE_REQUEST,
|
|
||||||
RETROFE_NEXT_PAGE_MENU_EXIT,
|
|
||||||
RETROFE_NEXT_PAGE_MENU_LOAD_ART,
|
|
||||||
RETROFE_NEXT_PAGE_MENU_ENTER,
|
|
||||||
RETROFE_HANDLE_MENUENTRY,
|
|
||||||
RETROFE_LAUNCH_ENTER,
|
|
||||||
RETROFE_LAUNCH_REQUEST,
|
|
||||||
RETROFE_LAUNCH_EXIT,
|
|
||||||
RETROFE_BACK_REQUEST,
|
|
||||||
RETROFE_BACK_MENU_EXIT,
|
|
||||||
RETROFE_BACK_MENU_LOAD_ART,
|
|
||||||
RETROFE_BACK_MENU_ENTER,
|
|
||||||
RETROFE_MENUMODE_START_REQUEST,
|
|
||||||
RETROFE_MENUMODE_START_LOAD_ART,
|
|
||||||
RETROFE_MENUMODE_START_ENTER,
|
|
||||||
RETROFE_NEW,
|
|
||||||
RETROFE_QUIT_REQUEST,
|
|
||||||
RETROFE_QUIT,
|
|
||||||
};
|
|
||||||
|
|
||||||
void render( );
|
void render( );
|
||||||
bool back( bool &exit );
|
bool back( bool &exit );
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user