mirror of
https://github.com/libretro/RetroArch
synced 2025-03-29 13:20:30 +00:00
De-ioctlify command.c
This commit is contained in:
parent
42019bd02f
commit
80a453bad1
85
command.c
85
command.c
@ -197,7 +197,7 @@ rarch_cmd_t *rarch_cmd_new(bool stdin_enable,
|
||||
|
||||
#if (defined(HAVE_NETWORK_CMD) && defined(HAVE_NETPLAY)) || defined(HAVE_STDIN_CMD)
|
||||
error:
|
||||
rarch_cmd_ctl(RARCH_CMD_CTL_FREE, handle);
|
||||
rarch_cmd_free(handle);
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
@ -564,7 +564,7 @@ static bool verify_command(const char *cmd)
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool network_cmd_send(const char *cmd_)
|
||||
bool rarch_cmd_send(const char *cmd_)
|
||||
{
|
||||
bool ret;
|
||||
char *command = NULL;
|
||||
@ -609,61 +609,46 @@ static bool network_cmd_send(const char *cmd_)
|
||||
}
|
||||
#endif
|
||||
|
||||
bool rarch_cmd_ctl(enum rarch_cmd_ctl_state state, void *data)
|
||||
bool rarch_cmd_poll(rarch_cmd_t *handle)
|
||||
{
|
||||
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;
|
||||
memset(handle->state, 0, sizeof(handle->state));
|
||||
memset(handle->state, 0, sizeof(handle->state));
|
||||
|
||||
#if defined(HAVE_NETWORK_CMD) && defined(HAVE_NETPLAY)
|
||||
network_cmd_poll(handle);
|
||||
network_cmd_poll(handle);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_STDIN_CMD
|
||||
stdin_cmd_poll(handle);
|
||||
stdin_cmd_poll(handle);
|
||||
#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;
|
||||
#if defined(HAVE_NETWORK_CMD) && defined(HAVE_NETPLAY)
|
||||
if (handle && handle->net_fd >= 0)
|
||||
socket_close(handle->net_fd);
|
||||
#endif
|
||||
|
||||
free(handle);
|
||||
}
|
||||
break;
|
||||
case RARCH_CMD_CTL_NONE:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool rarch_cmd_set(rarch_cmd_handle_t *handle)
|
||||
{
|
||||
if (!handle || !handle->handle)
|
||||
return false;
|
||||
if (handle->id < RARCH_BIND_LIST_END)
|
||||
handle->handle->state[handle->id] = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool rarch_cmd_free(rarch_cmd_t *handle)
|
||||
{
|
||||
#if defined(HAVE_NETWORK_CMD) && defined(HAVE_NETPLAY)
|
||||
if (handle && handle->net_fd >= 0)
|
||||
socket_close(handle->net_fd);
|
||||
#endif
|
||||
|
||||
free(handle);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool rarch_cmd_get(rarch_cmd_handle_t *handle)
|
||||
{
|
||||
if (!handle || !handle->handle)
|
||||
return false;
|
||||
return handle->id < RARCH_BIND_LIST_END
|
||||
&& handle->handle->state[handle->id];
|
||||
}
|
||||
|
22
command.h
22
command.h
@ -28,16 +28,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
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
|
||||
@ -49,7 +39,17 @@ typedef struct rarch_cmd_handle
|
||||
rarch_cmd_t *rarch_cmd_new(bool stdin_enable,
|
||||
bool network_enable, uint16_t port);
|
||||
|
||||
bool rarch_cmd_ctl(enum rarch_cmd_ctl_state state, void *data);
|
||||
#if defined(HAVE_NETWORK_CMD) && defined(HAVE_NETPLAY)
|
||||
bool rarch_cmd_send(const char *cmd_);
|
||||
#endif
|
||||
|
||||
bool rarch_cmd_poll(rarch_cmd_t *handle);
|
||||
|
||||
bool rarch_cmd_set(rarch_cmd_handle_t *handle);
|
||||
|
||||
bool rarch_cmd_get(rarch_cmd_handle_t *handle);
|
||||
|
||||
bool rarch_cmd_free(rarch_cmd_t *handle);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@ -274,7 +274,7 @@ static retro_input_t input_driver_keys_pressed(void)
|
||||
handle.handle = input_driver_command;
|
||||
handle.id = key;
|
||||
|
||||
state |= rarch_cmd_ctl(RARCH_CMD_CTL_GET, &handle);
|
||||
state |= rarch_cmd_get(&handle);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -430,7 +430,7 @@ void input_poll(void)
|
||||
|
||||
#ifdef HAVE_COMMAND
|
||||
if (input_driver_command)
|
||||
rarch_cmd_ctl(RARCH_CMD_CTL_POLL, input_driver_command);
|
||||
rarch_cmd_poll(input_driver_command);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_NETWORK_GAMEPAD
|
||||
@ -803,7 +803,7 @@ bool input_driver_ctl(enum rarch_input_ctl_state state, void *data)
|
||||
case RARCH_INPUT_CTL_COMMAND_DEINIT:
|
||||
#ifdef HAVE_COMMAND
|
||||
if (input_driver_command)
|
||||
rarch_cmd_ctl(RARCH_CMD_CTL_FREE, input_driver_command);
|
||||
rarch_cmd_free(input_driver_command);
|
||||
input_driver_command = NULL;
|
||||
#endif
|
||||
break;
|
||||
|
@ -954,7 +954,7 @@ static void parse_input(int argc, char *argv[])
|
||||
|
||||
#if defined(HAVE_NETWORK_CMD) && defined(HAVE_NETPLAY)
|
||||
case RA_OPT_COMMAND:
|
||||
if (rarch_cmd_ctl(RARCH_CMD_CTL_NETWORK_SEND, (void*)optarg))
|
||||
if (rarch_cmd_send((void*)optarg))
|
||||
exit(0);
|
||||
else
|
||||
retro_fail(1, "network_cmd_send()");
|
||||
|
Loading…
x
Reference in New Issue
Block a user