From 954d1bf605aafcb9742993507179bba095ec6360 Mon Sep 17 00:00:00 2001 From: sonninnos <45124675+sonninnos@users.noreply.github.com> Date: Mon, 7 Nov 2022 15:51:37 +0200 Subject: [PATCH] Driver independent disconnection notification (#14600) --- input/drivers_joypad/xinput_hybrid_joypad.c | 4 ---- input/drivers_joypad/xinput_joypad.c | 3 --- input/input_driver.c | 3 +++ tasks/task_autodetect.c | 6 ++---- 4 files changed, 5 insertions(+), 11 deletions(-) diff --git a/input/drivers_joypad/xinput_hybrid_joypad.c b/input/drivers_joypad/xinput_hybrid_joypad.c index 069f1533c0..d6660a3330 100644 --- a/input/drivers_joypad/xinput_hybrid_joypad.c +++ b/input/drivers_joypad/xinput_hybrid_joypad.c @@ -658,9 +658,6 @@ static void xinput_joypad_destroy(void) { unsigned i; - /* Run poll one last time in order to detect disconnections */ - xinput_joypad_poll(); - for (i = 0; i < 4; ++i) { g_xinput_states[i].xstate.dwPacketNumber = 0; @@ -687,7 +684,6 @@ static void xinput_joypad_destroy(void) g_xinput_block_pads = false; } - input_device_driver_t xinput_joypad = { xinput_joypad_init, xinput_joypad_query_pad, diff --git a/input/drivers_joypad/xinput_joypad.c b/input/drivers_joypad/xinput_joypad.c index 582ed821d9..2fbda42bab 100644 --- a/input/drivers_joypad/xinput_joypad.c +++ b/input/drivers_joypad/xinput_joypad.c @@ -362,9 +362,6 @@ static void xinput_joypad_destroy(void) { unsigned i; - /* Run poll one last time in order to detect disconnections */ - xinput_joypad_poll(); - for (i = 0; i < 4; ++i) { g_xinput_states[i].xstate.dwPacketNumber = 0; diff --git a/input/input_driver.c b/input/input_driver.c index ac3f623242..0e1367b1e4 100644 --- a/input/input_driver.c +++ b/input/input_driver.c @@ -2708,6 +2708,8 @@ void joypad_driver_reinit(void *data, const char *joypad_driver_name) { const input_device_driver_t *tmp = input_driver_st.primary_joypad; input_driver_st.primary_joypad = NULL; + /* Run poll one last time in order to detect disconnections */ + tmp->poll(); tmp->destroy(); } #ifdef HAVE_MFI @@ -2715,6 +2717,7 @@ void joypad_driver_reinit(void *data, const char *joypad_driver_name) { const input_device_driver_t *tmp = input_driver_st.secondary_joypad; input_driver_st.secondary_joypad = NULL; + tmp->poll(); tmp->destroy(); } #endif diff --git a/tasks/task_autodetect.c b/tasks/task_autodetect.c index b3d32f53ee..5bcad56050 100644 --- a/tasks/task_autodetect.c +++ b/tasks/task_autodetect.c @@ -819,14 +819,12 @@ static void input_autoconfigure_disconnect_handler(retro_task_t *task) autoconfig_handle->port + 1); if (!string_is_empty(autoconfig_handle->device_info.name)) { - task_title[_len ] = ' '; - task_title[_len+1] = '('; + task_title[_len ] = ':'; + task_title[_len+1] = ' '; task_title[_len+2] = '\0'; _len = strlcat(task_title, autoconfig_handle->device_info.name, sizeof(task_title)); - task_title[_len ] = ')'; - task_title[_len+1] = '\0'; } task_free_title(task);