From: Toni Wilen Date: Fri, 23 Jan 2015 17:33:37 +0000 (+0200) Subject: Restore input device rawinput/directinput detection mode before detecting new inserte... X-Git-Tag: 3100~107 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=ae8618fd356f9d0b40bf127e7730824b4addc2ed;p=francis%2Fwinuae.git Restore input device rawinput/directinput detection mode before detecting new inserted devices(s) --- diff --git a/od-win32/dinput.cpp b/od-win32/dinput.cpp index f7ba0a84..390df6d9 100644 --- a/od-win32/dinput.cpp +++ b/od-win32/dinput.cpp @@ -146,6 +146,7 @@ static int rawhid; static bool rawinput_enabled_mouse, rawinput_enabled_keyboard; static bool rawinput_decided; static bool rawhid_found; +static int rawinput_enabled_hid_reset; static uae_s16 axisold[MAX_INPUT_DEVICES][256], buttonold[MAX_INPUT_DEVICES][256]; @@ -2731,6 +2732,11 @@ static int di_do_init (void) di_dev_free (&di_keyboard[i]); } + if (rawinput_enabled_hid_reset) { + rawinput_enabled_hid = rawinput_enabled_hid_reset; + rawinput_enabled_hid_reset = 0; + } + if (!os_vista && rawinput_enabled_hid < 0) rawinput_enabled_hid = 0; @@ -2751,8 +2757,11 @@ static int di_do_init (void) rawinput_enabled_mouse = num_mouse > 0; rawinput_decided = true; } - if (!rawhid_found) + if (!rawhid_found) { + // didn't find anything but was enabled? Try again next time. + rawinput_enabled_hid_reset = rawinput_enabled_hid; rawinput_enabled_hid = 0; + } if (!no_directinput || !rawinput_enabled_keyboard || !rawinput_enabled_mouse) { hr = DirectInput8Create (hInst, DIRECTINPUT_VERSION, IID_IDirectInput8, (LPVOID *)&g_lpdi, NULL);