mirror of
https://github.com/libretro/RetroArch
synced 2025-02-28 22:13:51 +00:00
(joypad_connection.c) refactor pt. 1
This commit is contained in:
parent
317c098897
commit
29f640fe5d
@ -16,16 +16,7 @@
|
||||
|
||||
#include "joypad_connection.h"
|
||||
|
||||
typedef struct
|
||||
{
|
||||
bool used;
|
||||
struct pad_connection_interface *iface;
|
||||
void* data;
|
||||
|
||||
bool is_gcapi;
|
||||
} joypad_slot_t;
|
||||
|
||||
static joypad_slot_t slots[MAX_PLAYERS];
|
||||
static joypad_connection_t slots[MAX_PLAYERS];
|
||||
|
||||
static int find_vacant_pad(void)
|
||||
{
|
||||
@ -55,7 +46,7 @@ int32_t pad_connection_connect(const char* name, void *data, send_control_t ptr)
|
||||
if (pad >= 0 && pad < MAX_PLAYERS)
|
||||
{
|
||||
unsigned i;
|
||||
joypad_slot_t* s = (joypad_slot_t*)&slots[pad];
|
||||
joypad_connection_t* s = (joypad_connection_t*)&slots[pad];
|
||||
|
||||
s->used = true;
|
||||
|
||||
@ -91,12 +82,12 @@ int32_t apple_joypad_connect_gcapi(void)
|
||||
|
||||
if (pad >= 0 && pad < MAX_PLAYERS)
|
||||
{
|
||||
joypad_slot_t *s = (joypad_slot_t*)&slots[pad];
|
||||
joypad_connection_t *s = (joypad_connection_t*)&slots[pad];
|
||||
|
||||
if (s)
|
||||
{
|
||||
s->used = true;
|
||||
s->is_gcapi = true;
|
||||
s->used = true;
|
||||
s->is_gcapi = true;
|
||||
}
|
||||
}
|
||||
|
||||
@ -107,12 +98,12 @@ void pad_connection_disconnect(uint32_t pad)
|
||||
{
|
||||
if (pad < MAX_PLAYERS && slots[pad].used)
|
||||
{
|
||||
joypad_slot_t* s = (joypad_slot_t*)&slots[pad];
|
||||
joypad_connection_t* s = (joypad_connection_t*)&slots[pad];
|
||||
|
||||
if (s->iface && s->data && s->iface->disconnect)
|
||||
s->iface->disconnect(s->data);
|
||||
|
||||
memset(s, 0, sizeof(joypad_slot_t));
|
||||
memset(s, 0, sizeof(joypad_connection_t));
|
||||
}
|
||||
}
|
||||
|
||||
@ -121,7 +112,7 @@ void pad_connection_packet(uint32_t pad,
|
||||
{
|
||||
if (pad < MAX_PLAYERS && slots[pad].used)
|
||||
{
|
||||
joypad_slot_t *s = (joypad_slot_t*)&slots[pad];
|
||||
joypad_connection_t *s = (joypad_connection_t*)&slots[pad];
|
||||
|
||||
if (!s)
|
||||
return;
|
||||
@ -133,7 +124,7 @@ void pad_connection_packet(uint32_t pad,
|
||||
|
||||
uint32_t pad_connection_get_buttons(unsigned index)
|
||||
{
|
||||
joypad_slot_t *s = (joypad_slot_t*)&slots[index];
|
||||
joypad_connection_t *s = (joypad_connection_t*)&slots[index];
|
||||
|
||||
if (s && s->iface && s->data)
|
||||
return s->iface->get_buttons(s->data);
|
||||
@ -142,7 +133,7 @@ uint32_t pad_connection_get_buttons(unsigned index)
|
||||
|
||||
int16_t pad_connection_get_axis(unsigned index, unsigned i)
|
||||
{
|
||||
joypad_slot_t *s = (joypad_slot_t*)&slots[index];
|
||||
joypad_connection_t *s = (joypad_connection_t*)&slots[index];
|
||||
|
||||
if (s && s->iface && s->data)
|
||||
return s->iface->get_axis(s->data, i);
|
||||
|
@ -36,6 +36,15 @@ typedef struct pad_connection_interface
|
||||
extern pad_connection_interface_t pad_connection_wii;
|
||||
extern pad_connection_interface_t pad_connection_ps3;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
bool used;
|
||||
struct pad_connection_interface *iface;
|
||||
void* data;
|
||||
|
||||
bool is_gcapi;
|
||||
} joypad_connection_t;
|
||||
|
||||
int32_t pad_connection_connect(const char* name, void *data, send_control_t ptr);
|
||||
|
||||
int32_t apple_joypad_connect_gcapi(void);
|
||||
|
Loading…
x
Reference in New Issue
Block a user