From 25aca8cc4a7bfa764d1381dd57fd6e75d7039c26 Mon Sep 17 00:00:00 2001 From: Jordan Woyak Date: Tue, 22 Jun 2010 08:30:33 +0000 Subject: [PATCH] GCPad/New Wiimote: Fixed issue 2848 (profiles not saving). Renamed DInput mouse axes to "Axis [XYZ][-+]" from "Mouse XYZ...". Minor cleanup/warning removal. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5767 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/DolphinWX/Src/NetPlay.cpp | 6 ++- .../ControllerInterface.cpp | 42 +++++++------------ .../ControllerInterface/ControllerInterface.h | 11 ++--- .../DirectInput/DirectInputMouse.cpp | 2 +- Source/Core/InputUICommon/Src/ConfigDiag.cpp | 31 ++++++-------- 5 files changed, 38 insertions(+), 54 deletions(-) diff --git a/Source/Core/DolphinWX/Src/NetPlay.cpp b/Source/Core/DolphinWX/Src/NetPlay.cpp index e3e6df601f..ffdaf841aa 100644 --- a/Source/Core/DolphinWX/Src/NetPlay.cpp +++ b/Source/Core/DolphinWX/Src/NetPlay.cpp @@ -372,7 +372,8 @@ u8 CSIDevice_GCController::NetPlay_GetPadNum(u8 numPAD) // called from ---CPU--- thread // wiimote update / used for frame counting -void CWII_IPC_HLE_Device_usb_oh1_57e_305::NetPlay_WiimoteUpdate(int _number) +//void CWII_IPC_HLE_Device_usb_oh1_57e_305::NetPlay_WiimoteUpdate(int _number) +void CWII_IPC_HLE_Device_usb_oh1_57e_305::NetPlay_WiimoteUpdate(int) { //CritLocker crit(::crit_netplay_ptr); @@ -394,7 +395,8 @@ int CWII_IPC_HLE_WiiMote::NetPlay_GetWiimoteNum(int _number) // called from ---CPU--- thread // intercept wiimote input callback -bool CWII_IPC_HLE_WiiMote::NetPlay_WiimoteInput(int _number, u16 _channelID, const void* _pData, u32& _Size) +//bool CWII_IPC_HLE_WiiMote::NetPlay_WiimoteInput(int _number, u16 _channelID, const void* _pData, u32& _Size) +bool CWII_IPC_HLE_WiiMote::NetPlay_WiimoteInput(int, u16, const void*, u32&) { CritLocker crit(::crit_netplay_ptr); diff --git a/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.cpp b/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.cpp index 88571b5a41..2888465487 100644 --- a/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.cpp +++ b/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.cpp @@ -327,11 +327,11 @@ void ControllerInterface::DeviceQualifier::FromDevice(const ControllerInterface: source= dev->GetSource(); } -bool ControllerInterface::Device::operator==(const ControllerInterface::DeviceQualifier& devq) const +bool ControllerInterface::DeviceQualifier::operator==(const ControllerInterface::Device* const dev) const { - if (GetId() == devq.cid) - if (GetName() == devq.name) - if (GetSource() == devq.source) + if (dev->GetId() == cid) + if (dev->GetName() == name) + if (dev->GetSource() == source) return true; return false; } @@ -390,11 +390,7 @@ void ControllerInterface::UpdateReference(ControllerInterface::ControlReference* devq.FromString(dev_str); // find device - std::vector::const_iterator di = FindDevice(m_devices, devq); - - - if (m_devices.end() != di) - devc.device = *di; + devc.device = FindDevice(devq); if (devc.device) { @@ -407,10 +403,9 @@ void ControllerInterface::UpdateReference(ControllerInterface::ControlReference* // FIXME: Use std::find instead of a for loop // i = std::find(devc.device->Inputs().begin(), devc.device->Inputs().end(), ctrl_str); - for(i = devc.device->Inputs().begin(); i < devc.device->Inputs().end(); ++i) { + for(i = devc.device->Inputs().begin(); i < devc.device->Inputs().end(); ++i) if(*(*i) == ctrl_str) break; - } if (devc.device->Inputs().end() != i) { @@ -424,11 +419,9 @@ void ControllerInterface::UpdateReference(ControllerInterface::ControlReference* // FIXME: Use std::find instead of a for loop // i = std::find(devc.device->Outputs().begin(), devc.device->Outputs().end(), ctrl_str); - for(i = devc.device->Outputs().begin(); i < devc.device->Outputs().end(); ++i) { + for(i = devc.device->Outputs().begin(); i < devc.device->Outputs().end(); ++i) if(*(*i) == ctrl_str) break; - } - if (devc.device->Outputs().end() != i) { @@ -455,19 +448,16 @@ void ControllerInterface::UpdateReference(ControllerInterface::ControlReference* } } -std::vector::const_iterator FindDevice( - const std::vector& devices, const ControllerInterface::DeviceQualifier& devq) { - - std::vector::const_iterator di; +ControllerInterface::Device* ControllerInterface::FindDevice(const ControllerInterface::DeviceQualifier& devq) const +{ + std::vector::const_iterator + di = m_devices.begin(), + de = m_devices.end(); + for (; di!=de; ++di) + if (devq == *di) + return *di; - // FIXME: Use std::find instead of a for loop - // di = std::find(m_devices.begin(), m_devices.end(), devq); - for(di = devices.begin(); di < devices.end(); ++di) { - if(*(*di) == devq) - break; - } - - return di; + return NULL; } // diff --git a/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.h b/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.h index 68db45fa4a..15e7ab6180 100644 --- a/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.h +++ b/Source/Core/InputCommon/Src/ControllerInterface/ControllerInterface.h @@ -64,7 +64,7 @@ public: public: virtual std::string GetName() const = 0; virtual ~Control() {} - virtual bool operator==(const std::string& name) const; + bool operator==(const std::string& name) const; }; // @@ -104,8 +104,6 @@ public: virtual void ClearInputState(); - virtual bool operator==(const DeviceQualifier& devq) const; - const std::vector& Inputs() const { return m_inputs; } const std::vector& Outputs() const { return m_outputs; } @@ -135,6 +133,7 @@ public: void FromString(const std::string& str); std::string ToString() const; bool operator==(const DeviceQualifier& devq) const; + bool operator==(const Device* const dev) const; std::string source; int cid; @@ -219,7 +218,8 @@ public: bool UpdateInput(); bool UpdateOutput(); - const std::vector& Devices() const { return m_devices; } + const std::vector& Devices() const { return m_devices; } + Device* FindDevice(const DeviceQualifier& devq) const; private: bool m_is_init; @@ -227,7 +227,4 @@ private: void* m_hwnd; }; -std::vector::const_iterator FindDevice( - const std::vector& devices, const ControllerInterface::DeviceQualifier& devq); - #endif diff --git a/Source/Core/InputCommon/Src/ControllerInterface/DirectInput/DirectInputMouse.cpp b/Source/Core/InputCommon/Src/ControllerInterface/DirectInput/DirectInputMouse.cpp index 122582bf4f..acf762386c 100644 --- a/Source/Core/InputCommon/Src/ControllerInterface/DirectInput/DirectInputMouse.cpp +++ b/Source/Core/InputCommon/Src/ControllerInterface/DirectInput/DirectInputMouse.cpp @@ -153,7 +153,7 @@ std::string Mouse::Button::GetName() const std::string Mouse::Axis::GetName() const { - std::string tmpstr("Mouse "); + std::string tmpstr("Axis "); tmpstr += "XYZ"[m_index]; tmpstr += ( m_range>0 ? '+' : '-' ); return tmpstr; } diff --git a/Source/Core/InputUICommon/Src/ConfigDiag.cpp b/Source/Core/InputUICommon/Src/ConfigDiag.cpp index f844e489cd..53ad28f796 100644 --- a/Source/Core/InputUICommon/Src/ConfigDiag.cpp +++ b/Source/Core/InputUICommon/Src/ConfigDiag.cpp @@ -192,17 +192,15 @@ void ControlDialog::UpdateListContents() { control_lbox->Clear(); - std::vector::const_iterator di = - FindDevice(m_plugin.controller_interface.Devices(), m_devq); - - if (m_plugin.controller_interface.Devices().end() != di) + ControllerInterface::Device* const dev = m_plugin.controller_interface.FindDevice(m_devq); + if (dev) { if (control_reference->is_input) { // for inputs std::vector::const_iterator - i = (*di)->Inputs().begin(), - e = (*di)->Inputs().end(); + i = dev->Inputs().begin(), + e = dev->Inputs().end(); for (; i!=e; ++i) control_lbox->Append(WXSTR_FROM_STR((*i)->GetName())); } @@ -210,8 +208,8 @@ void ControlDialog::UpdateListContents() { // for outputs std::vector::const_iterator - i = (*di)->Outputs().begin(), - e = (*di)->Outputs().end(); + i = dev->Outputs().begin(), + e = dev->Outputs().end(); for (; i!=e; ++i) control_lbox->Append(WXSTR_FROM_STR((*i)->GetName())); } @@ -411,15 +409,13 @@ void ControlDialog::DetectControl(wxCommandEvent& event) wxButton* const btn = (wxButton*)event.GetEventObject(); const wxString lbl = btn->GetLabel(); - std::vector::const_iterator di = - FindDevice(m_plugin.controller_interface.Devices(), m_devq); - - if (m_plugin.controller_interface.Devices().end() != di) + ControllerInterface::Device* const dev = m_plugin.controller_interface.FindDevice(m_devq); + if (dev) { btn->SetLabel(wxT("[ waiting ]")); m_plugin.controls_crit.Enter(); // enter - ControllerInterface::Device::Control* const ctrl = control_reference->Detect(DETECT_WAIT_TIME, *di); + ControllerInterface::Device::Control* const ctrl = control_reference->Detect(DETECT_WAIT_TIME, dev); // if we got input, select it in the list if (ctrl) @@ -436,15 +432,13 @@ void GamepadPage::DetectControl( wxCommandEvent& event ) ControlButton* btn = (ControlButton*)event.GetEventObject(); // find device :/ - const std::vector::const_iterator di = - FindDevice(m_plugin.controller_interface.Devices(), controller->default_device); - - if (m_plugin.controller_interface.Devices().end() != di) + ControllerInterface::Device* const dev = m_plugin.controller_interface.FindDevice(controller->default_device); + if (dev) { btn->SetLabel(wxT("[ waiting ]")); m_plugin.controls_crit.Enter(); // enter - ControllerInterface::Device::Control* const ctrl = btn->control_reference->Detect(DETECT_WAIT_TIME, *di); + ControllerInterface::Device::Control* const ctrl = btn->control_reference->Detect(DETECT_WAIT_TIME, dev); // if we got input, update expression and reference if (ctrl) @@ -561,6 +555,7 @@ void GamepadPage::SaveProfile( wxCommandEvent& event ) { std::string fname; GamepadPage::GetProfilePath(fname); + File::CreateFullPath(fname.c_str()); if (false == fname.empty()) {