(RARCH_CONSOLE) Add 'device' param to set_default_keybind_lut and

set_analog_dpad_mapping
This commit is contained in:
Twinaphex 2012-07-28 01:37:15 +02:00
parent 4cf8b6e1ea
commit b29b04b4b0
9 changed files with 62 additions and 18 deletions

View File

@ -119,8 +119,17 @@ static bool xenon360_key_pressed(void *data, int key)
return false;
}
static void xenon360_input_set_default_keybind_lut(void) {}
static void xenon360_input_set_analog_dpad_mapping(unsigned map_dpad_enum, unsigned controller_id) {}
static void xenon360_input_set_default_keybind_lut(unsigned device)
{
(void)device;
}
static void xenon360_input_set_analog_dpad_mapping(unsigned device, unsigned map_dpad_enum, unsigned controller_id)
{
(void)device;
(void)map_dpad_enum;
(void)controller_id;
}
const input_driver_t input_xenon360 = {
.init = xenon360_input_init,

View File

@ -112,8 +112,10 @@ static void xinput_input_free_input(void *data)
(void)data;
}
static void xinput_input_set_analog_dpad_mapping(unsigned map_dpad_enum, unsigned controller_id)
static void xinput_input_set_analog_dpad_mapping(unsigned device, unsigned map_dpad_enum, unsigned controller_id)
{
(void)device;
switch(map_dpad_enum)
{
case DPAD_EMULATION_NONE:
@ -202,8 +204,10 @@ static bool xinput_input_key_pressed(void *data, int key)
return retval;
}
static void xinput_set_default_keybind_lut(void)
static void xinput_set_default_keybind_lut(unsigned device)
{
(void)device;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_B] = platform_keys[XDK_DEVICE_ID_JOYPAD_A].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_Y] = platform_keys[XDK_DEVICE_ID_JOYPAD_X].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_SELECT] = platform_keys[XDK_DEVICE_ID_JOYPAD_BACK].joykey;

View File

@ -134,9 +134,11 @@ void rarch_input_set_default_keybinds(unsigned player)
g_settings.input.dpad_emulation[player] = DPAD_EMULATION_LSTICK;
}
#define STUB_DEVICE 0
void rarch_input_set_controls_default (const input_driver_t *input)
{
input->set_default_keybind_lut();
input->set_default_keybind_lut(STUB_DEVICE);
for(uint32_t x = 0; x < MAX_PLAYERS; x++)
rarch_input_set_default_keybinds(x);

View File

@ -160,8 +160,8 @@ typedef struct input_driver
bool (*key_pressed)(void *data, int key);
void (*free)(void *data);
#ifdef RARCH_CONSOLE
void (*set_default_keybind_lut)(void);
void (*set_analog_dpad_mapping)(unsigned map_dpad_enum, unsigned controller_id);
void (*set_default_keybind_lut)(unsigned device);
void (*set_analog_dpad_mapping)(unsigned device, unsigned map_dpad_enum, unsigned controller_id);
void (*post_init)(void);
unsigned max_pads;
#endif

View File

@ -160,6 +160,7 @@ struct settings
#ifdef RARCH_CONSOLE
unsigned currently_selected_controller_no;
unsigned dpad_emulation[MAX_PLAYERS];
unsigned device[MAX_PLAYERS];
#endif
bool netplay_client_swap_input;
} input;

View File

@ -52,8 +52,18 @@ static void null_input_free(void *data)
}
#ifdef RARCH_CONSOLE
static void null_set_default_keybind_lut(void) {}
static void null_set_analog_dpad_mapping(unsigned map_dpad_enum, unsigned controller_id) {}
static void null_set_default_keybind_lut(unsigned device)
{
(void)device;
}
static void null_set_analog_dpad_mapping(unsigned device, unsigned map_dpad_enum, unsigned controller_id)
{
(void)device;
(void)map_dpad_enum;
(void)controller_id;
}
static void null_input_post_init(void) {}
#endif

View File

@ -373,8 +373,10 @@ void oskutil_unload(oskutil_params *params)
RetroArch PS3 INPUT DRIVER
============================================================ */
static void ps3_input_set_analog_dpad_mapping(unsigned map_dpad_enum, unsigned controller_id)
static void ps3_input_set_analog_dpad_mapping(unsigned device, unsigned map_dpad_enum, unsigned controller_id)
{
(void)device;
switch(map_dpad_enum)
{
case DPAD_EMULATION_NONE:
@ -413,10 +415,12 @@ static void* ps3_input_initialize(void)
return (void*)-1;
}
#define STUB_DEVICE 0
static void ps3_input_post_init(void)
{
for(unsigned i = 0; i < MAX_PADS; i++)
ps3_input_set_analog_dpad_mapping(g_settings.input.dpad_emulation[i], i);
ps3_input_set_analog_dpad_mapping(STUB_DEVICE, g_settings.input.dpad_emulation[i], i);
}
static bool ps3_key_pressed(void *data, int key)
@ -474,8 +478,10 @@ static bool ps3_key_pressed(void *data, int key)
}
}
static void ps3_set_default_keybind_lut(void)
static void ps3_set_default_keybind_lut(unsigned device)
{
(void)device;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_B] = platform_keys[PS3_DEVICE_ID_JOYPAD_CROSS].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_Y] = platform_keys[PS3_DEVICE_ID_JOYPAD_SQUARE].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_SELECT] = platform_keys[PS3_DEVICE_ID_JOYPAD_SELECT].joykey;

View File

@ -159,8 +159,10 @@ static void reset_callback(void)
g_quit = true;
}
static void wii_input_set_analog_dpad_mapping(unsigned map_dpad_enum, unsigned controller_id)
static void wii_input_set_analog_dpad_mapping(unsigned device, unsigned map_dpad_enum, unsigned controller_id)
{
(void)device; //TODO: Remove when you start using it in this function
#if defined(CLASSIC_PAD)
switch(map_dpad_enum)
{
@ -248,10 +250,12 @@ static void *wii_input_initialize(void)
return (void*)-1;
}
#define STUB_DEVICE 0
static void wii_input_post_init(void)
{
for(unsigned i = 0; i < MAX_PADS; i++)
wii_input_set_analog_dpad_mapping(g_settings.input.dpad_emulation[i], i);
wii_input_set_analog_dpad_mapping(STUB_DEVICE, g_settings.input.dpad_emulation[i], i);
}
#define wii_stick_x(x) ((s8)((sin((x).ang * M_PI / 180.0f)) * (x).mag * 128.0f))
@ -431,8 +435,9 @@ static bool wii_key_pressed(void *data, int key)
}
}
static void wii_set_default_keybind_lut(void)
static void wii_set_default_keybind_lut(unsigned device)
{
(void)device; //TODO: Remove when you start using it in this function
#if defined(CLASSIC_PAD)
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_B] = platform_keys[WII_DEVICE_CLASSIC_ID_JOYPAD_B].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_Y] = platform_keys[WII_DEVICE_CLASSIC_ID_JOYPAD_Y].joykey;

View File

@ -164,8 +164,10 @@ static void xinput_input_free_input(void *data)
(void)data;
}
static void xinput_set_default_keybind_lut(void)
static void xinput_set_default_keybind_lut(unsigned device)
{
(void)device;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_B] = platform_keys[XDK_DEVICE_ID_JOYPAD_A].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_Y] = platform_keys[XDK_DEVICE_ID_JOYPAD_X].joykey;
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_SELECT] = platform_keys[XDK_DEVICE_ID_JOYPAD_BACK].joykey;
@ -191,8 +193,11 @@ static void xinput_set_default_keybind_lut(void)
rarch_default_keybind_lut[RETRO_DEVICE_ID_JOYPAD_R3] = platform_keys[XDK_DEVICE_ID_RSTICK_THUMB].joykey;
}
static void xinput_input_set_analog_dpad_mapping(unsigned map_dpad_enum, unsigned controller_id)
static void xinput_input_set_analog_dpad_mapping(unsigned device, unsigned map_dpad_enum, unsigned controller_id)
{
(void)device;
(void)map_dpad_enum;
(void)controller_id;
}
static void* xinput_input_init(void)
@ -217,10 +222,12 @@ static void* xinput_input_init(void)
return (void*)-1;
}
#define STUB_DEVICE 0
static void xinput_input_post_init(void)
{
for(unsigned i = 0; i < MAX_PADS; i++)
xinput_input_set_analog_dpad_mapping(g_settings.input.dpad_emulation[i], i);
xinput_input_set_analog_dpad_mapping(STUB_DEVICE, g_settings.input.dpad_emulation[i], i);
}
static bool xinput_input_key_pressed(void *data, int key)