ControllerInterface: Get rid of SetHwnd(), introduce Reinitialize()
Initialize now just takes the handle directly. Reinitialize is added because it is much more straightforward in comparison to doing the Shutdown-Initialize manually.
This commit is contained in:
parent
8912315596
commit
b7b2074cc2
|
@ -40,8 +40,7 @@ void Initialize(void* const hwnd)
|
||||||
for (unsigned int i=0; i<4; ++i)
|
for (unsigned int i=0; i<4; ++i)
|
||||||
s_config.controllers.push_back(new GCPad(i));
|
s_config.controllers.push_back(new GCPad(i));
|
||||||
|
|
||||||
g_controller_interface.SetHwnd(hwnd);
|
g_controller_interface.Initialize(hwnd);
|
||||||
g_controller_interface.Initialize();
|
|
||||||
|
|
||||||
// load the saved controller config
|
// load the saved controller config
|
||||||
s_config.LoadConfig(true);
|
s_config.LoadConfig(true);
|
||||||
|
|
|
@ -44,9 +44,7 @@ void Initialize(void* const hwnd, bool wait)
|
||||||
for (unsigned int i = WIIMOTE_CHAN_0; i<MAX_BBMOTES; ++i)
|
for (unsigned int i = WIIMOTE_CHAN_0; i<MAX_BBMOTES; ++i)
|
||||||
s_config.controllers.push_back(new WiimoteEmu::Wiimote(i));
|
s_config.controllers.push_back(new WiimoteEmu::Wiimote(i));
|
||||||
|
|
||||||
|
g_controller_interface.Initialize(hwnd);
|
||||||
g_controller_interface.SetHwnd(hwnd);
|
|
||||||
g_controller_interface.Initialize();
|
|
||||||
|
|
||||||
s_config.LoadConfig(false);
|
s_config.LoadConfig(false);
|
||||||
|
|
||||||
|
|
|
@ -745,8 +745,7 @@ void GamepadPage::RefreshDevices(wxCommandEvent&)
|
||||||
std::lock_guard<std::recursive_mutex> lk(m_config.controls_lock);
|
std::lock_guard<std::recursive_mutex> lk(m_config.controls_lock);
|
||||||
|
|
||||||
// refresh devices
|
// refresh devices
|
||||||
g_controller_interface.Shutdown();
|
g_controller_interface.Reinitialize();
|
||||||
g_controller_interface.Initialize();
|
|
||||||
|
|
||||||
// update all control references
|
// update all control references
|
||||||
m_config_dialog->UpdateControlReferences();
|
m_config_dialog->UpdateControlReferences();
|
||||||
|
|
|
@ -41,25 +41,27 @@ ControllerInterface g_controller_interface;
|
||||||
//
|
//
|
||||||
// Detect devices and inputs outputs / will make refresh function later
|
// Detect devices and inputs outputs / will make refresh function later
|
||||||
//
|
//
|
||||||
void ControllerInterface::Initialize()
|
void ControllerInterface::Initialize(void* const hwnd)
|
||||||
{
|
{
|
||||||
if (m_is_init)
|
if (m_is_init)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
m_hwnd = hwnd;
|
||||||
|
|
||||||
#ifdef CIFACE_USE_DINPUT
|
#ifdef CIFACE_USE_DINPUT
|
||||||
ciface::DInput::Init(m_devices, (HWND)m_hwnd);
|
ciface::DInput::Init(m_devices, (HWND)hwnd);
|
||||||
#endif
|
#endif
|
||||||
#ifdef CIFACE_USE_XINPUT
|
#ifdef CIFACE_USE_XINPUT
|
||||||
ciface::XInput::Init(m_devices);
|
ciface::XInput::Init(m_devices);
|
||||||
#endif
|
#endif
|
||||||
#ifdef CIFACE_USE_XLIB
|
#ifdef CIFACE_USE_XLIB
|
||||||
ciface::Xlib::Init(m_devices, m_hwnd);
|
ciface::Xlib::Init(m_devices, hwnd);
|
||||||
#ifdef CIFACE_USE_X11_XINPUT2
|
#ifdef CIFACE_USE_X11_XINPUT2
|
||||||
ciface::XInput2::Init(m_devices, m_hwnd);
|
ciface::XInput2::Init(m_devices, hwnd);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#ifdef CIFACE_USE_OSX
|
#ifdef CIFACE_USE_OSX
|
||||||
ciface::OSX::Init(m_devices, m_hwnd);
|
ciface::OSX::Init(m_devices, hwnd);
|
||||||
#endif
|
#endif
|
||||||
#ifdef CIFACE_USE_SDL
|
#ifdef CIFACE_USE_SDL
|
||||||
ciface::SDL::Init(m_devices);
|
ciface::SDL::Init(m_devices);
|
||||||
|
@ -71,6 +73,15 @@ void ControllerInterface::Initialize()
|
||||||
m_is_init = true;
|
m_is_init = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ControllerInterface::Reinitialize()
|
||||||
|
{
|
||||||
|
if (!m_is_init)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Shutdown();
|
||||||
|
Initialize(m_hwnd);
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// DeInit
|
// DeInit
|
||||||
//
|
//
|
||||||
|
@ -119,16 +130,6 @@ void ControllerInterface::Shutdown()
|
||||||
m_is_init = false;
|
m_is_init = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// SetHwnd
|
|
||||||
//
|
|
||||||
// Sets the hwnd used for some crap when initializing, use before calling Init
|
|
||||||
//
|
|
||||||
void ControllerInterface::SetHwnd( void* const hwnd )
|
|
||||||
{
|
|
||||||
m_hwnd = hwnd;
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// UpdateInput
|
// UpdateInput
|
||||||
//
|
//
|
||||||
|
|
|
@ -114,8 +114,8 @@ public:
|
||||||
|
|
||||||
ControllerInterface() : m_is_init(false), m_hwnd(nullptr) {}
|
ControllerInterface() : m_is_init(false), m_hwnd(nullptr) {}
|
||||||
|
|
||||||
void SetHwnd(void* const hwnd);
|
void Initialize(void* const hwnd);
|
||||||
void Initialize();
|
void Reinitialize();
|
||||||
void Shutdown();
|
void Shutdown();
|
||||||
bool IsInit() const { return m_is_init; }
|
bool IsInit() const { return m_is_init; }
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue