Add RARCH_CMD_NETPLAY_FLIP_PLAYERS and RARCH_CMD_FULLSCREEN_TOGGLE

This commit is contained in:
twinaphex 2014-10-08 16:41:08 +02:00
parent 4bd018257e
commit c35d25c76e
5 changed files with 51 additions and 41 deletions

View File

@ -675,14 +675,12 @@ extern menu_ctx_driver_backend_t menu_ctx_backend_lakka;
extern rarch_joypad_driver_t *joypad_drivers[];
#define check_netplay_flip_func(trigger_input) check_netplay_flip(BIT64_GET(trigger_input, RARCH_NETPLAY_FLIP), BIT64_GET(trigger_input, RARCH_FULLSCREEN_TOGGLE_KEY))
#define check_overlay_func(input, old_input) rarch_check_overlay(BIT64_GET(input, RARCH_OVERLAY_NEXT), BIT64_GET(old_input, RARCH_OVERLAY_NEXT))
#define check_oneshot_func(trigger_input) (check_is_oneshot(BIT64_GET(trigger_input, RARCH_FRAMEADVANCE), BIT64_GET(trigger_input, RARCH_REWIND)))
#define check_slowmotion_func(input) check_slowmotion(BIT64_GET(input, RARCH_SLOWMOTION))
#define check_shader_dir_func(trigger_input) check_shader_dir(BIT64_GET(trigger_input, RARCH_SHADER_NEXT), BIT64_GET(trigger_input, RARCH_SHADER_PREV))
#define check_enter_menu_func(input) BIT64_GET(input, RARCH_MENU_TOGGLE)
#define check_mute_func(input, old_input) check_mute(BIT64_GET(input, RARCH_MUTE), BIT64_GET(old_input, RARCH_MUTE))
#define check_fullscreen_func(trigger_input) rarch_check_fullscreen(BIT64_GET(trigger_input, RARCH_FULLSCREEN_TOGGLE_KEY))
#define check_fast_forward_button_func(input, old_input, trigger_input) check_fast_forward_button(BIT64_GET(trigger_input, RARCH_FAST_FORWARD_KEY), BIT64_GET(input, RARCH_FAST_FORWARD_HOLD_KEY), BIT64_GET(old_input, RARCH_FAST_FORWARD_HOLD_KEY))
#define check_rewind_func(input) check_rewind(BIT64_GET(input, RARCH_REWIND))
#define check_stateslots_func(trigger_input) check_stateslots(BIT64_GET(trigger_input, RARCH_STATE_SLOT_PLUS), BIT64_GET(trigger_input, RARCH_STATE_SLOT_MINUS))

View File

@ -314,7 +314,8 @@ int menu_iterate(retro_input_t input,
if (BIT64_GET(trigger_input, RARCH_OVERLAY_NEXT))
input_overlay_next(driver.overlay);
#endif
check_fullscreen_func(trigger_input);
if (BIT64_GET(trigger_input, RARCH_FULLSCREEN_TOGGLE_KEY))
rarch_main_command(RARCH_CMD_FULLSCREEN_TOGGLE);
driver.retro_ctx.poll_cb();

View File

@ -150,6 +150,7 @@ enum basic_event
RARCH_CMD_CHEATS_DEINIT,
RARCH_CMD_NETPLAY_INIT,
RARCH_CMD_NETPLAY_DEINIT,
RARCH_CMD_NETPLAY_FLIP_PLAYERS,
RARCH_CMD_BSV_MOVIE_INIT,
RARCH_CMD_BSV_MOVIE_DEINIT,
RARCH_CMD_COMMAND_INIT,
@ -164,6 +165,7 @@ enum basic_event
RARCH_CMD_DISK_PREV,
RARCH_CMD_RUMBLE_STOP,
RARCH_CMD_GRAB_MOUSE_TOGGLE,
RARCH_CMD_FULLSCREEN_TOGGLE,
};
enum action_state
@ -819,7 +821,6 @@ bool rarch_main_command(unsigned action);
int rarch_main_iterate(void);
void rarch_main_deinit(void);
void rarch_render_cached_frame(void);
bool rarch_check_fullscreen(bool pressed);
void rarch_disk_control_set_eject(bool state, bool log);
void rarch_disk_control_set_index(unsigned index);
void rarch_disk_control_append_image(const char *path);

View File

@ -1567,19 +1567,6 @@ static void main_state(unsigned cmd)
RARCH_LOG("%s\n", msg);
}
bool rarch_check_fullscreen(bool pressed)
{
if (!pressed)
return false;
/* If we go fullscreen we drop all drivers and
* reinitialize to be safe. */
g_settings.video.fullscreen = !g_settings.video.fullscreen;
rarch_main_command(RARCH_CMD_REINIT);
return true;
}
void rarch_disk_control_append_image(const char *path)
{
char msg[PATH_MAX];
@ -2594,12 +2581,12 @@ bool rarch_main_command(unsigned cmd)
break;
case RARCH_CMD_NETPLAY_DEINIT:
#ifdef HAVE_NETPLAY
{
netplay_t *netplay = (netplay_t*)driver.netplay_data;
if (netplay)
netplay_free(netplay);
driver.netplay_data = NULL;
}
{
netplay_t *netplay = (netplay_t*)driver.netplay_data;
if (netplay)
netplay_free(netplay);
driver.netplay_data = NULL;
}
#endif
break;
case RARCH_CMD_NETPLAY_INIT:
@ -2608,6 +2595,19 @@ bool rarch_main_command(unsigned cmd)
init_netplay();
#endif
break;
case RARCH_CMD_NETPLAY_FLIP_PLAYERS:
{
netplay_t *netplay = (netplay_t*)driver.netplay_data;
if (netplay)
netplay_flip_players(netplay);
}
break;
case RARCH_CMD_FULLSCREEN_TOGGLE:
/* If we go fullscreen we drop all drivers and
* reinitialize to be safe. */
g_settings.video.fullscreen = !g_settings.video.fullscreen;
rarch_main_command(RARCH_CMD_REINIT);
break;
case RARCH_CMD_COMMAND_DEINIT:
#ifdef HAVE_COMMAND
if (driver.command)
@ -2655,8 +2655,13 @@ bool rarch_main_command(unsigned cmd)
(const struct retro_disk_control_callback*)
&g_extern.system.disk_control;
if (control->get_eject_state())
check_disk_next(control);
if (!control)
return false;
if (!control->get_eject_state())
return false;
check_disk_next(control);
}
break;
case RARCH_CMD_DISK_PREV:
@ -2666,8 +2671,13 @@ bool rarch_main_command(unsigned cmd)
(const struct retro_disk_control_callback*)
&g_extern.system.disk_control;
if (control->get_eject_state())
check_disk_prev(control);
if (!control)
return false;
if (!control->get_eject_state())
return false;
check_disk_prev(control);
}
break;
case RARCH_CMD_RUMBLE_STOP:

View File

@ -40,17 +40,6 @@ static void set_volume(float gain)
g_extern.audio_data.volume_gain = db_to_gain(g_settings.audio.volume);
}
#ifdef HAVE_NETPLAY
static void check_netplay_flip(bool pressed, bool fullscreen_toggle_pressed)
{
netplay_t *netplay = (netplay_t*)driver.netplay_data;
if (pressed && netplay)
netplay_flip_players(netplay);
rarch_check_fullscreen(fullscreen_toggle_pressed);
}
#endif
static bool check_pause(bool pressed, bool frameadvance_pressed)
{
static bool old_focus = true;
@ -390,12 +379,19 @@ static int do_state_checks(
#endif
if (!g_extern.is_paused)
check_fullscreen_func(trigger_input);
{
if (BIT64_GET(trigger_input, RARCH_FULLSCREEN_TOGGLE_KEY))
rarch_main_command(RARCH_CMD_FULLSCREEN_TOGGLE);
}
#ifdef HAVE_NETPLAY
if (driver.netplay_data)
{
check_netplay_flip_func(trigger_input);
if (BIT64_GET(trigger_input, RARCH_NETPLAY_FLIP))
rarch_main_command(RARCH_CMD_NETPLAY_FLIP_PLAYERS);
if (BIT64_GET(trigger_input, RARCH_FULLSCREEN_TOGGLE_KEY))
rarch_main_command(RARCH_CMD_FULLSCREEN_TOGGLE);
return 0;
}
#endif
@ -404,8 +400,12 @@ static int do_state_checks(
if (g_extern.is_paused)
{
if (check_fullscreen_func(trigger_input))
if (BIT64_GET(trigger_input, RARCH_FULLSCREEN_TOGGLE_KEY))
{
rarch_main_command(RARCH_CMD_FULLSCREEN_TOGGLE);
rarch_render_cached_frame();
}
if (!check_oneshot_func(trigger_input))
return 1;
}