diff --git a/Makefile.common b/Makefile.common index afc39be629..9abfa0afc3 100644 --- a/Makefile.common +++ b/Makefile.common @@ -183,7 +183,7 @@ OBJ += frontend/frontend.o \ $(LIBRETRO_COMM_DIR)/queues/message_queue.o \ managers/state_manager.o \ gfx/drivers_font_renderer/bitmapfont.o \ - input/input_autodetect.o \ + tasks/task_autodetect.o \ input/input_autodetect_builtin.o \ input/input_joypad_driver.o \ input/input_config.o \ diff --git a/griffin/griffin.c b/griffin/griffin.c index 3a5211a7b0..61d8125798 100644 --- a/griffin/griffin.c +++ b/griffin/griffin.c @@ -408,7 +408,7 @@ FONTS /*============================================================ INPUT ============================================================ */ -#include "../input/input_autodetect.c" +#include "../tasks/task_autodetect.c" #include "../input/input_joypad_driver.c" #include "../input/input_config.c" #include "../input/input_keymaps.c" diff --git a/input/drivers/android_input.c b/input/drivers/android_input.c index bafd67cdb1..8a5ac71be8 100644 --- a/input/drivers/android_input.c +++ b/input/drivers/android_input.c @@ -34,7 +34,7 @@ #endif #include "../../frontend/drivers/platform_linux.h" -#include "../input_autodetect.h" +#include "../tasks/tasks_internal.h" #include "../input_config.h" #include "../input_joypad_driver.h" #include "../drivers_keyboard/keyboard_event_android.h" diff --git a/input/drivers/dinput.c b/input/drivers/dinput.c index d9f63127ed..c5f96d0ec5 100644 --- a/input/drivers/dinput.c +++ b/input/drivers/dinput.c @@ -48,7 +48,7 @@ #include "../../configuration.h" #include "../../verbosity.h" -#include "../input_autodetect.h" +#include "../tasks/tasks_internal.h" #include "../input_config.h" #include "../input_joypad_driver.h" #include "../input_keymaps.h" diff --git a/input/drivers/qnx_input.c b/input/drivers/qnx_input.c index 76547897ba..8ad9a90d37 100644 --- a/input/drivers/qnx_input.c +++ b/input/drivers/qnx_input.c @@ -29,7 +29,7 @@ #include "../../configuration.h" #include "../input_joypad_driver.h" -#include "../input_autodetect.h" +#include "../tasks/tasks_internal.h" #define MAX_PADS 8 diff --git a/input/drivers/rwebinput_input.c b/input/drivers/rwebinput_input.c index b1d378befa..a173bd804e 100644 --- a/input/drivers/rwebinput_input.c +++ b/input/drivers/rwebinput_input.c @@ -20,7 +20,7 @@ #include #include "../input_joypad_driver.h" -#include "../input_autodetect.h" +#include "../tasks/tasks_internal.h" #include "../input_keyboard.h" #include "../input_config.h" #include "../input_keymaps.h" diff --git a/input/drivers/sdl_input.c b/input/drivers/sdl_input.c index 2d40ea486b..916b68e2c9 100644 --- a/input/drivers/sdl_input.c +++ b/input/drivers/sdl_input.c @@ -27,7 +27,7 @@ #include "../../gfx/video_context_driver.h" #include "../../configuration.h" #include "../../verbosity.h" -#include "../input_autodetect.h" +#include "../tasks/tasks_internal.h" #include "../input_config.h" #include "../input_joypad_driver.h" #include "../input_keymaps.h" diff --git a/input/drivers_hid/iohidmanager_hid.c b/input/drivers_hid/iohidmanager_hid.c index e69120c825..32be73af2b 100644 --- a/input/drivers_hid/iohidmanager_hid.c +++ b/input/drivers_hid/iohidmanager_hid.c @@ -23,7 +23,7 @@ #include "../connect/joypad_connection.h" #include "../input_defines.h" -#include "../input_autodetect.h" +#include "../tasks/tasks_internal.h" #include "../input_hid_driver.h" #include "../../configuration.h" #include "../../verbosity.h" diff --git a/input/drivers_hid/libusb_hid.c b/input/drivers_hid/libusb_hid.c index 325b8462f7..81db02092c 100644 --- a/input/drivers_hid/libusb_hid.c +++ b/input/drivers_hid/libusb_hid.c @@ -25,7 +25,7 @@ #include "../connect/joypad_connection.h" #include "../input_defines.h" -#include "../input_autodetect.h" +#include "../tasks/tasks_internal.h" #include "../input_config.h" #include "../input_driver.h" #include "../input_hid_driver.h" diff --git a/input/drivers_hid/wiiusb_hid.c b/input/drivers_hid/wiiusb_hid.c index 8e71f5c3a8..cffa96b7f0 100644 --- a/input/drivers_hid/wiiusb_hid.c +++ b/input/drivers_hid/wiiusb_hid.c @@ -20,7 +20,7 @@ #include "../input_defines.h" #include "../connect/joypad_connection.h" -#include "../input_autodetect.h" +#include "../tasks/tasks_internal.h" #include "../input_hid_driver.h" #include "../../verbosity.h" diff --git a/input/drivers_joypad/ctr_joypad.c b/input/drivers_joypad/ctr_joypad.c index 970b695599..c341a54213 100644 --- a/input/drivers_joypad/ctr_joypad.c +++ b/input/drivers_joypad/ctr_joypad.c @@ -20,7 +20,9 @@ #include "../input_joypad_driver.h" #include "../input_driver.h" -#include "../input_autodetect.h" + +#include "../../tasks/tasks_internal.h" + #include "../../configuration.h" #include "../../runloop.h" #include "../../configuration.h" diff --git a/input/drivers_joypad/dinput_joypad.c b/input/drivers_joypad/dinput_joypad.c index 9a8b517998..f3ceddb62e 100644 --- a/input/drivers_joypad/dinput_joypad.c +++ b/input/drivers_joypad/dinput_joypad.c @@ -28,7 +28,7 @@ #include "../../config.h" #endif -#include "../input_autodetect.h" +#include "../../tasks/tasks_internal.h" #include "../input_config.h" #include "../input_joypad_driver.h" #include "../input_keymaps.h" diff --git a/input/drivers_joypad/gx_joypad.c b/input/drivers_joypad/gx_joypad.c index e0ee1aa4ae..d01e90970a 100644 --- a/input/drivers_joypad/gx_joypad.c +++ b/input/drivers_joypad/gx_joypad.c @@ -15,15 +15,15 @@ * If not, see . */ -#include "../../configuration.h" -#include "../input_autodetect.h" - #include #include #ifdef HW_RVL #include #endif +#include "../../configuration.h" +#include "../../tasks/tasks_internal.h" + #ifdef GEKKO #define WPADInit WPAD_Init #define WPADDisconnect WPAD_Disconnect diff --git a/input/drivers_joypad/hid_joypad.c b/input/drivers_joypad/hid_joypad.c index 11edf0dfa0..5273de9098 100644 --- a/input/drivers_joypad/hid_joypad.c +++ b/input/drivers_joypad/hid_joypad.c @@ -14,7 +14,7 @@ * If not, see . */ -#include "../input_autodetect.h" +#include "../../tasks/tasks_internal.h" #include "../input_hid_driver.h" #include "../input_driver.h" diff --git a/input/drivers_joypad/linuxraw_joypad.c b/input/drivers_joypad/linuxraw_joypad.c index 263ebd8d65..0ac222536a 100644 --- a/input/drivers_joypad/linuxraw_joypad.c +++ b/input/drivers_joypad/linuxraw_joypad.c @@ -31,11 +31,11 @@ #include #include "../common/epoll_common.h" -#include "../input_autodetect.h" #include "../input_driver.h" #include "../../configuration.h" #include "../../runloop.h" #include "../../verbosity.h" +#include "../../tasks/tasks_internal.h" #define NUM_BUTTONS 32 #define NUM_AXES 32 diff --git a/input/drivers_joypad/parport_joypad.c b/input/drivers_joypad/parport_joypad.c index cf201e0e89..3c10fab04e 100644 --- a/input/drivers_joypad/parport_joypad.c +++ b/input/drivers_joypad/parport_joypad.c @@ -25,7 +25,7 @@ #include -#include "../input_autodetect.h" +#include "../../tasks/tasks_internal.h" #include "../input_driver.h" #include "../../configuration.h" #include "../../verbosity.h" diff --git a/input/drivers_joypad/ps3_joypad.c b/input/drivers_joypad/ps3_joypad.c index 1950473d3a..665b35d56d 100644 --- a/input/drivers_joypad/ps3_joypad.c +++ b/input/drivers_joypad/ps3_joypad.c @@ -17,7 +17,7 @@ #include #include -#include "../input_autodetect.h" +#include "../../tasks/tasks_internal.h" #include "../../configuration.h" diff --git a/input/drivers_joypad/psp_joypad.c b/input/drivers_joypad/psp_joypad.c index 66184d937e..b48011f127 100644 --- a/input/drivers_joypad/psp_joypad.c +++ b/input/drivers_joypad/psp_joypad.c @@ -16,7 +16,7 @@ #include -#include "../input_autodetect.h" +#include "../../tasks/tasks_internal.h" #include "../../configuration.h" diff --git a/input/drivers_joypad/qnx_joypad.c b/input/drivers_joypad/qnx_joypad.c index 30c9646458..c0afa2b655 100644 --- a/input/drivers_joypad/qnx_joypad.c +++ b/input/drivers_joypad/qnx_joypad.c @@ -15,7 +15,7 @@ * If not, see . */ -#include "../input_autodetect.h" +#include "../../tasks/tasks_internal.h" #include "../../configuration.h" diff --git a/input/drivers_joypad/sdl_joypad.c b/input/drivers_joypad/sdl_joypad.c index fa761c93c3..705f8b3ff8 100644 --- a/input/drivers_joypad/sdl_joypad.c +++ b/input/drivers_joypad/sdl_joypad.c @@ -22,7 +22,7 @@ #include "../../configuration.h" #include "../input_driver.h" -#include "../input_autodetect.h" +#include "../../tasks/tasks_internal.h" #include "../../verbosity.h" typedef struct _sdl_joypad diff --git a/input/drivers_joypad/udev_joypad.c b/input/drivers_joypad/udev_joypad.c index d57609ab38..bb01a6f803 100644 --- a/input/drivers_joypad/udev_joypad.c +++ b/input/drivers_joypad/udev_joypad.c @@ -31,7 +31,7 @@ #include #include -#include "../input_autodetect.h" +#include "../../tasks/tasks_internal.h" #include "../input_driver.h" #include "../common/udev_common.h" diff --git a/input/drivers_joypad/wiiu_joypad.c b/input/drivers_joypad/wiiu_joypad.c index 0fdaf9a1e8..7c8d49da59 100644 --- a/input/drivers_joypad/wiiu_joypad.c +++ b/input/drivers_joypad/wiiu_joypad.c @@ -22,7 +22,7 @@ #include "../input_joypad_driver.h" #include "../input_driver.h" -#include "../input_autodetect.h" +#include "../../tasks/tasks_internal.h" #include "../../configuration.h" #include "../../runloop.h" #include "../../configuration.h" diff --git a/input/drivers_joypad/xdk_joypad.c b/input/drivers_joypad/xdk_joypad.c index 6ba0315f0d..de466bece5 100644 --- a/input/drivers_joypad/xdk_joypad.c +++ b/input/drivers_joypad/xdk_joypad.c @@ -17,7 +17,7 @@ #include #include "../../configuration.h" -#include "../input_autodetect.h" +#include "../../tasks/tasks_internal.h" static uint64_t pad_state[MAX_PADS]; static int16_t analog_state[MAX_PADS][2][2]; diff --git a/input/drivers_joypad/xinput_joypad.c b/input/drivers_joypad/xinput_joypad.c index df03433ce4..bbcca9a3b4 100644 --- a/input/drivers_joypad/xinput_joypad.c +++ b/input/drivers_joypad/xinput_joypad.c @@ -35,7 +35,7 @@ #include "../../config.h" #endif -#include "../input_autodetect.h" +#include "../../tasks/tasks_internal.h" #include "../input_config.h" #include "../../configuration.h" diff --git a/input/input_autodetect.h b/input/input_autodetect.h deleted file mode 100644 index d92d386146..0000000000 --- a/input/input_autodetect.h +++ /dev/null @@ -1,38 +0,0 @@ -/* RetroArch - A frontend for libretro. - * Copyright (C) 2010-2014 - Hans-Kristian Arntzen - * Copyright (C) 2011-2016 - Daniel De Matteis - * - * RetroArch is free software: you can redistribute it and/or modify it under the terms - * of the GNU General Public License as published by the Free Software Found- - * ation, either version 3 of the License, or (at your option) any later version. - * - * RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; - * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR - * PURPOSE. See the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along with RetroArch. - * If not, see . - */ - -#ifndef _INPUT_AUTODETECT_H -#define _INPUT_AUTODETECT_H - -#include - -#include - -typedef struct autoconfig_params -{ - char name[255]; - char driver[255]; - char display_name[255]; - unsigned idx; - int32_t vid; - int32_t pid; -} autoconfig_params_t; - -bool input_autoconfigure_connect(autoconfig_params_t *params); - -void input_autoconfigure_disconnect(unsigned i, const char *ident); - -#endif diff --git a/input/input_autodetect_builtin.c b/input/input_autodetect_builtin.c index bd61ac9886..a74705622f 100644 --- a/input/input_autodetect_builtin.c +++ b/input/input_autodetect_builtin.c @@ -19,7 +19,7 @@ #include "../config.h" #endif -#include "input_autodetect.h" +#include "../tasks/tasks_internal.h" #include "input_config.h" #define DECL_BTN(btn, bind) "input_" #btn "_btn = " #bind "\n" diff --git a/menu/cbs/menu_cbs_get_value.c b/menu/cbs/menu_cbs_get_value.c index 271a5977fb..4bae7707e7 100644 --- a/menu/cbs/menu_cbs_get_value.c +++ b/menu/cbs/menu_cbs_get_value.c @@ -28,7 +28,7 @@ #include "../menu_shader.h" #include "../menu_display.h" -#include "../../input/input_autodetect.h" +#include "../../tasks/tasks_internal.h" #include "../../input/input_config.h" #include "../../core.h" diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 98b9f43bdb..750314c6f4 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -70,7 +70,7 @@ #include "../audio/audio_driver.h" #include "../audio/audio_resampler_driver.h" #include "../input/input_config.h" -#include "../input/input_autodetect.h" +#include "../tasks/tasks_internal.h" #include "../config.def.h" #include "../ui/ui_companion_driver.h" #include "../performance_counters.h" diff --git a/menu/widgets/menu_dialog.c b/menu/widgets/menu_dialog.c index 19205dcbfb..a4f19879ab 100644 --- a/menu/widgets/menu_dialog.c +++ b/menu/widgets/menu_dialog.c @@ -33,7 +33,7 @@ #include "../../retroarch.h" #include "../../configuration.h" -#include "../../input/input_autodetect.h" +#include "../../tasks/tasks_internal.h" #include "../../input/input_config.h" static bool menu_dialog_pending_push = false; diff --git a/setting_list.c b/setting_list.c index 97fcfca679..5395c9ef2c 100644 --- a/setting_list.c +++ b/setting_list.c @@ -32,7 +32,7 @@ #include "configuration.h" #include "config.def.h" #include "input/input_config.h" -#include "input/input_autodetect.h" +#include "tasks/tasks_internal.h" #include "setting_list.h" rarch_setting_t setting_terminator_setting(void) diff --git a/input/input_autodetect.c b/tasks/task_autodetect.c similarity index 90% rename from input/input_autodetect.c rename to tasks/task_autodetect.c index c1b7413bc3..c1e8eb398b 100644 --- a/input/input_autodetect.c +++ b/tasks/task_autodetect.c @@ -14,6 +14,8 @@ * If not, see . */ +/* TODO/FIXME - turn this into actual task */ + #include #include #include @@ -22,16 +24,16 @@ #include #include -#include "input_config.h" -#include "input_autodetect.h" +#include "../input/input_config.h" #include "../configuration.h" #include "../file_path_special.h" #include "../list_special.h" -#include "../msg_hash.h" #include "../runloop.h" #include "../verbosity.h" +#include "tasks_internal.h" + extern const char* const input_builtin_autoconfs[]; /* Adds an index for devices with the same name, @@ -78,12 +80,12 @@ static int input_autoconfigure_joypad_try_from_conf(config_file_t *conf, { char ident[256]; char input_driver[32]; - int tmp_int = 0; - int input_vid = 0; - int input_pid = 0; - int score = 0; + int tmp_int = 0; + int input_vid = 0; + int input_pid = 0; + int score = 0; - ident[0] = input_driver[0] = '\0'; + ident[0] = input_driver[0] = '\0'; config_get_array(conf, "input_device", ident, sizeof(ident)); config_get_array(conf, "input_driver", input_driver, sizeof(input_driver)); @@ -299,30 +301,31 @@ static bool input_autoconfigure_joypad_init(autoconfig_params_t *params) bool input_autoconfigure_connect(autoconfig_params_t *params) { - char msg[255]; - - msg[0] = '\0'; - if (!input_autoconfigure_joypad_init(params)) - goto error; + return false; if (string_is_empty(params->name)) - goto error; + return false; - if (input_autoconfigure_joypad_from_conf_dir(params)) - return true; - if (input_autoconfigure_joypad_from_conf_internal(params)) - return true; + if ( !input_autoconfigure_joypad_from_conf_dir(params) + && !input_autoconfigure_joypad_from_conf_internal(params)) + { + char msg[255]; - RARCH_LOG("Autodetect: no profiles found for %s (%d/%d).\n", - params->name, params->vid, params->pid); - snprintf(msg, sizeof(msg), "%s (%ld/%ld) %s.", - params->name, (long)params->vid, (long)params->pid, - msg_hash_to_str(MSG_DEVICE_NOT_CONFIGURED)); - runloop_msg_queue_push(msg, 2, 60, false); + msg[0] = '\0'; -error: - return false; + RARCH_LOG("Autodetect: no profiles found for %s (%d/%d).\n", + params->name, params->vid, params->pid); + + snprintf(msg, sizeof(msg), "%s (%ld/%ld) %s.", + params->name, (long)params->vid, (long)params->pid, + msg_hash_to_str(MSG_DEVICE_NOT_CONFIGURED)); + runloop_msg_queue_push(msg, 2, 60, false); + + return false; + } + + return true; } void input_autoconfigure_disconnect(unsigned i, const char *ident) diff --git a/tasks/tasks_internal.h b/tasks/tasks_internal.h index b48fd397c8..88f226538f 100644 --- a/tasks/tasks_internal.h +++ b/tasks/tasks_internal.h @@ -71,6 +71,15 @@ typedef struct nbio_handle unsigned status; } nbio_handle_t; +typedef struct autoconfig_params +{ + char name[255]; + char driver[255]; + char display_name[255]; + unsigned idx; + int32_t vid; + int32_t pid; +} autoconfig_params_t; #ifdef HAVE_NETWORKING typedef struct @@ -158,6 +167,10 @@ void *savefile_ptr_get(void); void path_init_savefile_new(void); +bool input_autoconfigure_connect(autoconfig_params_t *params); + +void input_autoconfigure_disconnect(unsigned i, const char *ident); + RETRO_END_DECLS #endif