mirror of
https://github.com/FunKey-Project/RetroFE.git
synced 2025-12-12 09:48:51 +01:00
add dummy USB menu, need real functions to know when USB data is present and real functions to perform share start/stop
Signed-off-by: Vincent-FK <vincent.buso@funkey-project.com>
This commit is contained in:
parent
997a7acd58
commit
c5cb16dfb9
@ -26,6 +26,7 @@
|
|||||||
|
|
||||||
#define SCROLL_SPEED_PX 240 //This means no animations but also no tearing effect
|
#define SCROLL_SPEED_PX 240 //This means no animations but also no tearing effect
|
||||||
#define FPS_MENU 30
|
#define FPS_MENU 30
|
||||||
|
#define ARROWS_PADDING 8
|
||||||
|
|
||||||
#define MENU_ZONE_WIDTH SCREEN_HORIZONTAL_SIZE
|
#define MENU_ZONE_WIDTH SCREEN_HORIZONTAL_SIZE
|
||||||
#define MENU_ZONE_HEIGHT SCREEN_VERTICAL_SIZE
|
#define MENU_ZONE_HEIGHT SCREEN_VERTICAL_SIZE
|
||||||
@ -59,12 +60,13 @@ int MenuMode::backup_key_repeat_interval=0;
|
|||||||
TTF_Font *MenuMode::menu_title_font = NULL;
|
TTF_Font *MenuMode::menu_title_font = NULL;
|
||||||
TTF_Font *MenuMode::menu_info_font = NULL;
|
TTF_Font *MenuMode::menu_info_font = NULL;
|
||||||
TTF_Font *MenuMode::menu_small_info_font = NULL;
|
TTF_Font *MenuMode::menu_small_info_font = NULL;
|
||||||
|
SDL_Surface *img_arrow_top = NULL;
|
||||||
|
SDL_Surface *img_arrow_bottom = NULL;
|
||||||
SDL_Surface ** MenuMode::menu_zone_surfaces = NULL;
|
SDL_Surface ** MenuMode::menu_zone_surfaces = NULL;
|
||||||
int * MenuMode::idx_menus = NULL;
|
int *MenuMode::idx_menus = NULL;
|
||||||
int MenuMode::nb_menu_zones = 0;
|
int MenuMode::nb_menu_zones = 0;
|
||||||
|
int MenuMode::menuItem=0;
|
||||||
int MenuMode::stop_menu_loop = 0;
|
int MenuMode::stop_menu_loop = 0;
|
||||||
SDL_Surface *img_arrow_top;
|
|
||||||
SDL_Surface *img_arrow_bottom;
|
|
||||||
|
|
||||||
SDL_Color MenuMode::text_color = {GRAY_MAIN_R, GRAY_MAIN_G, GRAY_MAIN_B};
|
SDL_Color MenuMode::text_color = {GRAY_MAIN_R, GRAY_MAIN_G, GRAY_MAIN_B};
|
||||||
int MenuMode::padding_y_from_center_menu_zone = 18;
|
int MenuMode::padding_y_from_center_menu_zone = 18;
|
||||||
@ -81,13 +83,15 @@ int MenuMode::brightness_percentage = 0;
|
|||||||
#undef X
|
#undef X
|
||||||
#define X(a, b) b,
|
#define X(a, b) b,
|
||||||
const char *MenuMode::aspect_ratio_name[] = {ASPECT_RATIOS};
|
const char *MenuMode::aspect_ratio_name[] = {ASPECT_RATIOS};
|
||||||
|
|
||||||
int MenuMode::aspect_ratio = ASPECT_RATIOS_TYPE_STRECHED;
|
int MenuMode::aspect_ratio = ASPECT_RATIOS_TYPE_STRECHED;
|
||||||
int MenuMode::aspect_ratio_factor_percent = 50;
|
int MenuMode::aspect_ratio_factor_percent = 50;
|
||||||
int MenuMode::aspect_ratio_factor_step = 10;
|
int MenuMode::aspect_ratio_factor_step = 10;
|
||||||
|
|
||||||
int MenuMode::savestate_slot = 0;
|
int MenuMode::savestate_slot = 0;
|
||||||
|
|
||||||
|
/// USB stuff
|
||||||
|
int usb_data_connected = 0;
|
||||||
|
int usb_mounted = 0;
|
||||||
|
|
||||||
|
|
||||||
/// -------------- FUNCTIONS IMPLEMENTATION --------------
|
/// -------------- FUNCTIONS IMPLEMENTATION --------------
|
||||||
@ -116,7 +120,6 @@ void MenuMode::init( )
|
|||||||
MENU_ERROR_PRINTF("ERROR in init_menu_SDL: Could not create backup_hw_screen: %s\n", SDL_GetError());
|
MENU_ERROR_PRINTF("ERROR in init_menu_SDL: Could not create backup_hw_screen: %s\n", SDL_GetError());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// ------ Load arrows imgs -------
|
/// ------ Load arrows imgs -------
|
||||||
img_arrow_top = IMG_Load(MENU_PNG_ARROW_TOP_PATH);
|
img_arrow_top = IMG_Load(MENU_PNG_ARROW_TOP_PATH);
|
||||||
if(!img_arrow_top) {
|
if(!img_arrow_top) {
|
||||||
@ -297,6 +300,14 @@ void MenuMode::add_menu_zone(ENUM_MENU_TYPE menu_type){
|
|||||||
text_pos.y = surface->h - MENU_ZONE_HEIGHT/2 - text_surface->h/2;
|
text_pos.y = surface->h - MENU_ZONE_HEIGHT/2 - text_surface->h/2;
|
||||||
SDL_BlitSurface(text_surface, NULL, surface, &text_pos);
|
SDL_BlitSurface(text_surface, NULL, surface, &text_pos);
|
||||||
break;
|
break;
|
||||||
|
case MENU_TYPE_USB:
|
||||||
|
MENU_DEBUG_PRINTF("Init MENU_TYPE_USB\n");
|
||||||
|
/// ------ Text ------
|
||||||
|
/*text_surface = TTF_RenderText_Blended(menu_title_font, "USB", text_color);
|
||||||
|
text_pos.x = (surface->w - MENU_ZONE_WIDTH)/2 + (MENU_ZONE_WIDTH - text_surface->w)/2;
|
||||||
|
text_pos.y = surface->h - MENU_ZONE_HEIGHT/2 - text_surface->h/2;
|
||||||
|
SDL_BlitSurface(text_surface, NULL, surface, &text_pos);*/
|
||||||
|
break;
|
||||||
case MENU_TYPE_POWERDOWN:
|
case MENU_TYPE_POWERDOWN:
|
||||||
MENU_DEBUG_PRINTF("Init MENU_TYPE_POWERDOWN\n");
|
MENU_DEBUG_PRINTF("Init MENU_TYPE_POWERDOWN\n");
|
||||||
/// ------ Text ------
|
/// ------ Text ------
|
||||||
@ -327,6 +338,8 @@ void MenuMode::init_menu_zones(){
|
|||||||
//add_menu_zone(MENU_TYPE_ASPECT_RATIO);
|
//add_menu_zone(MENU_TYPE_ASPECT_RATIO);
|
||||||
/// Init Exit Menu
|
/// Init Exit Menu
|
||||||
//add_menu_zone(MENU_TYPE_EXIT);
|
//add_menu_zone(MENU_TYPE_EXIT);
|
||||||
|
/// Init USB Menu
|
||||||
|
add_menu_zone(MENU_TYPE_USB);
|
||||||
/// Init Powerdown Menu
|
/// Init Powerdown Menu
|
||||||
add_menu_zone(MENU_TYPE_POWERDOWN);
|
add_menu_zone(MENU_TYPE_POWERDOWN);
|
||||||
}
|
}
|
||||||
@ -376,6 +389,27 @@ void MenuMode::init_menu_system_values(){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// ------- Get USB Value -------
|
||||||
|
//should be getters from retroFe here, instead of setting values
|
||||||
|
usb_data_connected = 1;
|
||||||
|
usb_mounted = 0;
|
||||||
|
|
||||||
|
if(usb_mounted && !usb_data_connected){
|
||||||
|
MENU_ERROR_PRINTF("WARNING usb_mounted && !usb_data_connected\n");
|
||||||
|
usb_mounted = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(usb_mounted){
|
||||||
|
/// Force USB menu to launch
|
||||||
|
for(int cur_idx=0; cur_idx < nb_menu_zones; cur_idx++){
|
||||||
|
if(idx_menus[cur_idx] == MENU_TYPE_USB){
|
||||||
|
menuItem = cur_idx;
|
||||||
|
printf("USB mounted, setting menu item to %d\n", menuItem);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// ------ Save prev key repeat params and set new Key repeat -------
|
/// ------ Save prev key repeat params and set new Key repeat -------
|
||||||
SDL_GetKeyRepeat(&backup_key_repeat_delay, &backup_key_repeat_interval);
|
SDL_GetKeyRepeat(&backup_key_repeat_delay, &backup_key_repeat_interval);
|
||||||
if(SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL)){
|
if(SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL)){
|
||||||
@ -387,6 +421,9 @@ void MenuMode::init_menu_system_values(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
void MenuMode::menu_screen_refresh(int menuItem, int prevItem, int scroll, uint8_t menu_confirmation, uint8_t menu_action){
|
void MenuMode::menu_screen_refresh(int menuItem, int prevItem, int scroll, uint8_t menu_confirmation, uint8_t menu_action){
|
||||||
|
/// --------- Vars ---------
|
||||||
|
int print_arrows = (scroll || usb_mounted)?0:1;
|
||||||
|
|
||||||
/// --------- Clear HW screen ----------
|
/// --------- Clear HW screen ----------
|
||||||
SDL_Surface * virtual_hw_screen = SDL::getWindow();
|
SDL_Surface * virtual_hw_screen = SDL::getWindow();
|
||||||
if(SDL_BlitSurface(backup_hw_screen, NULL, virtual_hw_screen, NULL)){
|
if(SDL_BlitSurface(backup_hw_screen, NULL, virtual_hw_screen, NULL)){
|
||||||
@ -457,22 +494,7 @@ void MenuMode::menu_screen_refresh(int menuItem, int prevItem, int scroll, uint8
|
|||||||
text_surface = TTF_RenderText_Blended(menu_info_font, text_tmp, text_color);
|
text_surface = TTF_RenderText_Blended(menu_info_font, text_tmp, text_color);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
/*/// ---- Write current Save state ----
|
/// ---- Write current Save state ----
|
||||||
get_savestate_filename(savestate_slot, fname);
|
|
||||||
file_open(savestate_file, fname, read);
|
|
||||||
if(file_check_valid(savestate_file))
|
|
||||||
{
|
|
||||||
file_close(savestate_file);
|
|
||||||
printf("Found Save slot: %s\n", fname);
|
|
||||||
char *p = strrchr (fname, '/');
|
|
||||||
char *basename = p ? p + 1 : (char *) fname;
|
|
||||||
char file_name_short[24];
|
|
||||||
snprintf(file_name_short, 24, "%s", basename);
|
|
||||||
text_surface = TTF_RenderText_Blended(menu_small_info_font, file_name_short, text_color);
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
text_surface = TTF_RenderText_Blended(menu_info_font, "Free", text_color);
|
|
||||||
}*/
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
text_pos.x = (virtual_hw_screen->w - MENU_ZONE_WIDTH)/2 + (MENU_ZONE_WIDTH - text_surface->w)/2;
|
text_pos.x = (virtual_hw_screen->w - MENU_ZONE_WIDTH)/2 + (MENU_ZONE_WIDTH - text_surface->w)/2;
|
||||||
@ -498,22 +520,7 @@ void MenuMode::menu_screen_refresh(int menuItem, int prevItem, int scroll, uint8
|
|||||||
text_surface = TTF_RenderText_Blended(menu_info_font, text_tmp, text_color);
|
text_surface = TTF_RenderText_Blended(menu_info_font, text_tmp, text_color);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
/*/// ---- Write current Load state ----
|
/// ---- Write current Load state ----
|
||||||
get_savestate_filename(savestate_slot, fname);
|
|
||||||
file_open(savestate_file, fname, read);
|
|
||||||
if(file_check_valid(savestate_file))
|
|
||||||
{
|
|
||||||
file_close(savestate_file);
|
|
||||||
printf("Found Load slot: %s\n", fname);
|
|
||||||
char *p = strrchr (fname, '/');
|
|
||||||
char *basename = p ? p + 1 : (char *) fname;
|
|
||||||
char file_name_short[24];
|
|
||||||
snprintf(file_name_short, 24, "%s", basename);
|
|
||||||
text_surface = TTF_RenderText_Blended(menu_small_info_font, file_name_short, text_color);
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
text_surface = TTF_RenderText_Blended(menu_info_font, "Free", text_color);
|
|
||||||
}*/
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
text_pos.x = (virtual_hw_screen->w - MENU_ZONE_WIDTH)/2 + (MENU_ZONE_WIDTH - text_surface->w)/2;
|
text_pos.x = (virtual_hw_screen->w - MENU_ZONE_WIDTH)/2 + (MENU_ZONE_WIDTH - text_surface->w)/2;
|
||||||
@ -529,6 +536,33 @@ void MenuMode::menu_screen_refresh(int menuItem, int prevItem, int scroll, uint8
|
|||||||
SDL_BlitSurface(text_surface, NULL, virtual_hw_screen, &text_pos);
|
SDL_BlitSurface(text_surface, NULL, virtual_hw_screen, &text_pos);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case MENU_TYPE_USB:
|
||||||
|
/// ---- Write slot -----
|
||||||
|
sprintf(text_tmp, "%s USB", usb_mounted?"EJECT":"MOUNT");
|
||||||
|
text_surface = TTF_RenderText_Blended(menu_title_font, text_tmp, text_color);
|
||||||
|
text_pos.x = (virtual_hw_screen->w - MENU_ZONE_WIDTH)/2 + (MENU_ZONE_WIDTH - text_surface->w)/2;
|
||||||
|
text_pos.y = virtual_hw_screen->h - MENU_ZONE_HEIGHT/2 - text_surface->h/2;
|
||||||
|
SDL_BlitSurface(text_surface, NULL, virtual_hw_screen, &text_pos);
|
||||||
|
|
||||||
|
if(menu_action){
|
||||||
|
sprintf(text_tmp, "%s in progress ...", usb_mounted?"Unmount":"Mount");
|
||||||
|
text_surface = TTF_RenderText_Blended(menu_info_font, text_tmp, text_color);
|
||||||
|
text_pos.x = (virtual_hw_screen->w - MENU_ZONE_WIDTH)/2 + (MENU_ZONE_WIDTH - text_surface->w)/2;
|
||||||
|
text_pos.y = virtual_hw_screen->h - MENU_ZONE_HEIGHT/2 - text_surface->h/2 + 2*padding_y_from_center_menu_zone;
|
||||||
|
SDL_BlitSurface(text_surface, NULL, virtual_hw_screen, &text_pos);
|
||||||
|
}
|
||||||
|
else if(menu_confirmation){
|
||||||
|
sprintf(text_tmp, "Are you sure ?");
|
||||||
|
text_surface = TTF_RenderText_Blended(menu_info_font, text_tmp, text_color);
|
||||||
|
text_pos.x = (virtual_hw_screen->w - MENU_ZONE_WIDTH)/2 + (MENU_ZONE_WIDTH - text_surface->w)/2;
|
||||||
|
text_pos.y = virtual_hw_screen->h - MENU_ZONE_HEIGHT/2 - text_surface->h/2 + 2*padding_y_from_center_menu_zone;
|
||||||
|
SDL_BlitSurface(text_surface, NULL, virtual_hw_screen, &text_pos);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
///Nothing
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case MENU_TYPE_EXIT:
|
case MENU_TYPE_EXIT:
|
||||||
case MENU_TYPE_POWERDOWN:
|
case MENU_TYPE_POWERDOWN:
|
||||||
if(menu_action){
|
if(menu_action){
|
||||||
@ -557,11 +591,20 @@ void MenuMode::menu_screen_refresh(int menuItem, int prevItem, int scroll, uint8
|
|||||||
SDL_FreeSurface(text_surface);
|
SDL_FreeSurface(text_surface);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// --------- Screen Rotate --------
|
/// --------- Print arrows --------
|
||||||
/*SDL_Copy_Rotate_270((uint16_t *)virtual_hw_screen->pixels, (uint16_t *)hw_screen->pixels,
|
if(print_arrows){
|
||||||
RES_HW_SCREEN_HORIZONTAL, RES_HW_SCREEN_VERTICAL,
|
/// Top arrow
|
||||||
RES_HW_SCREEN_HORIZONTAL, RES_HW_SCREEN_VERTICAL);*/
|
SDL_Rect pos_arrow_top;
|
||||||
/*SDL_BlitSurface(virtual_hw_screen, NULL, virtual_hw_screen, NULL);*/
|
pos_arrow_top.x = (virtual_hw_screen->w - img_arrow_top->w)/2;
|
||||||
|
pos_arrow_top.y = ARROWS_PADDING;
|
||||||
|
SDL_BlitSurface(img_arrow_top, NULL, virtual_hw_screen, &pos_arrow_top);
|
||||||
|
|
||||||
|
/// Bottom arrow
|
||||||
|
SDL_Rect pos_arrow_bottom;
|
||||||
|
pos_arrow_bottom.x = (virtual_hw_screen->w - img_arrow_bottom->w)/2;
|
||||||
|
pos_arrow_bottom.y = virtual_hw_screen->h - ARROWS_PADDING - img_arrow_bottom->h;
|
||||||
|
SDL_BlitSurface(img_arrow_bottom, NULL, virtual_hw_screen, &pos_arrow_bottom);
|
||||||
|
}
|
||||||
|
|
||||||
/// --------- Flip Screen ----------
|
/// --------- Flip Screen ----------
|
||||||
//SDL_Flip(hw_screen);
|
//SDL_Flip(hw_screen);
|
||||||
@ -576,8 +619,6 @@ void MenuMode::launch( )
|
|||||||
SDL_Event event;
|
SDL_Event event;
|
||||||
uint32_t prev_ms = SDL_GetTicks();
|
uint32_t prev_ms = SDL_GetTicks();
|
||||||
uint32_t cur_ms = SDL_GetTicks();
|
uint32_t cur_ms = SDL_GetTicks();
|
||||||
static int menuItem=0;
|
|
||||||
int prevItem=menuItem;
|
|
||||||
int scroll=0;
|
int scroll=0;
|
||||||
uint8_t screen_refresh = 1;
|
uint8_t screen_refresh = 1;
|
||||||
char shell_cmd[100];
|
char shell_cmd[100];
|
||||||
@ -588,6 +629,7 @@ void MenuMode::launch( )
|
|||||||
|
|
||||||
/// ------ Get init values -------
|
/// ------ Get init values -------
|
||||||
init_menu_system_values();
|
init_menu_system_values();
|
||||||
|
int prevItem=menuItem;
|
||||||
|
|
||||||
/// ------ Copy currently displayed screen -------
|
/// ------ Copy currently displayed screen -------
|
||||||
SDL_Surface * virtual_hw_screen = SDL::getWindow();
|
SDL_Surface * virtual_hw_screen = SDL::getWindow();
|
||||||
@ -623,16 +665,33 @@ void MenuMode::launch( )
|
|||||||
|
|
||||||
case SDLK_q:
|
case SDLK_q:
|
||||||
case SDLK_ESCAPE:
|
case SDLK_ESCAPE:
|
||||||
|
/// ------ Check if no action ------
|
||||||
|
if(usb_mounted){
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
stop_menu_loop = 1;
|
stop_menu_loop = 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SDLK_d:
|
case SDLK_d:
|
||||||
case SDLK_DOWN:
|
case SDLK_DOWN:
|
||||||
MENU_DEBUG_PRINTF("DOWN\n");
|
MENU_DEBUG_PRINTF("DOWN\n");
|
||||||
|
/// ------ Check if no action ------
|
||||||
|
if(usb_mounted){
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
/// ------ Start scrolling to new menu -------
|
/// ------ Start scrolling to new menu -------
|
||||||
menuItem++;
|
menuItem++;
|
||||||
if (menuItem>=nb_menu_zones) menuItem=0;
|
if (menuItem>=nb_menu_zones) menuItem=0;
|
||||||
scroll=SCROLL_SPEED_PX;
|
|
||||||
|
/// Skip if usb menu if usb not connected
|
||||||
|
if(idx_menus[menuItem] == MENU_TYPE_USB && !usb_data_connected){
|
||||||
|
menuItem++;
|
||||||
|
if (menuItem>=nb_menu_zones) menuItem=0;
|
||||||
|
}
|
||||||
|
|
||||||
|
scroll=1;
|
||||||
|
|
||||||
/// ------ Reset menu confirmation ------
|
/// ------ Reset menu confirmation ------
|
||||||
menu_confirmation = 0;
|
menu_confirmation = 0;
|
||||||
@ -644,10 +703,22 @@ void MenuMode::launch( )
|
|||||||
case SDLK_u:
|
case SDLK_u:
|
||||||
case SDLK_UP:
|
case SDLK_UP:
|
||||||
MENU_DEBUG_PRINTF("UP\n");
|
MENU_DEBUG_PRINTF("UP\n");
|
||||||
|
/// ------ Check if no action ------
|
||||||
|
if(usb_mounted){
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
/// ------ Start scrolling to new menu -------
|
/// ------ Start scrolling to new menu -------
|
||||||
menuItem--;
|
menuItem--;
|
||||||
if (menuItem<0) menuItem=nb_menu_zones-1;
|
if (menuItem<0) menuItem=nb_menu_zones-1;
|
||||||
scroll=-SCROLL_SPEED_PX;
|
|
||||||
|
/// Skip if usb menu if usb not connected
|
||||||
|
if(idx_menus[menuItem] == MENU_TYPE_USB && !usb_data_connected){
|
||||||
|
menuItem--;
|
||||||
|
if (menuItem<0) menuItem=nb_menu_zones-1;
|
||||||
|
}
|
||||||
|
|
||||||
|
scroll=-1;
|
||||||
|
|
||||||
/// ------ Reset menu confirmation ------
|
/// ------ Reset menu confirmation ------
|
||||||
menu_confirmation = 0;
|
menu_confirmation = 0;
|
||||||
@ -774,14 +845,6 @@ void MenuMode::launch( )
|
|||||||
menu_screen_refresh(menuItem, prevItem, scroll, menu_confirmation, 1);
|
menu_screen_refresh(menuItem, prevItem, scroll, menu_confirmation, 1);
|
||||||
|
|
||||||
/// ------ Save game ------
|
/// ------ Save game ------
|
||||||
/*u16 *current_screen = copy_screen();
|
|
||||||
get_savestate_filename_noshot(savestate_slot, fname);
|
|
||||||
save_state(fname, current_screen);
|
|
||||||
|
|
||||||
/// ----- Hud Msg -----
|
|
||||||
sprintf(hud_msg, "SAVED IN SLOT %d", savestate_slot);
|
|
||||||
set_hud_msg(hud_msg, 4);*/
|
|
||||||
|
|
||||||
stop_menu_loop = 1;
|
stop_menu_loop = 1;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
@ -798,13 +861,6 @@ void MenuMode::launch( )
|
|||||||
menu_screen_refresh(menuItem, prevItem, scroll, menu_confirmation, 1);
|
menu_screen_refresh(menuItem, prevItem, scroll, menu_confirmation, 1);
|
||||||
|
|
||||||
/// ------ Load game ------
|
/// ------ Load game ------
|
||||||
/*get_savestate_filename_noshot(savestate_slot, fname);
|
|
||||||
load_state(fname);
|
|
||||||
|
|
||||||
/// ----- Hud Msg -----
|
|
||||||
sprintf(hud_msg, "LOADED FROM SLOT %d", savestate_slot);
|
|
||||||
set_hud_msg(hud_msg, 4);*/
|
|
||||||
|
|
||||||
stop_menu_loop = 1;
|
stop_menu_loop = 1;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
@ -814,6 +870,25 @@ void MenuMode::launch( )
|
|||||||
screen_refresh = 1;
|
screen_refresh = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if(idx_menus[menuItem] == MENU_TYPE_USB){
|
||||||
|
MENU_DEBUG_PRINTF("USB %s\n", usb_mounted?"unmount":"mount");
|
||||||
|
if(menu_confirmation){
|
||||||
|
MENU_DEBUG_PRINTF("%s USB - confirmed\n", usb_mounted?"Unmount":"Mount");
|
||||||
|
/// ----- USB operation here ----
|
||||||
|
menu_screen_refresh(menuItem, prevItem, scroll, menu_confirmation, 1);
|
||||||
|
/// mounting/unmounting usb here (instead of this commentary)
|
||||||
|
usb_mounted = !usb_mounted;
|
||||||
|
menu_confirmation = 0;
|
||||||
|
|
||||||
|
/// ------ Refresh screen ------
|
||||||
|
screen_refresh = 1;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
MENU_DEBUG_PRINTF("%s USB - asking confirmation\n", usb_mounted?"Unmount":"Mount");
|
||||||
|
menu_confirmation = 1;
|
||||||
|
screen_refresh = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
else if(idx_menus[menuItem] == MENU_TYPE_EXIT){
|
else if(idx_menus[menuItem] == MENU_TYPE_EXIT){
|
||||||
MENU_DEBUG_PRINTF("Exit game\n");
|
MENU_DEBUG_PRINTF("Exit game\n");
|
||||||
if(menu_confirmation){
|
if(menu_confirmation){
|
||||||
|
|||||||
@ -10,8 +10,8 @@ typedef enum{
|
|||||||
MENU_TYPE_SAVE,
|
MENU_TYPE_SAVE,
|
||||||
MENU_TYPE_LOAD,
|
MENU_TYPE_LOAD,
|
||||||
MENU_TYPE_ASPECT_RATIO,
|
MENU_TYPE_ASPECT_RATIO,
|
||||||
MENU_TYPE_EXIT,
|
|
||||||
MENU_TYPE_USB,
|
MENU_TYPE_USB,
|
||||||
|
MENU_TYPE_EXIT,
|
||||||
MENU_TYPE_POWERDOWN,
|
MENU_TYPE_POWERDOWN,
|
||||||
NB_MENU_TYPES,
|
NB_MENU_TYPES,
|
||||||
} ENUM_MENU_TYPE;
|
} ENUM_MENU_TYPE;
|
||||||
@ -105,6 +105,7 @@ private:
|
|||||||
static SDL_Surface ** menu_zone_surfaces;
|
static SDL_Surface ** menu_zone_surfaces;
|
||||||
static int * idx_menus;
|
static int * idx_menus;
|
||||||
static int nb_menu_zones;
|
static int nb_menu_zones;
|
||||||
|
static int menuItem;
|
||||||
|
|
||||||
static int stop_menu_loop;
|
static int stop_menu_loop;
|
||||||
|
|
||||||
|
|||||||
@ -318,7 +318,7 @@ SDL_Surface* SDL::getWindow( )
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
void SDL::SDL_Rotate_270(SDL_Surface * dst, SDL_Surface * src){
|
void SDL::SDL_Rotate_270(SDL_Surface * src, SDL_Surface * dst){
|
||||||
int i, j;
|
int i, j;
|
||||||
uint32_t *source_pixels = (uint32_t*) src->pixels;
|
uint32_t *source_pixels = (uint32_t*) src->pixels;
|
||||||
uint32_t *dest_pixels = (uint32_t*) dst->pixels;
|
uint32_t *dest_pixels = (uint32_t*) dst->pixels;
|
||||||
@ -357,7 +357,7 @@ void SDL::SDL_Rotate_270(SDL_Surface * dst, SDL_Surface * src){
|
|||||||
void SDL::renderAndFlipWindow( )
|
void SDL::renderAndFlipWindow( )
|
||||||
{
|
{
|
||||||
//SDL_BlitSurface(window_virtual_, NULL, window_, NULL);
|
//SDL_BlitSurface(window_virtual_, NULL, window_, NULL);
|
||||||
SDL_Rotate_270(window_, window_virtual_);
|
SDL_Rotate_270(window_virtual_, window_);
|
||||||
|
|
||||||
SDL_Flip(window_);
|
SDL_Flip(window_);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user