Move driver->command to input_driver.c
This commit is contained in:
parent
3281ba6e91
commit
0b24618cd5
|
@ -55,27 +55,6 @@
|
|||
#include <net/net_compat.h>
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_COMMAND
|
||||
static void event_init_command(void)
|
||||
{
|
||||
driver_t *driver = driver_get_ptr();
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
||||
if (!settings->stdin_cmd_enable && !settings->network_cmd_enable)
|
||||
return;
|
||||
|
||||
if (settings->stdin_cmd_enable && input_driver_ctl(RARCH_INPUT_CTL_GRAB_STDIN, NULL))
|
||||
{
|
||||
RARCH_WARN("stdin command interface is desired, but input driver has already claimed stdin.\n"
|
||||
"Cannot use this command interface.\n");
|
||||
}
|
||||
|
||||
if (!(driver->command = rarch_cmd_new(settings->stdin_cmd_enable
|
||||
&& !input_driver_ctl(RARCH_INPUT_CTL_GRAB_STDIN, NULL),
|
||||
settings->network_cmd_enable, settings->network_cmd_port)))
|
||||
RARCH_ERR("Failed to initialize command interface.\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_NETWORK_GAMEPAD
|
||||
static void event_init_remote(void)
|
||||
|
@ -1590,33 +1569,26 @@ bool event_command(enum event_command cmd)
|
|||
event_command(EVENT_CMD_REINIT);
|
||||
break;
|
||||
case EVENT_CMD_COMMAND_DEINIT:
|
||||
#ifdef HAVE_COMMAND
|
||||
if (driver->command)
|
||||
rarch_cmd_free(driver->command);
|
||||
driver->command = NULL;
|
||||
#endif
|
||||
input_driver_ctl(RARCH_INPUT_CTL_COMMAND_DEINIT, NULL);
|
||||
break;
|
||||
case EVENT_CMD_COMMAND_INIT:
|
||||
event_command(EVENT_CMD_COMMAND_DEINIT);
|
||||
|
||||
#ifdef HAVE_COMMAND
|
||||
event_init_command();
|
||||
input_driver_ctl(RARCH_INPUT_CTL_COMMAND_INIT, NULL);
|
||||
break;
|
||||
case EVENT_CMD_REMOTE_DEINIT:
|
||||
#ifdef HAVE_NETWORK_GAMEPAD
|
||||
if (driver->remote)
|
||||
rarch_remote_free(driver->remote);
|
||||
driver->remote = NULL;
|
||||
#endif
|
||||
break;
|
||||
case EVENT_CMD_REMOTE_DEINIT:
|
||||
#ifdef HAVE_NETWORK_GAMEPAD
|
||||
if (driver->remote)
|
||||
rarch_remote_free(driver->remote);
|
||||
driver->remote = NULL;
|
||||
#endif
|
||||
break;
|
||||
case EVENT_CMD_REMOTE_INIT:
|
||||
event_command(EVENT_CMD_REMOTE_DEINIT);
|
||||
case EVENT_CMD_REMOTE_INIT:
|
||||
event_command(EVENT_CMD_REMOTE_DEINIT);
|
||||
|
||||
#ifdef HAVE_NETWORK_GAMEPAD
|
||||
event_init_remote();
|
||||
event_init_remote();
|
||||
#endif
|
||||
break;
|
||||
break;
|
||||
case EVENT_CMD_TEMPORARY_CONTENT_DEINIT:
|
||||
content_temporary_free();
|
||||
break;
|
||||
|
|
3
driver.h
3
driver.h
|
@ -242,9 +242,6 @@ typedef struct driver
|
|||
bool menu_data_own;
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_COMMAND
|
||||
rarch_cmd_t *command;
|
||||
#endif
|
||||
#ifdef HAVE_NETWORK_GAMEPAD
|
||||
rarch_remote_t *remote;
|
||||
#endif
|
||||
|
|
|
@ -82,6 +82,9 @@ struct turbo_buttons
|
|||
unsigned count;
|
||||
};
|
||||
|
||||
#ifdef HAVE_COMMAND
|
||||
static rarch_cmd_t *input_driver_command;
|
||||
#endif
|
||||
static bool input_driver_keyboard_linefeed_enable;
|
||||
static bool input_driver_osk_enabled;
|
||||
static bool input_driver_data_own;
|
||||
|
@ -276,8 +279,8 @@ static retro_input_t input_driver_keys_pressed(void)
|
|||
#endif
|
||||
|
||||
#ifdef HAVE_COMMAND
|
||||
if (driver->command)
|
||||
state |= rarch_cmd_get(driver->command, key);
|
||||
if (input_driver_command)
|
||||
state |= rarch_cmd_get(input_driver_command, key);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_NETWORK_GAMEPAD
|
||||
|
@ -430,8 +433,8 @@ void input_poll(void)
|
|||
#endif
|
||||
|
||||
#ifdef HAVE_COMMAND
|
||||
if (driver->command)
|
||||
rarch_cmd_poll(driver->command);
|
||||
if (input_driver_command)
|
||||
rarch_cmd_poll(input_driver_command);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_NETWORK_GAMEPAD
|
||||
|
@ -634,6 +637,28 @@ bool input_driver_data_ptr_is_same(void *data)
|
|||
return (current_input_data == data);
|
||||
}
|
||||
|
||||
#ifdef HAVE_COMMAND
|
||||
static void input_driver_command_init(void)
|
||||
{
|
||||
driver_t *driver = driver_get_ptr();
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
||||
if (!settings->stdin_cmd_enable && !settings->network_cmd_enable)
|
||||
return;
|
||||
|
||||
if (settings->stdin_cmd_enable && input_driver_ctl(RARCH_INPUT_CTL_GRAB_STDIN, NULL))
|
||||
{
|
||||
RARCH_WARN("stdin command interface is desired, but input driver has already claimed stdin.\n"
|
||||
"Cannot use this command interface.\n");
|
||||
}
|
||||
|
||||
if (!(input_driver_command = rarch_cmd_new(settings->stdin_cmd_enable
|
||||
&& !input_driver_ctl(RARCH_INPUT_CTL_GRAB_STDIN, NULL),
|
||||
settings->network_cmd_enable, settings->network_cmd_port)))
|
||||
RARCH_ERR("Failed to initialize command interface.\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
bool input_driver_ctl(enum rarch_input_ctl_state state, void *data)
|
||||
{
|
||||
settings_t *settings = config_get_ptr();
|
||||
|
@ -749,6 +774,18 @@ bool input_driver_ctl(enum rarch_input_ctl_state state, void *data)
|
|||
break;
|
||||
case RARCH_INPUT_CTL_IS_KEYBOARD_LINEFEED_ENABLED:
|
||||
return input_driver_keyboard_linefeed_enable;
|
||||
case RARCH_INPUT_CTL_COMMAND_INIT:
|
||||
#ifdef HAVE_COMMAND
|
||||
input_driver_command_init();
|
||||
#endif
|
||||
break;
|
||||
case RARCH_INPUT_CTL_COMMAND_DEINIT:
|
||||
#ifdef HAVE_COMMAND
|
||||
if (input_driver_command)
|
||||
rarch_cmd_free(input_driver_command);
|
||||
input_driver_command = NULL;
|
||||
#endif
|
||||
break;
|
||||
case RARCH_INPUT_CTL_NONE:
|
||||
default:
|
||||
break;
|
||||
|
|
|
@ -74,7 +74,9 @@ enum rarch_input_ctl_state
|
|||
RARCH_INPUT_CTL_IS_OSK_ENABLED,
|
||||
RARCH_INPUT_CTL_SET_KEYBOARD_LINEFEED_ENABLED,
|
||||
RARCH_INPUT_CTL_UNSET_KEYBOARD_LINEFEED_ENABLED,
|
||||
RARCH_INPUT_CTL_IS_KEYBOARD_LINEFEED_ENABLED
|
||||
RARCH_INPUT_CTL_IS_KEYBOARD_LINEFEED_ENABLED,
|
||||
RARCH_INPUT_CTL_COMMAND_INIT,
|
||||
RARCH_INPUT_CTL_COMMAND_DEINIT
|
||||
};
|
||||
|
||||
struct retro_keybind
|
||||
|
|
Loading…
Reference in New Issue