(command.c) Cut down on some functions

This commit is contained in:
twinaphex 2016-03-04 17:35:44 +01:00
parent 95314700f9
commit 81e13aa2c1
4 changed files with 41 additions and 22 deletions

View File

@ -328,17 +328,6 @@ static void parse_msg(rarch_cmd_t *handle, char *buf)
}
}
void rarch_cmd_set(rarch_cmd_t *handle, unsigned id)
{
if (id < RARCH_BIND_LIST_END)
handle->state[id] = true;
}
bool rarch_cmd_get(rarch_cmd_t *handle, unsigned id)
{
return id < RARCH_BIND_LIST_END && handle->state[id];
}
#if defined(HAVE_NETWORK_CMD) && defined(HAVE_NETPLAY)
static void network_cmd_poll(rarch_cmd_t *handle)
{
@ -597,7 +586,7 @@ static bool verify_command(const char *cmd)
return false;
}
bool network_cmd_send(const char *cmd_)
static bool network_cmd_send(const char *cmd_)
{
bool ret;
char *command = NULL;
@ -646,6 +635,11 @@ bool rarch_cmd_ctl(enum rarch_cmd_ctl_state state, void *data)
{
switch (state)
{
case RARCH_CMD_CTL_NETWORK_SEND:
#if defined(HAVE_NETWORK_CMD) && defined(HAVE_NETPLAY)
network_cmd_send((const char*)data);
#endif
break;
case RARCH_CMD_CTL_POLL:
{
rarch_cmd_t *handle = (rarch_cmd_t*)data;
@ -660,6 +654,23 @@ bool rarch_cmd_ctl(enum rarch_cmd_ctl_state state, void *data)
#endif
}
break;
case RARCH_CMD_CTL_SET:
{
rarch_cmd_handle_t *handle = (rarch_cmd_handle_t*)data;
if (!handle || !handle->handle)
return false;
if (handle->id < RARCH_BIND_LIST_END)
handle->handle->state[handle->id] = true;
}
break;
case RARCH_CMD_CTL_GET:
{
rarch_cmd_handle_t *handle = (rarch_cmd_handle_t*)data;
if (!handle || !handle->handle)
return false;
return handle->id < RARCH_BIND_LIST_END
&& handle->handle->state[handle->id];
}
case RARCH_CMD_CTL_FREE:
{
rarch_cmd_t *handle = (rarch_cmd_t*)data;

View File

@ -31,25 +31,26 @@ extern "C" {
enum rarch_cmd_ctl_state
{
RARCH_CMD_CTL_NONE = 0,
RARCH_CMD_CTL_GET,
RARCH_CMD_CTL_SET,
RARCH_CMD_CTL_POLL,
RARCH_CMD_CTL_NETWORK_SEND,
RARCH_CMD_CTL_FREE
};
typedef struct rarch_cmd rarch_cmd_t;
typedef struct rarch_cmd_handle
{
rarch_cmd_t *handle;
unsigned id;
} rarch_cmd_handle_t;
rarch_cmd_t *rarch_cmd_new(bool stdin_enable,
bool network_enable, uint16_t port);
void rarch_cmd_set(rarch_cmd_t *handle, unsigned id);
bool rarch_cmd_get(rarch_cmd_t *handle, unsigned id);
bool rarch_cmd_ctl(enum rarch_cmd_ctl_state state, void *data);
#if defined(HAVE_NETWORK_CMD) && defined(HAVE_NETPLAY)
bool network_cmd_send(const char *cmd);
#endif
#ifdef __cplusplus
}
#endif

View File

@ -265,7 +265,14 @@ static retro_input_t input_driver_keys_pressed(void)
#ifdef HAVE_COMMAND
if (input_driver_command)
state |= rarch_cmd_get(input_driver_command, key);
{
rarch_cmd_handle_t handle;
handle.handle = input_driver_command;
handle.id = key;
state |= rarch_cmd_ctl(RARCH_CMD_CTL_GET, &handle);
}
#endif
#ifdef HAVE_NETWORK_GAMEPAD

View File

@ -917,7 +917,7 @@ static void parse_input(int argc, char *argv[])
#if defined(HAVE_NETWORK_CMD) && defined(HAVE_NETPLAY)
case RA_OPT_COMMAND:
if (network_cmd_send(optarg))
if (rarch_cmd_ctl(RARCH_CMD_CTL_NETWORK_SEND, (void*)optarg))
exit(0);
else
retro_fail(1, "network_cmd_send()");