mirror of
https://github.com/libretro/RetroArch
synced 2025-02-05 15:40:04 +00:00
Merge pull request #1080 from mprobinson/joypad-driver
Fix joypad driver setting
This commit is contained in:
commit
7027f974eb
41
config.def.h
41
config.def.h
@ -87,6 +87,19 @@ enum
|
||||
INPUT_RWEBINPUT,
|
||||
INPUT_NULL,
|
||||
|
||||
JOYPAD_PS3,
|
||||
JOYPAD_WINXINPUT,
|
||||
JOYPAD_GX,
|
||||
JOYPAD_XDK,
|
||||
JOYPAD_PSP,
|
||||
JOYPAD_DINPUT,
|
||||
JOYPAD_UDEV,
|
||||
JOYPAD_LINUXRAW,
|
||||
JOYPAD_ANDROID,
|
||||
JOYPAD_SDL,
|
||||
JOYPAD_APPLE,
|
||||
JOYPAD_QNX,
|
||||
|
||||
CAMERA_V4L2,
|
||||
CAMERA_RWEBCAM,
|
||||
CAMERA_ANDROID,
|
||||
@ -221,6 +234,34 @@ enum
|
||||
#define INPUT_DEFAULT_DRIVER INPUT_NULL
|
||||
#endif
|
||||
|
||||
#if defined(__CELLOS_LV2__)
|
||||
#define JOYPAD_DEFAULT_DRIVER JOYPAD_PS3
|
||||
#elif defined(HAVE_WINXINPUT)
|
||||
#define JOYPAD_DEFAULT_DRIVER JOYPAD_WINXINPUT
|
||||
#elif defined(GEKKO)
|
||||
#define JOYPAD_DEFAULT_DRIVER JOYPAD_GX
|
||||
#elif defined(_XBOX)
|
||||
#define JOYPAD_DEFAULT_DRIVER JOYPAD_XDK
|
||||
#elif defined(PSP)
|
||||
#define JOYPAD_DEFAULT_DRIVER JOYPAD_PSP
|
||||
#elif defined(HAVE_DINPUT)
|
||||
#define JOYPAD_DEFAULT_DRIVER JOYPAD_DINPUT
|
||||
#elif defined(HAVE_UDEV)
|
||||
#define JOYPAD_DEFAULT_DRIVER JOYPAD_UDEV
|
||||
#elif defined(__linux) && !defined(ANDROID)
|
||||
#define JOYPAD_DEFAULT_DRIVER JOYPAD_LINUXRAW
|
||||
#elif defined(ANDROID)
|
||||
#define JOYPAD_DEFAULT_DRIVER JOYPAD_ANDROID
|
||||
#elif defined(HAVE_SDL) || defined(HAVE_SDL2)
|
||||
#define JOYPAD_DEFAULT_DRIVER JOYPAD_SDL
|
||||
#elif defined(__MACH__)
|
||||
#define JOYPAD_DEFAULT_DRIVER JOYPAD_APPLE
|
||||
#elif defined(__QNX__)
|
||||
#define JOYPAD_DEFAULT_DRIVER JOYPAD_QNX
|
||||
#else
|
||||
#define JOYPAD_DEFAULT_DRIVER JOYPAD_NULL
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_V4L2)
|
||||
#define CAMERA_DEFAULT_DRIVER CAMERA_V4L2
|
||||
#elif defined(EMSCRIPTEN)
|
||||
|
7
driver.c
7
driver.c
@ -284,6 +284,12 @@ static const void *find_driver_nonempty(const char *label, int i,
|
||||
if (driver)
|
||||
strlcpy(str, input_drivers[i]->ident, sizeof_str);
|
||||
}
|
||||
else if (!strcmp(label, "input_joypad_driver"))
|
||||
{
|
||||
driver = joypad_drivers[i];
|
||||
if (driver)
|
||||
strlcpy(str, joypad_drivers[i]->ident, sizeof_str);
|
||||
}
|
||||
else if (!strcmp(label, "video_driver"))
|
||||
{
|
||||
driver = video_drivers[i];
|
||||
@ -694,7 +700,6 @@ static void find_input_driver(void)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void init_drivers_pre(void)
|
||||
{
|
||||
find_audio_driver();
|
||||
|
2
driver.h
2
driver.h
@ -690,6 +690,8 @@ extern menu_ctx_driver_t menu_ctx_lakka;
|
||||
extern menu_ctx_driver_backend_t menu_ctx_backend_common;
|
||||
extern menu_ctx_driver_backend_t menu_ctx_backend_lakka;
|
||||
|
||||
extern rarch_joypad_driver_t *joypad_drivers[];
|
||||
|
||||
#define check_netplay_flip_func(trigger_input) check_netplay_flip(BIND_PRESSED(trigger_input, RARCH_NETPLAY_FLIP), BIND_PRESSED(trigger_input, RARCH_FULLSCREEN_TOGGLE_KEY))
|
||||
#define check_overlay_func(input, old_input) rarch_check_overlay(BIND_PRESSED(input, RARCH_OVERLAY_NEXT), BIND_PRESSED(old_input, RARCH_OVERLAY_NEXT))
|
||||
#define check_oneshot_func(trigger_input) check_oneshot(BIND_PRESSED(trigger_input, RARCH_FRAMEADVANCE), BIND_PRESSED(trigger_input, RARCH_REWIND))
|
||||
|
@ -765,6 +765,7 @@ const char *config_get_default_video(void);
|
||||
const char *config_get_default_audio(void);
|
||||
const char *config_get_default_audio_resampler(void);
|
||||
const char *config_get_default_input(void);
|
||||
const char *config_get_default_joypad(void);
|
||||
#ifdef HAVE_MENU
|
||||
const char *config_get_default_menu(void);
|
||||
#endif
|
||||
|
@ -46,7 +46,7 @@
|
||||
|
||||
#include "../file.h"
|
||||
|
||||
static rarch_joypad_driver_t *joypad_drivers[] = {
|
||||
rarch_joypad_driver_t *joypad_drivers[] = {
|
||||
#ifndef IS_RETROLAUNCH
|
||||
#ifdef __CELLOS_LV2__
|
||||
&ps3_joypad,
|
||||
@ -105,7 +105,7 @@ const rarch_joypad_driver_t *input_joypad_init_driver(const char *ident)
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
return input_joypad_init_first();
|
||||
}
|
||||
|
||||
const rarch_joypad_driver_t *input_joypad_init_first(void)
|
||||
|
41
settings.c
41
settings.c
@ -176,6 +176,43 @@ const char *config_get_default_input(void)
|
||||
}
|
||||
}
|
||||
|
||||
const char *config_get_default_joypad(void)
|
||||
{
|
||||
switch (JOYPAD_DEFAULT_DRIVER)
|
||||
{
|
||||
case JOYPAD_PS3:
|
||||
return "ps3";
|
||||
case JOYPAD_WINXINPUT:
|
||||
return "winxinput";
|
||||
case JOYPAD_GX:
|
||||
return "gx";
|
||||
case JOYPAD_XDK:
|
||||
return "xdk";
|
||||
case JOYPAD_PSP:
|
||||
return "psp";
|
||||
case JOYPAD_DINPUT:
|
||||
return "dinput";
|
||||
case JOYPAD_UDEV:
|
||||
return "udev";
|
||||
case JOYPAD_LINUXRAW:
|
||||
return "linuxraw";
|
||||
case JOYPAD_ANDROID:
|
||||
return "android";
|
||||
case JOYPAD_SDL:
|
||||
#ifdef HAVE_SDL2
|
||||
return "sdl2";
|
||||
#else
|
||||
return "sdl";
|
||||
#endif
|
||||
case JOYPAD_APPLE:
|
||||
return "apple";
|
||||
case JOYPAD_QNX:
|
||||
return "qnx";
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef HAVE_MENU
|
||||
const char *config_get_default_menu(void)
|
||||
{
|
||||
@ -251,6 +288,7 @@ void config_set_defaults(void)
|
||||
const char *def_audio = config_get_default_audio();
|
||||
const char *def_audio_resampler = config_get_default_audio_resampler();
|
||||
const char *def_input = config_get_default_input();
|
||||
const char *def_joypad = config_get_default_joypad();
|
||||
#ifdef HAVE_MENU
|
||||
const char *def_menu = config_get_default_menu();
|
||||
#endif
|
||||
@ -279,6 +317,9 @@ void config_set_defaults(void)
|
||||
if (def_input)
|
||||
strlcpy(g_settings.input.driver,
|
||||
def_input, sizeof(g_settings.input.driver));
|
||||
if (def_joypad)
|
||||
strlcpy(g_settings.input.joypad_driver,
|
||||
def_input, sizeof(g_settings.input.joypad_driver));
|
||||
#ifdef HAVE_MENU
|
||||
if (def_menu)
|
||||
strlcpy(g_settings.menu.driver,
|
||||
|
@ -2304,7 +2304,7 @@ rarch_setting_t *setting_data_get_list(void)
|
||||
#ifdef HAVE_MENU
|
||||
CONFIG_STRING(g_settings.menu.driver, "menu_driver", "Menu Driver", config_get_default_menu(), GROUP_NAME, SUBGROUP_NAME, NULL, NULL) WITH_FLAGS(SD_FLAG_IS_DRIVER)
|
||||
#endif
|
||||
CONFIG_STRING(g_settings.input.joypad_driver, "input_joypad_driver", "Joypad Driver", "", GROUP_NAME, SUBGROUP_NAME, NULL, NULL) WITH_FLAGS(SD_FLAG_IS_DRIVER)
|
||||
CONFIG_STRING(g_settings.input.joypad_driver, "input_joypad_driver", "Joypad Driver", config_get_default_joypad(), GROUP_NAME, SUBGROUP_NAME, NULL, NULL) WITH_FLAGS(SD_FLAG_IS_DRIVER)
|
||||
CONFIG_STRING(g_settings.input.keyboard_layout, "input_keyboard_layout", "Keyboard Layout", "", GROUP_NAME, SUBGROUP_NAME, NULL, NULL) WITH_FLAGS(SD_FLAG_IS_DRIVER)
|
||||
|
||||
END_SUB_GROUP()
|
||||
|
Loading…
x
Reference in New Issue
Block a user