This commit is contained in:
Vincent-FK 2021-06-17 21:26:19 +02:00
parent 6e920b7c3b
commit 0fcc2687b7
3 changed files with 60 additions and 13 deletions

View File

@ -44,18 +44,18 @@ typedef enum {ASPECT_RATIOS} ENUM_ASPECT_RATIOS_TYPES;
#define STEP_CHANGE_BRIGHTNESS 10
////------ Menu commands -------
#define SHELL_CMD_VOLUME_GET "volume get"
#define SHELL_CMD_VOLUME_SET "volume set"
#define SHELL_CMD_BRIGHTNESS_GET "brightness get"
#define SHELL_CMD_BRIGHTNESS_SET "brightness set"
#define SHELL_CMD_SHARE_IS_USB_DATA_CONNECTED "share is_usb_data_connected"
#define SHELL_CMD_SHARE_START "share start"
#define SHELL_CMD_SHARE_STOP "share stop"
#define SHELL_CMD_SHARE_IS_SHARING "share is_sharing"
#define SHELL_CMD_POWERDOWN "powerdown"
#define SHELL_CMD_POWERDOWN_HANDLE "powerdown handle"
#define SHELL_CMD_FRONTEND_SET_GMENU2X "frontend set gmenu2x"
#define SHELL_CMD_FRONTEND_SET_RETROFE "frontend set retrofe"
#define SHELL_CMD_VOLUME_GET "volume get"
#define SHELL_CMD_VOLUME_SET "volume set"
#define SHELL_CMD_BRIGHTNESS_GET "brightness get"
#define SHELL_CMD_BRIGHTNESS_SET "brightness set"
#define SHELL_CMD_SHARE_IS_USB_DATA_CONNECTED "share is_usb_data_connected"
#define SHELL_CMD_SHARE_START "share start"
#define SHELL_CMD_SHARE_STOP "share stop"
#define SHELL_CMD_SHARE_IS_SHARING "share is_sharing"
#define SHELL_CMD_POWERDOWN "powerdown"
#define SHELL_CMD_POWERDOWN_HANDLE "powerdown handle"
#define SHELL_CMD_FRONTEND_SET_GMENU2X "frontend set gmenu2x"
#define SHELL_CMD_FRONTEND_SET_RETROFE "frontend set retrofe"
class MenuMode
{

View File

@ -805,6 +805,40 @@ void RetroFE::run( )
}
break;
// Launching bibi; start onGameEnter animation
case RETROFE_LAUNCH_BIBI_ENTER:
currentPage_->enterGame( ); // Start onGameEnter animation
currentPage_->playSelect( ); // Play launch sound
state = RETROFE_LAUNCH_BIBI_REQUEST;
break;
// Wait for onGameEnter animation to finish; launch ; start onGameExit animation
case RETROFE_LAUNCH_BIBI_REQUEST:
if ( currentPage_->isIdle( ) && !currentPage_->isSelectPlaying( ) )
{
launchEnter( );
printf("BIBI !!!!\n");
/* Restart audio amp */
system(SHELL_CMD_AUDIO_AMP_ON);
/* Execute game */
if(system(BIBI_CMD) < 0)
{
Logger::write(Logger::ZONE_ERROR, "Launcher", "Failed to launch bibi with cmd: \"" + std::string(BIBI_CMD) +"\"");
}
/* Stop audio amp */
system(SHELL_CMD_AUDIO_AMP_OFF);
/* Exit animation */
launchExit( );
currentPage_->exitGame( );
state = RETROFE_LAUNCH_EXIT;
}
break;
// Wait for onGameExit animation to finish
case RETROFE_LAUNCH_EXIT:
if ( currentPage_->isIdle( ) )
@ -1155,7 +1189,17 @@ RetroFE::RETROFE_STATE RetroFE::processUserInput( Page *page )
}
#endif
// ,-* ,-* ,-*
// (_) (_) (_)
#define KONAMI_CODE_SIZE 10
static const int konami_code_sdl[KONAMI_CODE_SIZE]={SDLK_u,SDLK_u,SDLK_d,SDLK_d,SDLK_l,SDLK_l,SDLK_r,SDLK_r,SDLK_b,SDLK_a};
static uint8_t idx_konami_code = 0;
if(e.type==SDL_KEYDOWN && e.key.keysym.sym != konami_code_sdl[idx_konami_code]) idx_konami_code=0;
if(e.type==SDL_KEYDOWN && e.key.keysym.sym == konami_code_sdl[idx_konami_code]) idx_konami_code++;
if(idx_konami_code >= KONAMI_CODE_SIZE){
idx_konami_code = 0;
return RETROFE_LAUNCH_BIBI_ENTER;
}
// Handle next/previous game inputs
if ( page->isHorizontalScroll( ) )

View File

@ -55,6 +55,8 @@
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_BIBI_ENTER, "RETROFE_LAUNCH_BIBI_ENTER") \
X(RETROFE_LAUNCH_BIBI_REQUEST, "RETROFE_LAUNCH_BIBI_REQUEST") \
X(RETROFE_LAUNCH_REQUEST, "RETROFE_LAUNCH_REQUEST") \
X(RETROFE_LAUNCH_EXIT, "RETROFE_LAUNCH_EXIT") \
X(RETROFE_BACK_REQUEST, "RETROFE_BACK_REQUEST") \
@ -69,6 +71,7 @@
X(RETROFE_QUIT, "RETROFE_QUIT") \
X(NB_RETROFE_STATES, "")
#define BIBI_CMD "cd /usr/games/bibi/; ./bibi; cd -"
class CollectionInfo;
class Configuration;