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:
Lioncash 2014-10-13 12:45:47 -04:00
parent 8912315596
commit b7b2074cc2
5 changed files with 21 additions and 24 deletions

View File

@ -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);

View File

@ -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);

View File

@ -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();

View File

@ -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
// //

View File

@ -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; }