From d91a5abba1d66948cc43cc7a6c80827ede061bc8 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Thu, 30 Jan 2014 19:51:21 -0500 Subject: [PATCH 1/5] Light cleanup to a little bit of InputCommon. Replaces much of the iterators that litter this section of the codebase. Also clean up a little bit of the comments that describe the interface classes. --- Source/Core/InputCommon/ControllerEmu.cpp | 149 ++++++------------ Source/Core/InputCommon/ControllerEmu.h | 60 +++---- .../ControllerInterface.cpp | 80 +++++----- .../ControllerInterface/ControllerInterface.h | 40 ++--- .../DInput/DInputJoystick.cpp | 134 ++++++++-------- .../DInput/DInputJoystick.h | 22 +-- .../DInput/DInputKeyboardMouse.cpp | 12 +- .../DInput/DInputKeyboardMouse.h | 16 +- .../ControllerInterface/Device.cpp | 79 ++++------ .../InputCommon/ControllerInterface/Device.h | 34 ++-- Source/Core/InputCommon/GCPadStatus.h | 20 +-- Source/Core/InputCommon/InputConfig.cpp | 31 ++-- Source/Core/InputCommon/InputConfig.h | 10 +- 13 files changed, 301 insertions(+), 386 deletions(-) diff --git a/Source/Core/InputCommon/ControllerEmu.cpp b/Source/Core/InputCommon/ControllerEmu.cpp index e2e37789c7..29b0e388d3 100644 --- a/Source/Core/InputCommon/ControllerEmu.cpp +++ b/Source/Core/InputCommon/ControllerEmu.cpp @@ -11,38 +11,23 @@ ControllerEmu::~ControllerEmu() { // control groups - std::vector::const_iterator - i = groups.begin(), - e = groups.end(); - for (; i!=e; ++i) - delete *i; + for (ControlGroup* cg : groups) + delete cg; } ControllerEmu::ControlGroup::~ControlGroup() { - // controls - std::vector::const_iterator - ci = controls.begin(), - ce = controls.end(); - for (; ci!=ce; ++ci) - delete *ci; + for (Control* c : controls) + delete c; - // settings - std::vector::const_iterator - si = settings.begin(), - se = settings.end(); - for (; si!=se; ++si) - delete *si; + for (Setting* s : settings) + delete s; } ControllerEmu::Extension::~Extension() { - // attachments - std::vector::const_iterator - ai = attachments.begin(), - ae = attachments.end(); - for (; ai!=ae; ++ai) - delete *ai; + for (ControllerEmu* ai : attachments) + delete ai; } ControllerEmu::ControlGroup::Control::~Control() { @@ -51,52 +36,31 @@ ControllerEmu::ControlGroup::Control::~Control() void ControllerEmu::UpdateReferences(ControllerInterface& devi) { - std::vector::const_iterator - i = groups.begin(), - e = groups.end(); - for (; i!=e; ++i) + for (ControlGroup* cg : groups) { - std::vector::const_iterator - ci = (*i)->controls.begin(), - ce = (*i)->controls.end(); - for (; ci!=ce; ++ci) - devi.UpdateReference((*ci)->control_ref, default_device); + for (ControlGroup::Control* control : cg->controls) + devi.UpdateReference(control->control_ref, default_device); // extension - if (GROUP_TYPE_EXTENSION == (*i)->type) + if (GROUP_TYPE_EXTENSION == cg->type) { - std::vector::const_iterator - ai = ((Extension*)*i)->attachments.begin(), - ae = ((Extension*)*i)->attachments.end(); - for (; ai!=ae; ++ai) - (*ai)->UpdateReferences(devi); + for (ControllerEmu* ai : ((Extension*)cg)->attachments) + ai->UpdateReferences(devi); } } } void ControllerEmu::UpdateDefaultDevice() { - std::vector::const_iterator - i = groups.begin(), - e = groups.end(); - for (; i!=e; ++i) + for (ControlGroup* cg : groups) { - //std::vector::const_iterator - //ci = (*i)->controls.begin(), - //ce = (*i)->controls.end(); - //for (; ci!=ce; ++ci) - //(*ci)->control_ref->device_qualifier = default_device; - // extension - if (GROUP_TYPE_EXTENSION == (*i)->type) + if (GROUP_TYPE_EXTENSION == cg->type) { - std::vector::const_iterator - ai = ((Extension*)*i)->attachments.begin(), - ae = ((Extension*)*i)->attachments.end(); - for (; ai!=ae; ++ai) + for (ControllerEmu* ai : ((Extension*)cg)->attachments) { - (*ai)->default_device = default_device; - (*ai)->UpdateDefaultDevice(); + ai->default_device = default_device; + ai->UpdateDefaultDevice(); } } } @@ -107,50 +71,43 @@ void ControllerEmu::ControlGroup::LoadConfig(IniFile::Section *sec, const std::s std::string group(base + name); group += "/"; // settings - std::vector::const_iterator - si = settings.begin(), - se = settings.end(); - for (; si!=se; ++si) + for (Setting* s : settings) { - sec->Get((group+(*si)->name).c_str(), &(*si)->value, (*si)->default_value*100); - (*si)->value /= 100; + sec->Get((group + s->name).c_str(), &s->value, s->default_value * 100); + s->value /= 100; } // controls - std::vector::const_iterator - ci = controls.begin(), - ce = controls.end(); - for (; ci!=ce; ++ci) + for (Control* c : controls) { // control expression - sec->Get((group + (*ci)->name).c_str(), &(*ci)->control_ref->expression, ""); + sec->Get((group + c->name).c_str(), &c->control_ref->expression, ""); // range - sec->Get((group+(*ci)->name+"/Range").c_str(), &(*ci)->control_ref->range, 100.0f); - (*ci)->control_ref->range /= 100; + sec->Get((group + c->name + "/Range").c_str(), &c->control_ref->range, 100.0f); + c->control_ref->range /= 100; } // extensions if (GROUP_TYPE_EXTENSION == type) { - Extension* const ex = ((Extension*)this); + Extension* const ext = ((Extension*)this); - ex->switch_extension = 0; + ext->switch_extension = 0; unsigned int n = 0; std::string extname; sec->Get((base + name).c_str(), &extname, ""); - std::vector::const_iterator - ai = ((Extension*)this)->attachments.begin(), - ae = ((Extension*)this)->attachments.end(); - for (; ai!=ae; ++ai,++n) + for (ControllerEmu* ai : ext->attachments) { - (*ai)->default_device.FromString(defdev); - (*ai)->LoadConfig(sec, base + (*ai)->GetName() + "/"); + ai->default_device.FromString(defdev); + ai->LoadConfig(sec, base + ai->GetName() + "/"); - if ((*ai)->GetName() == extname) - ex->switch_extension = n; + if (ai->GetName() == extname) + ext->switch_extension = n; + + n++; } } } @@ -163,10 +120,9 @@ void ControllerEmu::LoadConfig(IniFile::Section *sec, const std::string& base) sec->Get((base + "Device").c_str(), &defdev, ""); default_device.FromString(defdev); } - std::vector::const_iterator i = groups.begin(), - e = groups.end(); - for (; i!=e; ++i) - (*i)->LoadConfig(sec, defdev, base); + + for (ControlGroup* cg : groups) + cg->LoadConfig(sec, defdev, base); } void ControllerEmu::ControlGroup::SaveConfig(IniFile::Section *sec, const std::string& defdev, const std::string& base) @@ -174,23 +130,17 @@ void ControllerEmu::ControlGroup::SaveConfig(IniFile::Section *sec, const std::s std::string group(base + name); group += "/"; // settings - std::vector::const_iterator - si = settings.begin(), - se = settings.end(); - for (; si!=se; ++si) - sec->Set((group+(*si)->name).c_str(), (*si)->value*100.0f, (*si)->default_value*100.0f); + for (Setting* s : settings) + sec->Set((group + s->name).c_str(), s->value*100.0f, s->default_value*100.0f); // controls - std::vector::const_iterator - ci = controls.begin(), - ce = controls.end(); - for (; ci!=ce; ++ci) + for (Control* c : controls) { // control expression - sec->Set((group+(*ci)->name).c_str(), (*ci)->control_ref->expression, ""); + sec->Set((group + c->name).c_str(), c->control_ref->expression, ""); // range - sec->Set((group+(*ci)->name+"/Range").c_str(), (*ci)->control_ref->range*100.0f, 100.0f); + sec->Set((group + c->name + "/Range").c_str(), c->control_ref->range*100.0f, 100.0f); } // extensions @@ -199,11 +149,8 @@ void ControllerEmu::ControlGroup::SaveConfig(IniFile::Section *sec, const std::s Extension* const ext = ((Extension*)this); sec->Set((base + name).c_str(), ext->attachments[ext->switch_extension]->GetName(), "None"); - std::vector::const_iterator - ai = ((Extension*)this)->attachments.begin(), - ae = ((Extension*)this)->attachments.end(); - for (; ai!=ae; ++ai) - (*ai)->SaveConfig(sec, base + (*ai)->GetName() + "/"); + for (ControllerEmu* ai : ext->attachments) + ai->SaveConfig(sec, base + ai->GetName() + "/"); } } @@ -213,10 +160,8 @@ void ControllerEmu::SaveConfig(IniFile::Section *sec, const std::string& base) if (base.empty()) sec->Set((/*std::string(" ") +*/ base + "Device").c_str(), defdev, ""); - std::vector::const_iterator i = groups.begin(), - e = groups.end(); - for (; i!=e; ++i) - (*i)->SaveConfig(sec, defdev, base); + for (ControlGroup* cg : groups) + cg->SaveConfig(sec, defdev, base); } ControllerEmu::AnalogStick::AnalogStick(const char* const _name) : ControlGroup(_name, GROUP_TYPE_STICK) diff --git a/Source/Core/InputCommon/ControllerEmu.h b/Source/Core/InputCommon/ControllerEmu.h index 750aa692c4..b8f67ab833 100644 --- a/Source/Core/InputCommon/ControllerEmu.h +++ b/Source/Core/InputCommon/ControllerEmu.h @@ -42,7 +42,7 @@ enum SETTING_SQUARE, }; -const char * const named_directions[] = +const char* const named_directions[] = { "Up", "Down", @@ -61,13 +61,13 @@ public: class Control { protected: - Control(ControllerInterface::ControlReference* const _ref, const char * const _name) + Control(ControllerInterface::ControlReference* const _ref, const char* const _name) : control_ref(_ref), name(_name){} public: virtual ~Control(); - ControllerInterface::ControlReference* const control_ref; - const char * const name; + ControllerInterface::ControlReference* const control_ref; + const char* const name; }; @@ -75,7 +75,7 @@ public: { public: - Input(const char * const _name) + Input(const char* const _name) : Control(new ControllerInterface::InputReference, _name) {} }; @@ -84,7 +84,7 @@ public: { public: - Output(const char * const _name) + Output(const char* const _name) : Control(new ControllerInterface::OutputReference, _name) {} }; @@ -94,17 +94,17 @@ public: public: Setting(const char* const _name, const ControlState def_value - , const unsigned int _low = 0, const unsigned int _high = 100 ) + , const unsigned int _low = 0, const unsigned int _high = 100) : name(_name) , value(def_value) , default_value(def_value) , low(_low) , high(_high){} - const char* const name; - ControlState value; - const ControlState default_value; - const unsigned int low, high; + const char* const name; + ControlState value; + const ControlState default_value; + const unsigned int low, high; }; ControlGroup(const char* const _name, const unsigned int _type = GROUP_TYPE_OTHER) : name(_name), type(_type) {} @@ -113,11 +113,11 @@ public: virtual void LoadConfig(IniFile::Section *sec, const std::string& defdev = "", const std::string& base = "" ); virtual void SaveConfig(IniFile::Section *sec, const std::string& defdev = "", const std::string& base = "" ); - const char* const name; - const unsigned int type; + const char* const name; + const unsigned int type; - std::vector< Control* > controls; - std::vector< Setting* > settings; + std::vector controls; + std::vector settings; }; @@ -194,14 +194,12 @@ public: template void GetState(C* const buttons, const C* bitmasks) { - std::vector::iterator - i = controls.begin(), - e = controls.end(); - - for (; i!=e; ++i, ++bitmasks) + for (Control* control : controls) { - if ((*i)->control_ref->State() > settings[0]->value) // threshold + if (control->control_ref->State() > settings[0]->value) // threshold *buttons |= *bitmasks; + + bitmasks++; } } @@ -287,12 +285,13 @@ public: tmpf = ((state - (deadzone * sign(state))) / (1 - deadzone)); float &ax = m_swing[i >> 1]; - *axis++ = (C)((tmpf - ax) * range + base); + *axis++ = (C)((tmpf - ax) * range + base); ax = tmpf; } } + private: - float m_swing[3]; + float m_swing[3]; }; class Tilt : public ControlGroup @@ -370,8 +369,9 @@ public: *y = C(m_tilt[1] * angle * range + base); *x = C(m_tilt[0] * angle * range + base); } + private: - float m_tilt[2]; + float m_tilt[2]; }; class Cursor : public ControlGroup @@ -415,7 +415,7 @@ public: } } - float m_z; + float m_z; }; class Extension : public ControlGroup @@ -429,10 +429,10 @@ public: void GetState(u8* const data, const bool focus = true); - std::vector attachments; + std::vector attachments; - int switch_extension; - int active_extension; + int switch_extension; + int active_extension; }; virtual ~ControllerEmu(); @@ -447,9 +447,9 @@ public: void UpdateReferences(ControllerInterface& devi); - std::vector< ControlGroup* > groups; + std::vector groups; - DeviceQualifier default_device; + DeviceQualifier default_device; }; diff --git a/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp b/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp index 66a7b1e56c..9eca17118d 100644 --- a/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp +++ b/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp @@ -38,9 +38,9 @@ const float INPUT_DETECT_THRESHOLD = 0.55f; ControllerInterface g_controller_interface; // -// Init +// Init // -// detect devices and inputs outputs / will make refresh function later +// Detect devices and inputs outputs / will make refresh function later // void ControllerInterface::Initialize() { @@ -79,31 +79,26 @@ if (GLWin.platform == EGL_PLATFORM_X11) { } // -// DeInit +// DeInit // -// remove all devices/ call library cleanup functions +// Remove all devices/ call library cleanup functions // void ControllerInterface::Shutdown() { - if (false == m_is_init) + if (!m_is_init) return; - std::vector::const_iterator - d = m_devices.begin(), - de = m_devices.end(); - for ( ;d != de; ++d ) + for (Device* d : m_devices) { - std::vector::const_iterator - o = (*d)->Outputs().begin(), - oe = (*d)->Outputs().end(); - // set outputs to ZERO before destroying device - for ( ;o!=oe; ++o) - (*o)->SetState(0); - // update output - (*d)->UpdateOutput(); + // Set outputs to ZERO before destroying device + for (Device::Output* o : d->Outputs()) + o->SetState(0); - //delete device - delete *d; + // Update output + d->UpdateOutput(); + + // Delete device + delete d; } m_devices.clear(); @@ -132,9 +127,9 @@ void ControllerInterface::Shutdown() } // -// SetHwnd +// SetHwnd // -// sets the hwnd used for some crap when initializing, use before calling Init +// Sets the hwnd used for some crap when initializing, use before calling Init // void ControllerInterface::SetHwnd( void* const hwnd ) { @@ -142,9 +137,9 @@ void ControllerInterface::SetHwnd( void* const hwnd ) } // -// UpdateInput +// UpdateInput // -// update input for all devices, return true if all devices returned successful +// Update input for all devices, return true if all devices returned successful // bool ControllerInterface::UpdateInput(const bool force) { @@ -153,16 +148,13 @@ bool ControllerInterface::UpdateInput(const bool force) if (force) lk.lock(); else if (!lk.try_lock()) - return false; + return false; size_t ok_count = 0; - std::vector::const_iterator - d = m_devices.begin(), - e = m_devices.end(); - for ( ;d != e; ++d ) + for (Device* d : m_devices) { - if ((*d)->UpdateInput()) + if (d->UpdateInput()) ++ok_count; //else // disabled. it might be causing problems @@ -173,9 +165,9 @@ bool ControllerInterface::UpdateInput(const bool force) } // -// UpdateOutput +// UpdateOutput // -// update output for all devices, return true if all devices returned successful +// Update output for all devices, return true if all devices returned successful // bool ControllerInterface::UpdateOutput(const bool force) { @@ -188,9 +180,9 @@ bool ControllerInterface::UpdateOutput(const bool force) size_t ok_count = 0; - for (auto d = m_devices.cbegin(); d != m_devices.cend(); ++d) + for (Device* d : m_devices) { - if ((*d)->UpdateOutput()) + if (d->UpdateOutput()) ++ok_count; } @@ -198,9 +190,9 @@ bool ControllerInterface::UpdateOutput(const bool force) } // -// InputReference :: State +// InputReference :: State // -// get the state of an input reference +// Gets the state of an input reference // override function for ControlReference::State ... // ControlState ControllerInterface::InputReference::State( const ControlState ignore ) @@ -212,11 +204,11 @@ ControlState ControllerInterface::InputReference::State( const ControlState igno } // -// OutputReference :: State +// OutputReference :: State // -// set the state of all binded outputs -// overrides ControlReference::State .. combined them so i could make the gui simple / inputs == same as outputs one list -// i was lazy and it works so watever +// Set the state of all binded outputs +// overrides ControlReference::State .. combined them so I could make the GUI simple / inputs == same as outputs one list +// I was lazy and it works so watever // ControlState ControllerInterface::OutputReference::State(const ControlState state) { @@ -226,9 +218,9 @@ ControlState ControllerInterface::OutputReference::State(const ControlState stat } // -// UpdateReference +// UpdateReference // -// updates a controlreference's binded devices/controls +// Updates a controlreference's binded devices/controls // need to call this to re-parse a control reference's expression after changing it // void ControllerInterface::UpdateReference(ControllerInterface::ControlReference* ref @@ -242,9 +234,9 @@ void ControllerInterface::UpdateReference(ControllerInterface::ControlReference* } // -// InputReference :: Detect +// InputReference :: Detect // -// wait for input on all binded devices +// Wait for input on all binded devices // supports not detecting inputs that were held down at the time of Detect start, // which is useful for those crazy flightsticks that have certain buttons that are always held down // or some crazy axes or something @@ -294,7 +286,7 @@ Device::Control* ControllerInterface::InputReference::Detect(const unsigned int } // -// OutputReference :: Detect +// OutputReference :: Detect // // Totally different from the inputReference detect / I have them combined so it was simpler to make the GUI. // The GUI doesn't know the difference between an input and an output / it's odd but I was lazy and it was easy diff --git a/Source/Core/InputCommon/ControllerInterface/ControllerInterface.h b/Source/Core/InputCommon/ControllerInterface/ControllerInterface.h index 4efb8941b7..5e0cd9db8b 100644 --- a/Source/Core/InputCommon/ControllerInterface/ControllerInterface.h +++ b/Source/Core/InputCommon/ControllerInterface/ControllerInterface.h @@ -35,24 +35,24 @@ using namespace ciface::Core; // -// ControllerInterface +// ControllerInterface // -// some crazy shit I made to control different device inputs and outputs -// from lots of different sources, hopefully more easily +// Some crazy shit I made to control different device inputs and outputs +// from lots of different sources, hopefully more easily. // class ControllerInterface : public DeviceContainer { public: // - // ControlReference + // ControlReference // - // these are what you create to actually use the inputs, InputReference or OutputReference + // These are what you create to actually use the inputs, InputReference or OutputReference. // - // after being bound to devices and controls with ControllerInterface::UpdateReference, - // each one can link to multiple devices and controls - // when you change a ControlReference's expression, - // you must use ControllerInterface::UpdateReference on it to rebind controls + // After being bound to devices and controls with ControllerInterface::UpdateReference, + // each one can link to multiple devices and controls + // when you change a ControlReference's expression, + // you must use ControllerInterface::UpdateReference on it to rebind controls // class ControlReference { @@ -62,15 +62,17 @@ public: virtual Device::Control* Detect(const unsigned int ms, Device* const device) = 0; ControlState range; - std::string expression; - const bool is_input; + std::string expression; + const bool is_input; ciface::ExpressionParser::ExpressionParseStatus parse_error; - virtual ~ControlReference() { + virtual ~ControlReference() + { delete parsed_expression; } - int BoundCount() { + int BoundCount() + { if (parsed_expression) return parsed_expression->num_controls; else @@ -83,9 +85,9 @@ public: }; // - // InputReference + // InputReference // - // control reference for inputs + // Control reference for inputs // class InputReference : public ControlReference { @@ -96,9 +98,9 @@ public: }; // - // OutputReference + // OutputReference // - // control reference for outputs + // Control reference for outputs // class OutputReference : public ControlReference { @@ -122,8 +124,8 @@ public: std::recursive_mutex update_lock; private: - bool m_is_init; - void* m_hwnd; + bool m_is_init; + void* m_hwnd; }; extern ControllerInterface g_controller_interface; diff --git a/Source/Core/InputCommon/ControllerInterface/DInput/DInputJoystick.cpp b/Source/Core/InputCommon/ControllerInterface/DInput/DInputJoystick.cpp index 7211559e93..a8d1ba53c8 100644 --- a/Source/Core/InputCommon/ControllerInterface/DInput/DInputJoystick.cpp +++ b/Source/Core/InputCommon/ControllerInterface/DInput/DInputJoystick.cpp @@ -49,81 +49,81 @@ void GetXInputGUIDS( std::vector& guids ) #define SAFE_RELEASE(p) { if(p) { (p)->Release(); (p)=NULL; } } - IWbemLocator* pIWbemLocator = NULL; + IWbemLocator* pIWbemLocator = NULL; IEnumWbemClassObject* pEnumDevices = NULL; - IWbemClassObject* pDevices[20] = {0}; - IWbemServices* pIWbemServices = NULL; - BSTR bstrNamespace = NULL; - BSTR bstrDeviceID = NULL; - BSTR bstrClassName = NULL; - DWORD uReturned = 0; - VARIANT var; - HRESULT hr; + IWbemClassObject* pDevices[20] = {0}; + IWbemServices* pIWbemServices = NULL; + BSTR bstrNamespace = NULL; + BSTR bstrDeviceID = NULL; + BSTR bstrClassName = NULL; + DWORD uReturned = 0; + VARIANT var; + HRESULT hr; // CoInit if needed hr = CoInitialize(NULL); bool bCleanupCOM = SUCCEEDED(hr); // Create WMI - hr = CoCreateInstance( __uuidof(WbemLocator), - NULL, - CLSCTX_INPROC_SERVER, - __uuidof(IWbemLocator), - (LPVOID*) &pIWbemLocator); - if( FAILED(hr) || pIWbemLocator == NULL ) + hr = CoCreateInstance(__uuidof(WbemLocator), + NULL, + CLSCTX_INPROC_SERVER, + __uuidof(IWbemLocator), + (LPVOID*) &pIWbemLocator); + if (FAILED(hr) || pIWbemLocator == NULL) goto LCleanup; - bstrNamespace = SysAllocString( L"\\\\.\\root\\cimv2" );if( bstrNamespace == NULL ) goto LCleanup; - bstrClassName = SysAllocString( L"Win32_PNPEntity" ); if( bstrClassName == NULL ) goto LCleanup; - bstrDeviceID = SysAllocString( L"DeviceID" ); if( bstrDeviceID == NULL ) goto LCleanup; + bstrNamespace = SysAllocString(L"\\\\.\\root\\cimv2");if(bstrNamespace == NULL) goto LCleanup; + bstrClassName = SysAllocString(L"Win32_PNPEntity"); if(bstrClassName == NULL) goto LCleanup; + bstrDeviceID = SysAllocString(L"DeviceID"); if(bstrDeviceID == NULL) goto LCleanup; // Connect to WMI - hr = pIWbemLocator->ConnectServer( bstrNamespace, NULL, NULL, 0L, 0L, NULL, NULL, &pIWbemServices ); - if( FAILED(hr) || pIWbemServices == NULL ) + hr = pIWbemLocator->ConnectServer(bstrNamespace, NULL, NULL, 0L, 0L, NULL, NULL, &pIWbemServices); + if (FAILED(hr) || pIWbemServices == NULL) goto LCleanup; // Switch security level to IMPERSONATE. - CoSetProxyBlanket( pIWbemServices, RPC_C_AUTHN_WINNT, RPC_C_AUTHZ_NONE, NULL, - RPC_C_AUTHN_LEVEL_CALL, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_NONE ); + CoSetProxyBlanket(pIWbemServices, RPC_C_AUTHN_WINNT, RPC_C_AUTHZ_NONE, NULL, + RPC_C_AUTHN_LEVEL_CALL, RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_NONE); - hr = pIWbemServices->CreateInstanceEnum( bstrClassName, 0, NULL, &pEnumDevices ); - if( FAILED(hr) || pEnumDevices == NULL ) + hr = pIWbemServices->CreateInstanceEnum(bstrClassName, 0, NULL, &pEnumDevices); + if (FAILED(hr) || pEnumDevices == NULL) goto LCleanup; // Loop over all devices - while( true ) + while (true) { // Get 20 at a time - hr = pEnumDevices->Next( 10000, 20, pDevices, &uReturned ); - if( FAILED(hr) || uReturned == 0 ) + hr = pEnumDevices->Next(10000, 20, pDevices, &uReturned); + if (FAILED(hr) || uReturned == 0) break; - for( UINT iDevice=0; iDeviceGet( bstrDeviceID, 0L, &var, NULL, NULL ); - if( SUCCEEDED( hr ) && var.vt == VT_BSTR && var.bstrVal != NULL ) + hr = pDevices[iDevice]->Get(bstrDeviceID, 0L, &var, NULL, NULL); + if (SUCCEEDED(hr) && var.vt == VT_BSTR && var.bstrVal != NULL) { // Check if the device ID contains "IG_". If it does, then it's an XInput device - // This information can not be found from DirectInput - if( wcsstr( var.bstrVal, L"IG_" ) ) + // This information can not be found from DirectInput + if (wcsstr(var.bstrVal, L"IG_")) { // If it does, then get the VID/PID from var.bstrVal DWORD dwPid = 0, dwVid = 0; - WCHAR* strVid = wcsstr( var.bstrVal, L"VID_" ); - if( strVid && swscanf( strVid, L"VID_%4X", &dwVid ) != 1 ) + WCHAR* strVid = wcsstr(var.bstrVal, L"VID_"); + if (strVid && swscanf(strVid, L"VID_%4X", &dwVid) != 1) dwVid = 0; - WCHAR* strPid = wcsstr( var.bstrVal, L"PID_" ); - if( strPid && swscanf( strPid, L"PID_%4X", &dwPid ) != 1 ) + WCHAR* strPid = wcsstr(var.bstrVal, L"PID_"); + if (strPid && swscanf(strPid, L"PID_%4X", &dwPid) != 1) dwPid = 0; // Compare the VID/PID to the DInput device - DWORD dwVidPid = MAKELONG( dwVid, dwPid ); - guids.push_back( dwVidPid ); + DWORD dwVidPid = MAKELONG(dwVid, dwPid); + guids.push_back(dwVidPid); //bIsXinputDevice = true; } } - SAFE_RELEASE( pDevices[iDevice] ); + SAFE_RELEASE(pDevices[iDevice]); } } @@ -134,13 +134,13 @@ LCleanup: SysFreeString(bstrDeviceID); if(bstrClassName) SysFreeString(bstrClassName); - for( UINT iDevice=0; iDevice<20; iDevice++ ) - SAFE_RELEASE( pDevices[iDevice] ); - SAFE_RELEASE( pEnumDevices ); - SAFE_RELEASE( pIWbemLocator ); - SAFE_RELEASE( pIWbemServices ); + for (UINT iDevice = 0; iDevice < 20; iDevice++) + SAFE_RELEASE(pDevices[iDevice]); + SAFE_RELEASE(pEnumDevices); + SAFE_RELEASE(pIWbemLocator); + SAFE_RELEASE(pIWbemServices); - if( bCleanupCOM ) + if (bCleanupCOM) CoUninitialize(); } @@ -156,17 +156,14 @@ void InitJoystick(IDirectInput8* const idi8, std::vector& devices std::vector xinput_guids; GetXInputGUIDS( xinput_guids ); - std::list::iterator - i = joysticks.begin(), - e = joysticks.end(); - for ( ; i!=e; ++i ) + for (DIDEVICEINSTANCE& joystick : joysticks) { // skip XInput Devices - if ( std::find( xinput_guids.begin(), xinput_guids.end(), i->guidProduct.Data1 ) != xinput_guids.end() ) + if (std::find(xinput_guids.begin(), xinput_guids.end(), joystick.guidProduct.Data1) != xinput_guids.end()) continue; LPDIRECTINPUTDEVICE8 js_device; - if (SUCCEEDED(idi8->CreateDevice(i->guidInstance, &js_device, NULL))) + if (SUCCEEDED(idi8->CreateDevice(joystick.guidInstance, &js_device, NULL))) { if (SUCCEEDED(js_device->SetDataFormat(&c_dfDIJoystick))) { @@ -182,7 +179,7 @@ void InitJoystick(IDirectInput8* const idi8, std::vector& devices } } - Joystick* js = new Joystick(/*&*i, */js_device, name_counts[i->tszInstanceName]++); + Joystick* js = new Joystick(/*&*i, */js_device, name_counts[joystick.tszInstanceName]++); // only add if it has some inputs/outputs if (js->Inputs().size() || js->Outputs().size()) devices.push_back(js); @@ -359,14 +356,11 @@ Joystick::Joystick( /*const LPCDIDEVICEINSTANCE lpddi, */const LPDIRECTINPUTDEVI Joystick::~Joystick() { // release the ff effect iface's - std::list::iterator - i = m_state_out.begin(), - e = m_state_out.end(); - for (; i!=e; ++i) + for (EffectState& state : m_state_out) { - i->iface->Stop(); - i->iface->Unload(); - i->iface->Release(); + state.iface->Stop(); + state.iface->Unload(); + state.iface->Release(); } m_device->Unacquire(); @@ -377,7 +371,7 @@ void Joystick::ClearInputState() { ZeroMemory(&m_state_in, sizeof(m_state_in)); // set hats to center - memset( m_state_in.rgdwPOV, 0xFF, sizeof(m_state_in.rgdwPOV) ); + memset(m_state_in.rgdwPOV, 0xFF, sizeof(m_state_in.rgdwPOV)); } std::string Joystick::GetName() const @@ -449,26 +443,23 @@ bool Joystick::UpdateOutput() eff.dwSize = sizeof(DIEFFECT); eff.dwFlags = DIEFF_CARTESIAN | DIEFF_OBJECTOFFSETS; - std::list::iterator - i = m_state_out.begin(), - e = m_state_out.end(); - for (; i!=e; ++i) + for (EffectState& state : m_state_out) { - if (i->params) + if (state.params) { - if (i->size) + if (state.size) { - eff.cbTypeSpecificParams = i->size; - eff.lpvTypeSpecificParams = i->params; + eff.cbTypeSpecificParams = state.size; + eff.lpvTypeSpecificParams = state.params; // set params and start effect - ok_count += SUCCEEDED(i->iface->SetParameters(&eff, DIEP_TYPESPECIFICPARAMS | DIEP_START)); + ok_count += SUCCEEDED(state.iface->SetParameters(&eff, DIEP_TYPESPECIFICPARAMS | DIEP_START)); } else { - ok_count += SUCCEEDED(i->iface->Stop()); + ok_count += SUCCEEDED(state.iface->Stop()); } - i->params = NULL; + state.params = NULL; } else { @@ -540,6 +531,7 @@ ControlState Joystick::Hat::GetState() const // hat centered code from MSDN if (0xFFFF == LOWORD(m_hat)) return 0; + return (abs((int)(m_hat / 4500 - m_direction * 2 + 8) % 8 - 4) > 2); } diff --git a/Source/Core/InputCommon/ControllerInterface/DInput/DInputJoystick.h b/Source/Core/InputCommon/ControllerInterface/DInput/DInputJoystick.h index 20b38c8a69..6b6be58193 100644 --- a/Source/Core/InputCommon/ControllerInterface/DInput/DInputJoystick.h +++ b/Source/Core/InputCommon/ControllerInterface/DInput/DInputJoystick.h @@ -25,9 +25,9 @@ private: { EffectState(LPDIRECTINPUTEFFECT eff) : iface(eff), params(NULL), size(0) {} - LPDIRECTINPUTEFFECT iface; - void* params; // null when force hasn't changed - u8 size; // zero when force should stop + LPDIRECTINPUTEFFECT iface; + void* params; // null when force hasn't changed + u8 size; // zero when force should stop }; class Button : public Input @@ -76,9 +76,9 @@ private: P params; const u8 m_index; }; - typedef Force ForceConstant; - typedef Force ForceRamp; - typedef Force ForcePeriodic; + typedef Force ForceConstant; + typedef Force ForceRamp; + typedef Force ForcePeriodic; public: bool UpdateInput(); @@ -94,13 +94,13 @@ public: std::string GetSource() const; private: - const LPDIRECTINPUTDEVICE8 m_device; - const unsigned int m_index; + const LPDIRECTINPUTDEVICE8 m_device; + const unsigned int m_index; - DIJOYSTATE m_state_in; - std::list m_state_out; + DIJOYSTATE m_state_in; + std::list m_state_out; - bool m_buffered; + bool m_buffered; }; } diff --git a/Source/Core/InputCommon/ControllerInterface/DInput/DInputKeyboardMouse.cpp b/Source/Core/InputCommon/ControllerInterface/DInput/DInputKeyboardMouse.cpp index 850ff27281..50f065f92f 100644 --- a/Source/Core/InputCommon/ControllerInterface/DInput/DInputKeyboardMouse.cpp +++ b/Source/Core/InputCommon/ControllerInterface/DInput/DInputKeyboardMouse.cpp @@ -5,11 +5,11 @@ // (lower would be more sensitive) user can lower sensitivity by setting range // seems decent here ( at 8 ), I don't think anyone would need more sensitive than this // and user can lower it much farther than they would want to with the range -#define MOUSE_AXIS_SENSITIVITY 8 +#define MOUSE_AXIS_SENSITIVITY 8 // if input hasn't been received for this many ms, mouse input will be skipped // otherwise it is just some crazy value -#define DROP_INPUT_TIME 250 +#define DROP_INPUT_TIME 250 namespace ciface { @@ -18,8 +18,8 @@ namespace DInput static const struct { - const BYTE code; - const char* const name; + const BYTE code; + const char* const name; } named_keys[] = { #include "NamedKeys.h" @@ -27,8 +27,8 @@ static const struct static const struct { - const BYTE code; - const char* const name; + const BYTE code; + const char* const name; } named_lights[] = { { VK_NUMLOCK, "NUM LOCK" }, diff --git a/Source/Core/InputCommon/ControllerInterface/DInput/DInputKeyboardMouse.h b/Source/Core/InputCommon/ControllerInterface/DInput/DInputKeyboardMouse.h index 73398ca1b1..4973979052 100644 --- a/Source/Core/InputCommon/ControllerInterface/DInput/DInputKeyboardMouse.h +++ b/Source/Core/InputCommon/ControllerInterface/DInput/DInputKeyboardMouse.h @@ -21,8 +21,8 @@ class KeyboardMouse : public Core::Device private: struct State { - BYTE keyboard[256]; - DIMOUSESTATE2 mouse; + BYTE keyboard[256]; + DIMOUSESTATE2 mouse; struct { float x, y; @@ -98,13 +98,13 @@ public: std::string GetSource() const; private: - const LPDIRECTINPUTDEVICE8 m_kb_device; - const LPDIRECTINPUTDEVICE8 m_mo_device; + const LPDIRECTINPUTDEVICE8 m_kb_device; + const LPDIRECTINPUTDEVICE8 m_mo_device; - DWORD m_last_update; - State m_state_in; - unsigned char m_state_out[3]; // NUM CAPS SCROLL - bool m_current_state_out[3]; // NUM CAPS SCROLL + DWORD m_last_update; + State m_state_in; + unsigned char m_state_out[3]; // NUM CAPS SCROLL + bool m_current_state_out[3]; // NUM CAPS SCROLL }; } diff --git a/Source/Core/InputCommon/ControllerInterface/Device.cpp b/Source/Core/InputCommon/ControllerInterface/Device.cpp index 965ecfc817..1a7295c2c5 100644 --- a/Source/Core/InputCommon/ControllerInterface/Device.cpp +++ b/Source/Core/InputCommon/ControllerInterface/Device.cpp @@ -10,29 +10,19 @@ namespace Core { // -// Device :: ~Device +// Device :: ~Device // // Destructor, delete all inputs/outputs on device destruction // Device::~Device() { - { // delete inputs - std::vector::iterator - i = m_inputs.begin(), - e = m_inputs.end(); - for ( ;i!=e; ++i) - delete *i; - } + for (Device::Input* input : m_inputs) + delete input; - { // delete outputs - std::vector::iterator - o = m_outputs.begin(), - e = m_outputs.end(); - for ( ;o!=e; ++o) - delete *o; - } + for (Device::Output* output: m_outputs) + delete output; } void Device::AddInput(Device::Input* const i) @@ -47,30 +37,28 @@ void Device::AddOutput(Device::Output* const o) Device::Input* Device::FindInput(const std::string &name) const { - std::vector::const_iterator - it = m_inputs.begin(), - itend = m_inputs.end(); - for (; it != itend; ++it) - if ((*it)->GetName() == name) - return *it; + for (Input* input : m_inputs) + { + if (input->GetName() == name) + return input; + } return NULL; } Device::Output* Device::FindOutput(const std::string &name) const { - std::vector::const_iterator - it = m_outputs.begin(), - itend = m_outputs.end(); - for (; it != itend; ++it) - if ((*it)->GetName() == name) - return *it; + for (Output* output : m_outputs) + { + if (output->GetName() == name) + return output; + } return NULL; } // -// Device :: ClearInputState +// Device :: ClearInputState // // Device classes should override this function // ControllerInterface will call this when the device returns failure during UpdateInput @@ -84,26 +72,28 @@ void Device::ClearInputState() } // -// DeviceQualifier :: ToString +// DeviceQualifier :: ToString // -// get string from a device qualifier / serialize +// Get string from a device qualifier / serialize // std::string DeviceQualifier::ToString() const { if (source.empty() && (cid < 0) && name.empty()) return ""; + std::ostringstream ss; ss << source << '/'; - if ( cid > -1 ) + if (cid > -1) ss << cid; ss << '/' << name; + return ss.str(); } // -// DeviceQualifier :: FromString +// DeviceQualifier :: FromString // -// set a device qualifier from a string / unserialize +// Set a device qualifier from a string / unserialize // void DeviceQualifier::FromString(const std::string& str) { @@ -119,9 +109,9 @@ void DeviceQualifier::FromString(const std::string& str) } // -// DeviceQualifier :: FromDevice +// DeviceQualifier :: FromDevice // -// set a device qualifier from a device +// Set a device qualifier from a device // void DeviceQualifier::FromDevice(const Device* const dev) { @@ -136,6 +126,7 @@ bool DeviceQualifier::operator==(const Device* const dev) const if (dev->GetName() == name) if (dev->GetSource() == source) return true; + return false; } @@ -151,12 +142,11 @@ bool DeviceQualifier::operator==(const DeviceQualifier& devq) const Device* DeviceContainer::FindDevice(const DeviceQualifier& devq) const { - std::vector::const_iterator - di = m_devices.begin(), - de = m_devices.end(); - for (; di!=de; ++di) - if (devq == *di) - return *di; + for (Device* d : m_devices) + { + if (devq == d) + return d; + } return NULL; } @@ -170,12 +160,9 @@ Device::Input* DeviceContainer::FindInput(const std::string& name, const Device* return inp; } - std::vector::const_iterator - di = m_devices.begin(), - de = m_devices.end(); - for (; di != de; ++di) + for (Device* d : m_devices) { - Device::Input* const i = (*di)->FindInput(name); + Device::Input* const i = d->FindInput(name); if (i) return i; diff --git a/Source/Core/InputCommon/ControllerInterface/Device.h b/Source/Core/InputCommon/ControllerInterface/Device.h index a7c26b867d..a2cdc7cf01 100644 --- a/Source/Core/InputCommon/ControllerInterface/Device.h +++ b/Source/Core/InputCommon/ControllerInterface/Device.h @@ -19,9 +19,9 @@ namespace Core class DeviceQualifier; // -// Device +// Device // -// a device class +// A device class // class Device { @@ -30,11 +30,11 @@ public: class Output; // - // Control + // Control // - // control includes inputs and outputs + // Control includes inputs and outputs // - class Control // input or output + class Control // input or output { public: virtual std::string GetName() const = 0; @@ -45,9 +45,9 @@ public: }; // - // Input + // Input // - // an input on a device + // An input on a device // class Input : public Control { @@ -61,9 +61,9 @@ public: }; // - // Output + // Output // - // an output on a device + // An output on a device // class Output : public Control { @@ -126,15 +126,15 @@ protected: } private: - std::vector m_inputs; - std::vector m_outputs; + std::vector m_inputs; + std::vector m_outputs; }; // -// DeviceQualifier +// DeviceQualifier // -// device qualifier used to match devices -// currently has ( source, id, name ) properties which match a device +// Device qualifier used to match devices. +// Currently has ( source, id, name ) properties which match a device // class DeviceQualifier { @@ -148,9 +148,9 @@ public: bool operator==(const DeviceQualifier& devq) const; bool operator==(const Device* const dev) const; - std::string source; - int cid; - std::string name; + std::string source; + int cid; + std::string name; }; class DeviceContainer diff --git a/Source/Core/InputCommon/GCPadStatus.h b/Source/Core/InputCommon/GCPadStatus.h index 94abef01e2..7c1bcbc738 100644 --- a/Source/Core/InputCommon/GCPadStatus.h +++ b/Source/Core/InputCommon/GCPadStatus.h @@ -27,16 +27,16 @@ typedef struct { - unsigned short button; // Or-ed PAD_BUTTON_* and PAD_TRIGGER_* bits - unsigned char stickX; // 0 <= stickX <= 255 - unsigned char stickY; // 0 <= stickY <= 255 - unsigned char substickX; // 0 <= substickX <= 255 - unsigned char substickY; // 0 <= substickY <= 255 - unsigned char triggerLeft; // 0 <= triggerLeft <= 255 - unsigned char triggerRight; // 0 <= triggerRight <= 255 - unsigned char analogA; // 0 <= analogA <= 255 - unsigned char analogB; // 0 <= analogB <= 255 - signed char err; // one of PAD_ERR_* number + unsigned short button; // Or-ed PAD_BUTTON_* and PAD_TRIGGER_* bits + unsigned char stickX; // 0 <= stickX <= 255 + unsigned char stickY; // 0 <= stickY <= 255 + unsigned char substickX; // 0 <= substickX <= 255 + unsigned char substickY; // 0 <= substickY <= 255 + unsigned char triggerLeft; // 0 <= triggerLeft <= 255 + unsigned char triggerRight; // 0 <= triggerRight <= 255 + unsigned char analogA; // 0 <= analogA <= 255 + unsigned char analogB; // 0 <= analogB <= 255 + signed char err; // one of PAD_ERR_* number } SPADStatus; #endif diff --git a/Source/Core/InputCommon/InputConfig.cpp b/Source/Core/InputCommon/InputConfig.cpp index d627d047ad..41f18c8403 100644 --- a/Source/Core/InputCommon/InputConfig.cpp +++ b/Source/Core/InputCommon/InputConfig.cpp @@ -10,10 +10,8 @@ InputPlugin::~InputPlugin() { // delete pads - std::vector::const_iterator i = controllers.begin(), - e = controllers.end(); - for ( ; i != e; ++i ) - delete *i; + for (ControllerEmu* pad : controllers) + delete pad; } bool InputPlugin::LoadConfig(bool isGC) @@ -58,25 +56,26 @@ bool InputPlugin::LoadConfig(bool isGC) if (inifile.Load(File::GetUserPath(D_CONFIG_IDX) + ini_name + ".ini")) { - std::vector< ControllerEmu* >::const_iterator - i = controllers.begin(), - e = controllers.end(); - for (int n = 0; i!=e; ++i, ++n) + int n = 0; + for (ControllerEmu* pad : controllers) { - // load settings from ini + // Load settings from ini if (useProfile[n]) { IniFile profile_ini; profile_ini.Load(File::GetUserPath(D_CONFIG_IDX) + path + profile[n] + ".ini"); - (*i)->LoadConfig(profile_ini.GetOrCreateSection("Profile")); + pad->LoadConfig(profile_ini.GetOrCreateSection("Profile")); } else { - (*i)->LoadConfig(inifile.GetOrCreateSection((*i)->GetName().c_str())); + pad->LoadConfig(inifile.GetOrCreateSection(pad->GetName().c_str())); } - // update refs - (*i)->UpdateReferences(g_controller_interface); + // Update refs + pad->UpdateReferences(g_controller_interface); + + // Next profile + n++; } return true; } @@ -95,10 +94,8 @@ void InputPlugin::SaveConfig() IniFile inifile; inifile.Load(ini_filename); - std::vector< ControllerEmu* >::const_iterator i = controllers.begin(), - e = controllers.end(); - for ( ; i!=e; ++i ) - (*i)->SaveConfig(inifile.GetOrCreateSection((*i)->GetName().c_str())); + for (ControllerEmu* pad : controllers) + pad->SaveConfig(inifile.GetOrCreateSection(pad->GetName().c_str())); inifile.Save(ini_filename); } diff --git a/Source/Core/InputCommon/InputConfig.h b/Source/Core/InputCommon/InputConfig.h index f6d563fa11..1abed6bb2c 100644 --- a/Source/Core/InputCommon/InputConfig.h +++ b/Source/Core/InputCommon/InputConfig.h @@ -30,13 +30,13 @@ public: bool LoadConfig(bool isGC); void SaveConfig(); - std::vector< ControllerEmu* > controllers; + std::vector controllers; - std::recursive_mutex controls_lock; // for changing any control references + std::recursive_mutex controls_lock; // for changing any control references - const char * const ini_name; - const char * const gui_name; - const char * const profile_name; + const char* const ini_name; + const char* const gui_name; + const char* const profile_name; }; #endif From 825c5f689bd289a6659595f2bb0b810e12761f48 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Thu, 30 Jan 2014 20:21:18 -0500 Subject: [PATCH 2/5] Remove some unnecessary comments, as pointed out by Matt_P. --- Source/Core/InputCommon/ControllerEmu.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Source/Core/InputCommon/ControllerEmu.cpp b/Source/Core/InputCommon/ControllerEmu.cpp index 29b0e388d3..1cfa476736 100644 --- a/Source/Core/InputCommon/ControllerEmu.cpp +++ b/Source/Core/InputCommon/ControllerEmu.cpp @@ -10,7 +10,6 @@ ControllerEmu::~ControllerEmu() { - // control groups for (ControlGroup* cg : groups) delete cg; } @@ -77,7 +76,6 @@ void ControllerEmu::ControlGroup::LoadConfig(IniFile::Section *sec, const std::s s->value /= 100; } - // controls for (Control* c : controls) { // control expression @@ -129,11 +127,9 @@ void ControllerEmu::ControlGroup::SaveConfig(IniFile::Section *sec, const std::s { std::string group(base + name); group += "/"; - // settings for (Setting* s : settings) sec->Set((group + s->name).c_str(), s->value*100.0f, s->default_value*100.0f); - // controls for (Control* c : controls) { // control expression From 557015626adb53a6fe490f392b9710956ee0ac92 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Sat, 1 Feb 2014 17:20:35 -0500 Subject: [PATCH 3/5] Introduce the usage of unique_ptr into the InputCommon ControlEmu.h class. Allows for the automatic handling of resource deallocation. --- Source/Core/Core/HW/GCPadEmu.cpp | 24 ++-- .../HW/WiimoteEmu/Attachment/Attachment.cpp | 2 +- .../Core/HW/WiimoteEmu/Attachment/Classic.cpp | 16 +-- .../Core/HW/WiimoteEmu/Attachment/Drums.cpp | 12 +- .../Core/HW/WiimoteEmu/Attachment/Guitar.cpp | 22 +-- .../Core/HW/WiimoteEmu/Attachment/Nunchuk.cpp | 20 +-- .../HW/WiimoteEmu/Attachment/Turntable.cpp | 16 +-- .../Core/HW/WiimoteEmu/EmuSubroutines.cpp | 2 +- Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp | 52 +++---- Source/Core/DolphinWX/InputConfigDiag.cpp | 60 +++----- Source/Core/InputCommon/ControllerEmu.cpp | 131 +++++++----------- Source/Core/InputCommon/ControllerEmu.h | 28 ++-- 12 files changed, 170 insertions(+), 215 deletions(-) diff --git a/Source/Core/Core/HW/GCPadEmu.cpp b/Source/Core/Core/HW/GCPadEmu.cpp index fa219c369a..4173b231da 100644 --- a/Source/Core/Core/HW/GCPadEmu.cpp +++ b/Source/Core/Core/HW/GCPadEmu.cpp @@ -55,31 +55,31 @@ GCPad::GCPad(const unsigned int index) : m_index(index) int const mic_hax = index > 1; // buttons - groups.push_back(m_buttons = new Buttons(_trans("Buttons"))); + groups.emplace_back(m_buttons = new Buttons(_trans("Buttons"))); for (unsigned int i=0; i < sizeof(named_buttons)/sizeof(*named_buttons) - mic_hax; ++i) - m_buttons->controls.push_back(new ControlGroup::Input(named_buttons[i])); + m_buttons->controls.emplace_back(new ControlGroup::Input(named_buttons[i])); // sticks - groups.push_back(m_main_stick = new AnalogStick(_trans("Main Stick"))); - groups.push_back(m_c_stick = new AnalogStick(_trans("C-Stick"))); + groups.emplace_back(m_main_stick = new AnalogStick(_trans("Main Stick"))); + groups.emplace_back(m_c_stick = new AnalogStick(_trans("C-Stick"))); // triggers - groups.push_back(m_triggers = new MixedTriggers(_trans("Triggers"))); + groups.emplace_back(m_triggers = new MixedTriggers(_trans("Triggers"))); for (auto& named_trigger : named_triggers) - m_triggers->controls.push_back(new ControlGroup::Input(named_trigger)); + m_triggers->controls.emplace_back(new ControlGroup::Input(named_trigger)); // rumble - groups.push_back(m_rumble = new ControlGroup(_trans("Rumble"))); - m_rumble->controls.push_back(new ControlGroup::Output(_trans("Motor"))); + groups.emplace_back(m_rumble = new ControlGroup(_trans("Rumble"))); + m_rumble->controls.emplace_back(new ControlGroup::Output(_trans("Motor"))); // dpad - groups.push_back(m_dpad = new Buttons(_trans("D-Pad"))); + groups.emplace_back(m_dpad = new Buttons(_trans("D-Pad"))); for (auto& named_direction : named_directions) - m_dpad->controls.push_back(new ControlGroup::Input(named_direction)); + m_dpad->controls.emplace_back(new ControlGroup::Input(named_direction)); // options - groups.push_back(m_options = new ControlGroup(_trans("Options"))); - m_options->settings.push_back(new ControlGroup::Setting(_trans("Background Input"), false)); + groups.emplace_back(m_options = new ControlGroup(_trans("Options"))); + m_options->settings.emplace_back(new ControlGroup::Setting(_trans("Background Input"), false)); } std::string GCPad::GetName() const diff --git a/Source/Core/Core/HW/WiimoteEmu/Attachment/Attachment.cpp b/Source/Core/Core/HW/WiimoteEmu/Attachment/Attachment.cpp index bf4cacfea3..4648eeae86 100644 --- a/Source/Core/Core/HW/WiimoteEmu/Attachment/Attachment.cpp +++ b/Source/Core/Core/HW/WiimoteEmu/Attachment/Attachment.cpp @@ -43,5 +43,5 @@ void Attachment::Reset() void ControllerEmu::Extension::GetState( u8* const data, const bool focus ) { - ((WiimoteEmu::Attachment*)attachments[ active_extension ])->GetState( data, focus ); + ((WiimoteEmu::Attachment*)attachments[active_extension].get())->GetState( data, focus ); } diff --git a/Source/Core/Core/HW/WiimoteEmu/Attachment/Classic.cpp b/Source/Core/Core/HW/WiimoteEmu/Attachment/Classic.cpp index 4ada5fb554..efa4b4a3b7 100644 --- a/Source/Core/Core/HW/WiimoteEmu/Attachment/Classic.cpp +++ b/Source/Core/Core/HW/WiimoteEmu/Attachment/Classic.cpp @@ -56,23 +56,23 @@ static const u16 classic_dpad_bitmasks[] = Classic::Classic(WiimoteEmu::ExtensionReg& _reg) : Attachment(_trans("Classic"), _reg) { // buttons - groups.push_back(m_buttons = new Buttons("Buttons")); + groups.emplace_back(m_buttons = new Buttons("Buttons")); for (auto& classic_button_name : classic_button_names) - m_buttons->controls.push_back(new ControlGroup::Input(classic_button_name)); + m_buttons->controls.emplace_back(new ControlGroup::Input(classic_button_name)); // sticks - groups.push_back(m_left_stick = new AnalogStick(_trans("Left Stick"))); - groups.push_back(m_right_stick = new AnalogStick(_trans("Right Stick"))); + groups.emplace_back(m_left_stick = new AnalogStick(_trans("Left Stick"))); + groups.emplace_back(m_right_stick = new AnalogStick(_trans("Right Stick"))); // triggers - groups.push_back(m_triggers = new MixedTriggers("Triggers")); + groups.emplace_back(m_triggers = new MixedTriggers("Triggers")); for (auto& classic_trigger_name : classic_trigger_names) - m_triggers->controls.push_back(new ControlGroup::Input(classic_trigger_name)); + m_triggers->controls.emplace_back(new ControlGroup::Input(classic_trigger_name)); // dpad - groups.push_back(m_dpad = new Buttons("D-Pad")); + groups.emplace_back(m_dpad = new Buttons("D-Pad")); for (auto& named_direction : named_directions) - m_dpad->controls.push_back(new ControlGroup::Input(named_direction)); + m_dpad->controls.emplace_back(new ControlGroup::Input(named_direction)); // set up register // calibration diff --git a/Source/Core/Core/HW/WiimoteEmu/Attachment/Drums.cpp b/Source/Core/Core/HW/WiimoteEmu/Attachment/Drums.cpp index 1d79de87bf..7a4b2dbeb5 100644 --- a/Source/Core/Core/HW/WiimoteEmu/Attachment/Drums.cpp +++ b/Source/Core/Core/HW/WiimoteEmu/Attachment/Drums.cpp @@ -35,17 +35,17 @@ static const u16 drum_button_bitmasks[] = Drums::Drums(WiimoteEmu::ExtensionReg& _reg) : Attachment(_trans("Drums"), _reg) { // pads - groups.push_back(m_pads = new Buttons(_trans("Pads"))); + groups.emplace_back(m_pads = new Buttons(_trans("Pads"))); for (auto& drum_pad_name : drum_pad_names) - m_pads->controls.push_back(new ControlGroup::Input(drum_pad_name)); + m_pads->controls.emplace_back(new ControlGroup::Input(drum_pad_name)); // stick - groups.push_back(m_stick = new AnalogStick("Stick")); + groups.emplace_back(m_stick = new AnalogStick("Stick")); // buttons - groups.push_back(m_buttons = new Buttons("Buttons")); - m_buttons->controls.push_back(new ControlGroup::Input("-")); - m_buttons->controls.push_back(new ControlGroup::Input("+")); + groups.emplace_back(m_buttons = new Buttons("Buttons")); + m_buttons->controls.emplace_back(new ControlGroup::Input("-")); + m_buttons->controls.emplace_back(new ControlGroup::Input("+")); // set up register // id diff --git a/Source/Core/Core/HW/WiimoteEmu/Attachment/Guitar.cpp b/Source/Core/Core/HW/WiimoteEmu/Attachment/Guitar.cpp index 92b09b1e1a..b00fae43e4 100644 --- a/Source/Core/Core/HW/WiimoteEmu/Attachment/Guitar.cpp +++ b/Source/Core/Core/HW/WiimoteEmu/Attachment/Guitar.cpp @@ -39,26 +39,26 @@ static const u16 guitar_strum_bitmasks[] = Guitar::Guitar(WiimoteEmu::ExtensionReg& _reg) : Attachment(_trans("Guitar"), _reg) { // frets - groups.push_back(m_frets = new Buttons(_trans("Frets"))); + groups.emplace_back(m_frets = new Buttons(_trans("Frets"))); for (auto& guitar_fret_name : guitar_fret_names) - m_frets->controls.push_back(new ControlGroup::Input(guitar_fret_name)); + m_frets->controls.emplace_back(new ControlGroup::Input(guitar_fret_name)); // strum - groups.push_back(m_strum = new Buttons(_trans("Strum"))); - m_strum->controls.push_back(new ControlGroup::Input("Up")); - m_strum->controls.push_back(new ControlGroup::Input("Down")); + groups.emplace_back(m_strum = new Buttons(_trans("Strum"))); + m_strum->controls.emplace_back(new ControlGroup::Input("Up")); + m_strum->controls.emplace_back(new ControlGroup::Input("Down")); // buttons - groups.push_back(m_buttons = new Buttons("Buttons")); - m_buttons->controls.push_back(new ControlGroup::Input("-")); - m_buttons->controls.push_back(new ControlGroup::Input("+")); + groups.emplace_back(m_buttons = new Buttons("Buttons")); + m_buttons->controls.emplace_back(new ControlGroup::Input("-")); + m_buttons->controls.emplace_back(new ControlGroup::Input("+")); // stick - groups.push_back(m_stick = new AnalogStick(_trans("Stick"))); + groups.emplace_back(m_stick = new AnalogStick(_trans("Stick"))); // whammy - groups.push_back(m_whammy = new Triggers(_trans("Whammy"))); - m_whammy->controls.push_back(new ControlGroup::Input(_trans("Bar"))); + groups.emplace_back(m_whammy = new Triggers(_trans("Whammy"))); + m_whammy->controls.emplace_back(new ControlGroup::Input(_trans("Bar"))); // set up register // id diff --git a/Source/Core/Core/HW/WiimoteEmu/Attachment/Nunchuk.cpp b/Source/Core/Core/HW/WiimoteEmu/Attachment/Nunchuk.cpp index 6ffb5bc3a4..bad48c0241 100644 --- a/Source/Core/Core/HW/WiimoteEmu/Attachment/Nunchuk.cpp +++ b/Source/Core/Core/HW/WiimoteEmu/Attachment/Nunchuk.cpp @@ -35,24 +35,24 @@ Nunchuk::Nunchuk(UDPWrapper *wrp, WiimoteEmu::ExtensionReg& _reg) : Attachment(_trans("Nunchuk"), _reg) , m_udpWrap(wrp) { // buttons - groups.push_back(m_buttons = new Buttons("Buttons")); - m_buttons->controls.push_back(new ControlGroup::Input("C")); - m_buttons->controls.push_back(new ControlGroup::Input("Z")); + groups.emplace_back(m_buttons = new Buttons("Buttons")); + m_buttons->controls.emplace_back(new ControlGroup::Input("C")); + m_buttons->controls.emplace_back(new ControlGroup::Input("Z")); // stick - groups.push_back(m_stick = new AnalogStick("Stick")); + groups.emplace_back(m_stick = new AnalogStick("Stick")); // swing - groups.push_back(m_swing = new Force("Swing")); + groups.emplace_back(m_swing = new Force("Swing")); // tilt - groups.push_back(m_tilt = new Tilt("Tilt")); + groups.emplace_back(m_tilt = new Tilt("Tilt")); // shake - groups.push_back(m_shake = new Buttons("Shake")); - m_shake->controls.push_back(new ControlGroup::Input("X")); - m_shake->controls.push_back(new ControlGroup::Input("Y")); - m_shake->controls.push_back(new ControlGroup::Input("Z")); + groups.emplace_back(m_shake = new Buttons("Shake")); + m_shake->controls.emplace_back(new ControlGroup::Input("X")); + m_shake->controls.emplace_back(new ControlGroup::Input("Y")); + m_shake->controls.emplace_back(new ControlGroup::Input("Z")); // set up register // calibration diff --git a/Source/Core/Core/HW/WiimoteEmu/Attachment/Turntable.cpp b/Source/Core/Core/HW/WiimoteEmu/Attachment/Turntable.cpp index e866c3b6df..39a0f8ddaa 100644 --- a/Source/Core/Core/HW/WiimoteEmu/Attachment/Turntable.cpp +++ b/Source/Core/Core/HW/WiimoteEmu/Attachment/Turntable.cpp @@ -33,23 +33,23 @@ static const char* const turntable_button_names[] = Turntable::Turntable(WiimoteEmu::ExtensionReg& _reg) : Attachment(_trans("Turntable"), _reg) { // buttons - groups.push_back(m_buttons = new Buttons("Buttons")); + groups.emplace_back(m_buttons = new Buttons("Buttons")); for (auto& turntable_button_name : turntable_button_names) - m_buttons->controls.push_back(new ControlGroup::Input(turntable_button_name)); + m_buttons->controls.emplace_back(new ControlGroup::Input(turntable_button_name)); // turntables - groups.push_back(m_left_table = new Slider(_trans("Table Left"))); - groups.push_back(m_right_table = new Slider(_trans("Table Right"))); + groups.emplace_back(m_left_table = new Slider(_trans("Table Left"))); + groups.emplace_back(m_right_table = new Slider(_trans("Table Right"))); // stick - groups.push_back(m_stick = new AnalogStick("Stick")); + groups.emplace_back(m_stick = new AnalogStick("Stick")); // effect dial - groups.push_back(m_effect_dial = new Triggers(_trans("Effect"))); - m_effect_dial->controls.push_back(new ControlGroup::Input(_trans("Dial"))); + groups.emplace_back(m_effect_dial = new Triggers(_trans("Effect"))); + m_effect_dial->controls.emplace_back(new ControlGroup::Input(_trans("Dial"))); // crossfade - groups.push_back(m_crossfade = new Slider(_trans("Crossfade"))); + groups.emplace_back(m_crossfade = new Slider(_trans("Crossfade"))); // set up register // id diff --git a/Source/Core/Core/HW/WiimoteEmu/EmuSubroutines.cpp b/Source/Core/Core/HW/WiimoteEmu/EmuSubroutines.cpp index 2014f0b1f4..ebb3ff6adf 100644 --- a/Source/Core/Core/HW/WiimoteEmu/EmuSubroutines.cpp +++ b/Source/Core/Core/HW/WiimoteEmu/EmuSubroutines.cpp @@ -852,7 +852,7 @@ void Wiimote::HandleExtensionSwap() m_extension->active_extension = m_extension->switch_extension; // reset register - ((WiimoteEmu::Attachment*)m_extension->attachments[m_extension->active_extension])->Reset(); + ((WiimoteEmu::Attachment*)m_extension->attachments[m_extension->active_extension].get())->Reset(); } } diff --git a/Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp b/Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp index d3b55759dd..b259334d03 100644 --- a/Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp +++ b/Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp @@ -268,53 +268,53 @@ Wiimote::Wiimote( const unsigned int index ) // ---- set up all the controls ---- // buttons - groups.push_back(m_buttons = new Buttons("Buttons")); + groups.emplace_back(m_buttons = new Buttons("Buttons")); for (auto& named_button : named_buttons) - m_buttons->controls.push_back(new ControlGroup::Input( named_button)); + m_buttons->controls.emplace_back(new ControlGroup::Input( named_button)); // udp - groups.push_back(m_udp = new UDPWrapper(m_index, _trans("UDP Wiimote"))); + groups.emplace_back(m_udp = new UDPWrapper(m_index, _trans("UDP Wiimote"))); // ir - groups.push_back(m_ir = new Cursor(_trans("IR"))); + groups.emplace_back(m_ir = new Cursor(_trans("IR"))); // swing - groups.push_back(m_swing = new Force(_trans("Swing"))); + groups.emplace_back(m_swing = new Force(_trans("Swing"))); // tilt - groups.push_back(m_tilt = new Tilt(_trans("Tilt"))); + groups.emplace_back(m_tilt = new Tilt(_trans("Tilt"))); // shake - groups.push_back(m_shake = new Buttons(_trans("Shake"))); - m_shake->controls.push_back(new ControlGroup::Input("X")); - m_shake->controls.push_back(new ControlGroup::Input("Y")); - m_shake->controls.push_back(new ControlGroup::Input("Z")); + groups.emplace_back(m_shake = new Buttons(_trans("Shake"))); + m_shake->controls.emplace_back(new ControlGroup::Input("X")); + m_shake->controls.emplace_back(new ControlGroup::Input("Y")); + m_shake->controls.emplace_back(new ControlGroup::Input("Z")); // extension - groups.push_back(m_extension = new Extension(_trans("Extension"))); - m_extension->attachments.push_back(new WiimoteEmu::None(m_reg_ext)); - m_extension->attachments.push_back(new WiimoteEmu::Nunchuk(m_udp, m_reg_ext)); - m_extension->attachments.push_back(new WiimoteEmu::Classic(m_reg_ext)); - m_extension->attachments.push_back(new WiimoteEmu::Guitar(m_reg_ext)); - m_extension->attachments.push_back(new WiimoteEmu::Drums(m_reg_ext)); - m_extension->attachments.push_back(new WiimoteEmu::Turntable(m_reg_ext)); + groups.emplace_back(m_extension = new Extension(_trans("Extension"))); + m_extension->attachments.emplace_back(new WiimoteEmu::None(m_reg_ext)); + m_extension->attachments.emplace_back(new WiimoteEmu::Nunchuk(m_udp, m_reg_ext)); + m_extension->attachments.emplace_back(new WiimoteEmu::Classic(m_reg_ext)); + m_extension->attachments.emplace_back(new WiimoteEmu::Guitar(m_reg_ext)); + m_extension->attachments.emplace_back(new WiimoteEmu::Drums(m_reg_ext)); + m_extension->attachments.emplace_back(new WiimoteEmu::Turntable(m_reg_ext)); - m_extension->settings.push_back(new ControlGroup::Setting(_trans("Motion Plus"), 0, 0, 1)); + m_extension->settings.emplace_back(new ControlGroup::Setting(_trans("Motion Plus"), 0, 0, 1)); // rumble - groups.push_back(m_rumble = new ControlGroup(_trans("Rumble"))); - m_rumble->controls.push_back(new ControlGroup::Output(_trans("Motor"))); + groups.emplace_back(m_rumble = new ControlGroup(_trans("Rumble"))); + m_rumble->controls.emplace_back(new ControlGroup::Output(_trans("Motor"))); // dpad - groups.push_back(m_dpad = new Buttons("D-Pad")); + groups.emplace_back(m_dpad = new Buttons("D-Pad")); for (auto& named_direction : named_directions) - m_dpad->controls.push_back(new ControlGroup::Input(named_direction)); + m_dpad->controls.emplace_back(new ControlGroup::Input(named_direction)); // options - groups.push_back( m_options = new ControlGroup(_trans("Options"))); - m_options->settings.push_back(new ControlGroup::Setting(_trans("Background Input"), false)); - m_options->settings.push_back(new ControlGroup::Setting(_trans("Sideways Wiimote"), false)); - m_options->settings.push_back(new ControlGroup::Setting(_trans("Upright Wiimote"), false)); + groups.emplace_back( m_options = new ControlGroup(_trans("Options"))); + m_options->settings.emplace_back(new ControlGroup::Setting(_trans("Background Input"), false)); + m_options->settings.emplace_back(new ControlGroup::Setting(_trans("Sideways Wiimote"), false)); + m_options->settings.emplace_back(new ControlGroup::Setting(_trans("Upright Wiimote"), false)); // TODO: This value should probably be re-read if SYSCONF gets changed m_sensor_bar_on_top = SConfig::GetInstance().m_SYSCONF->GetData("BT.BAR") != 0; diff --git a/Source/Core/DolphinWX/InputConfigDiag.cpp b/Source/Core/DolphinWX/InputConfigDiag.cpp index a8b7b8aaec..5bebb67beb 100644 --- a/Source/Core/DolphinWX/InputConfigDiag.cpp +++ b/Source/Core/DolphinWX/InputConfigDiag.cpp @@ -31,8 +31,7 @@ void GamepadPage::ConfigExtension(wxCommandEvent& event) wxBoxSizer* const main_szr = new wxBoxSizer(wxVERTICAL); const std::size_t orig_size = control_groups.size(); - ControlGroupsSizer* const szr = - new ControlGroupsSizer(ex->attachments[ex->switch_extension], &dlg, this, &control_groups); + ControlGroupsSizer* const szr = new ControlGroupsSizer(ex->attachments[ex->switch_extension].get(), &dlg, this, &control_groups); main_szr->Add(szr, 0, wxLEFT, 5); main_szr->Add(dlg.CreateButtonSizer(wxOK), 0, wxEXPAND | wxLEFT | wxRIGHT | wxBOTTOM, 5); dlg.SetSizerAndFit(main_szr); @@ -49,13 +48,10 @@ PadSettingExtension::PadSettingExtension(wxWindow* const parent, ControllerEmu:: : PadSetting(new wxChoice(parent, -1)) , extension(ext) { - - std::vector::const_iterator - i = extension->attachments.begin(), - e = extension->attachments.end(); - - for (; i!=e; ++i) - ((wxChoice*)wxcontrol)->Append(wxGetTranslation(StrToWxStr((*i)->GetName()))); + for (auto& attachment : extension->attachments) + { + ((wxChoice*)wxcontrol)->Append(wxGetTranslation(StrToWxStr(attachment->GetName()))); + } UpdateGUI(); } @@ -724,20 +720,16 @@ ControlGroupBox::ControlGroupBox(ControllerEmu::ControlGroup* const group, wxWin static_bitmap = NULL; wxFont m_SmallFont(7, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL); - std::vector::iterator - ci = group->controls.begin(), - ce = group->controls.end(); - for (; ci != ce; ++ci) + for (auto& control : group->controls) { + wxStaticText* const label = new wxStaticText(parent, -1, wxGetTranslation(StrToWxStr(control->name))); - wxStaticText* const label = new wxStaticText(parent, -1, wxGetTranslation(StrToWxStr((*ci)->name))); - - ControlButton* const control_button = new ControlButton(parent, (*ci)->control_ref, 80); + ControlButton* const control_button = new ControlButton(parent, control->control_ref.get(), 80); control_button->SetFont(m_SmallFont); control_buttons.push_back(control_button); - if ((*ci)->control_ref->is_input) + if (control->control_ref->is_input) { control_button->SetToolTip(_("Left-click to detect input.\nMiddle-click to clear.\nRight-click for more options.")); control_button->Bind(wxEVT_COMMAND_BUTTON_CLICKED, &GamepadPage::DetectControl, eventsink); @@ -774,17 +766,13 @@ ControlGroupBox::ControlGroupBox(ControllerEmu::ControlGroup* const group, wxWin dc.Clear(); static_bitmap = new wxStaticBitmap(parent, -1, bitmap, wxDefaultPosition, wxDefaultSize, wxBITMAP_TYPE_BMP); - std::vector< ControllerEmu::ControlGroup::Setting* >::const_iterator - i = group->settings.begin(), - e = group->settings.end(); - wxBoxSizer* const szr = new wxBoxSizer(wxVERTICAL); - for (; i!=e; ++i) + for (auto& groupSetting : group->settings) { - PadSettingSpin* setting = new PadSettingSpin(parent, *i); + PadSettingSpin* setting = new PadSettingSpin(parent, groupSetting.get()); setting->wxcontrol->Bind(wxEVT_COMMAND_SPINCTRL_UPDATED, &GamepadPage::AdjustSetting, eventsink); options.push_back(setting); - szr->Add(new wxStaticText(parent, -1, wxGetTranslation(StrToWxStr((*i)->name)))); + szr->Add(new wxStaticText(parent, -1, wxGetTranslation(StrToWxStr(groupSetting->name)))); szr->Add(setting->wxcontrol, 0, wxLEFT, 0); } @@ -802,7 +790,7 @@ ControlGroupBox::ControlGroupBox(ControllerEmu::ControlGroup* const group, wxWin dc.Clear(); static_bitmap = new wxStaticBitmap(parent, -1, bitmap, wxDefaultPosition, wxDefaultSize, wxBITMAP_TYPE_BMP); - PadSettingSpin* const threshold_cbox = new PadSettingSpin(parent, group->settings[0]); + PadSettingSpin* const threshold_cbox = new PadSettingSpin(parent, group->settings[0].get()); threshold_cbox->wxcontrol->Bind(wxEVT_COMMAND_SPINCTRL_UPDATED, &GamepadPage::AdjustSetting, eventsink); threshold_cbox->wxcontrol->SetToolTip(_("Adjust the analog control pressure required to activate buttons.")); @@ -836,16 +824,13 @@ ControlGroupBox::ControlGroupBox(ControllerEmu::ControlGroup* const group, wxWin dc.Clear(); static_bitmap = new wxStaticBitmap(parent, -1, bitmap, wxDefaultPosition, wxDefaultSize, wxBITMAP_TYPE_BMP); - std::vector::const_iterator - i = group->settings.begin(), - e = group->settings.end(); - for (; i!=e; ++i) + for (auto& groupSetting : group->settings) { - PadSettingSpin* setting = new PadSettingSpin(parent, *i); + PadSettingSpin* setting = new PadSettingSpin(parent, groupSetting.get()); setting->wxcontrol->Bind(wxEVT_COMMAND_SPINCTRL_UPDATED, &GamepadPage::AdjustSetting, eventsink); options.push_back(setting); wxBoxSizer* const szr = new wxBoxSizer(wxHORIZONTAL); - szr->Add(new wxStaticText(parent, -1, wxGetTranslation(StrToWxStr((*i)->name))), 0, wxCENTER|wxRIGHT, 3); + szr->Add(new wxStaticText(parent, -1, wxGetTranslation(StrToWxStr(groupSetting->name))), 0, wxCENTER|wxRIGHT, 3); szr->Add(setting->wxcontrol, 0, wxRIGHT, 3); Add(szr, 0, wxALL|wxCENTER, 3); } @@ -877,18 +862,13 @@ ControlGroupBox::ControlGroupBox(ControllerEmu::ControlGroup* const group, wxWin default: { //options - - std::vector::const_iterator - i = group->settings.begin(), - e = group->settings.end(); - for (; i!=e; ++i) + for (auto& groupSetting : group->settings) { - PadSettingCheckBox* setting_cbox = new PadSettingCheckBox(parent, (*i)->value, (*i)->name); + PadSettingCheckBox* setting_cbox = new PadSettingCheckBox(parent, groupSetting->value, groupSetting->name); setting_cbox->wxcontrol->Bind(wxEVT_COMMAND_CHECKBOX_CLICKED, &GamepadPage::AdjustSetting, eventsink); options.push_back(setting_cbox); Add(setting_cbox->wxcontrol, 0, wxALL|wxLEFT, 5); - } } break; @@ -905,9 +885,9 @@ ControlGroupsSizer::ControlGroupsSizer(ControllerEmu* const controller, wxWindow size_t col_size = 0; wxBoxSizer* stacked_groups = NULL; - for (ControllerEmu::ControlGroup* group : controller->groups) + for (auto& group : controller->groups) { - ControlGroupBox* control_group_box = new ControlGroupBox(group, parent, eventsink); + ControlGroupBox* control_group_box = new ControlGroupBox(group.get(), parent, eventsink); wxStaticBoxSizer *control_group = new wxStaticBoxSizer(wxVERTICAL, parent, wxGetTranslation(StrToWxStr(group->name))); control_group->Add(control_group_box); diff --git a/Source/Core/InputCommon/ControllerEmu.cpp b/Source/Core/InputCommon/ControllerEmu.cpp index 1cfa476736..41adb1d536 100644 --- a/Source/Core/InputCommon/ControllerEmu.cpp +++ b/Source/Core/InputCommon/ControllerEmu.cpp @@ -8,55 +8,30 @@ #include #endif -ControllerEmu::~ControllerEmu() -{ - for (ControlGroup* cg : groups) - delete cg; -} - -ControllerEmu::ControlGroup::~ControlGroup() -{ - for (Control* c : controls) - delete c; - - for (Setting* s : settings) - delete s; -} - -ControllerEmu::Extension::~Extension() -{ - for (ControllerEmu* ai : attachments) - delete ai; -} -ControllerEmu::ControlGroup::Control::~Control() -{ - delete control_ref; -} - void ControllerEmu::UpdateReferences(ControllerInterface& devi) { - for (ControlGroup* cg : groups) + for (auto& ctrlGroup : groups) { - for (ControlGroup::Control* control : cg->controls) - devi.UpdateReference(control->control_ref, default_device); + for (auto& control : ctrlGroup->controls) + devi.UpdateReference(control->control_ref.get(), default_device); // extension - if (GROUP_TYPE_EXTENSION == cg->type) + if (ctrlGroup->type == GROUP_TYPE_EXTENSION) { - for (ControllerEmu* ai : ((Extension*)cg)->attachments) - ai->UpdateReferences(devi); + for (auto& attachment : ((Extension*)ctrlGroup.get())->attachments) + attachment->UpdateReferences(devi); } } } void ControllerEmu::UpdateDefaultDevice() { - for (ControlGroup* cg : groups) + for (auto& ctrlGroup : groups) { // extension - if (GROUP_TYPE_EXTENSION == cg->type) + if (ctrlGroup->type == GROUP_TYPE_EXTENSION) { - for (ControllerEmu* ai : ((Extension*)cg)->attachments) + for (auto& ai : ((Extension*)ctrlGroup.get())->attachments) { ai->default_device = default_device; ai->UpdateDefaultDevice(); @@ -70,13 +45,13 @@ void ControllerEmu::ControlGroup::LoadConfig(IniFile::Section *sec, const std::s std::string group(base + name); group += "/"; // settings - for (Setting* s : settings) + for (auto& s : settings) { sec->Get((group + s->name).c_str(), &s->value, s->default_value * 100); s->value /= 100; } - for (Control* c : controls) + for (auto& c : controls) { // control expression sec->Get((group + c->name).c_str(), &c->control_ref->expression, ""); @@ -88,7 +63,7 @@ void ControllerEmu::ControlGroup::LoadConfig(IniFile::Section *sec, const std::s } // extensions - if (GROUP_TYPE_EXTENSION == type) + if (type == GROUP_TYPE_EXTENSION) { Extension* const ext = ((Extension*)this); @@ -97,7 +72,7 @@ void ControllerEmu::ControlGroup::LoadConfig(IniFile::Section *sec, const std::s std::string extname; sec->Get((base + name).c_str(), &extname, ""); - for (ControllerEmu* ai : ext->attachments) + for (auto& ai : ext->attachments) { ai->default_device.FromString(defdev); ai->LoadConfig(sec, base + ai->GetName() + "/"); @@ -119,7 +94,7 @@ void ControllerEmu::LoadConfig(IniFile::Section *sec, const std::string& base) default_device.FromString(defdev); } - for (ControlGroup* cg : groups) + for (auto& cg : groups) cg->LoadConfig(sec, defdev, base); } @@ -127,10 +102,10 @@ void ControllerEmu::ControlGroup::SaveConfig(IniFile::Section *sec, const std::s { std::string group(base + name); group += "/"; - for (Setting* s : settings) + for (auto& s : settings) sec->Set((group + s->name).c_str(), s->value*100.0f, s->default_value*100.0f); - for (Control* c : controls) + for (auto& c : controls) { // control expression sec->Set((group + c->name).c_str(), c->control_ref->expression, ""); @@ -140,12 +115,12 @@ void ControllerEmu::ControlGroup::SaveConfig(IniFile::Section *sec, const std::s } // extensions - if (GROUP_TYPE_EXTENSION == type) + if (type == GROUP_TYPE_EXTENSION) { Extension* const ext = ((Extension*)this); sec->Set((base + name).c_str(), ext->attachments[ext->switch_extension]->GetName(), "None"); - for (ControllerEmu* ai : ext->attachments) + for (auto& ai : ext->attachments) ai->SaveConfig(sec, base + ai->GetName() + "/"); } } @@ -156,58 +131,58 @@ void ControllerEmu::SaveConfig(IniFile::Section *sec, const std::string& base) if (base.empty()) sec->Set((/*std::string(" ") +*/ base + "Device").c_str(), defdev, ""); - for (ControlGroup* cg : groups) - cg->SaveConfig(sec, defdev, base); + for (auto& ctrlGroup : groups) + ctrlGroup->SaveConfig(sec, defdev, base); } ControllerEmu::AnalogStick::AnalogStick(const char* const _name) : ControlGroup(_name, GROUP_TYPE_STICK) { for (auto& named_direction : named_directions) - controls.push_back(new Input(named_direction)); + controls.emplace_back(new Input(named_direction)); - controls.push_back(new Input(_trans("Modifier"))); + controls.emplace_back(new Input(_trans("Modifier"))); - settings.push_back(new Setting(_trans("Radius"), 0.7f, 0, 100)); - settings.push_back(new Setting(_trans("Dead Zone"), 0, 0, 50)); - settings.push_back(new Setting(_trans("Square Stick"), 0)); + settings.emplace_back(new Setting(_trans("Radius"), 0.7f, 0, 100)); + settings.emplace_back(new Setting(_trans("Dead Zone"), 0, 0, 50)); + settings.emplace_back(new Setting(_trans("Square Stick"), 0)); } ControllerEmu::Buttons::Buttons(const char* const _name) : ControlGroup(_name, GROUP_TYPE_BUTTONS) { - settings.push_back(new Setting(_trans("Threshold"), 0.5f)); + settings.emplace_back(new Setting(_trans("Threshold"), 0.5f)); } ControllerEmu::MixedTriggers::MixedTriggers(const char* const _name) : ControlGroup(_name, GROUP_TYPE_MIXED_TRIGGERS) { - settings.push_back(new Setting(_trans("Threshold"), 0.9f)); + settings.emplace_back(new Setting(_trans("Threshold"), 0.9f)); } ControllerEmu::Triggers::Triggers(const char* const _name) : ControlGroup(_name, GROUP_TYPE_TRIGGERS) { - settings.push_back(new Setting(_trans("Dead Zone"), 0, 0, 50)); + settings.emplace_back(new Setting(_trans("Dead Zone"), 0, 0, 50)); } ControllerEmu::Slider::Slider(const char* const _name) : ControlGroup(_name, GROUP_TYPE_SLIDER) { - controls.push_back(new Input("Left")); - controls.push_back(new Input("Right")); + controls.emplace_back(new Input("Left")); + controls.emplace_back(new Input("Right")); - settings.push_back(new Setting(_trans("Dead Zone"), 0, 0, 50)); + settings.emplace_back(new Setting(_trans("Dead Zone"), 0, 0, 50)); } ControllerEmu::Force::Force(const char* const _name) : ControlGroup(_name, GROUP_TYPE_FORCE) { memset(m_swing, 0, sizeof(m_swing)); - controls.push_back(new Input(_trans("Up"))); - controls.push_back(new Input(_trans("Down"))); - controls.push_back(new Input(_trans("Left"))); - controls.push_back(new Input(_trans("Right"))); - controls.push_back(new Input(_trans("Forward"))); - controls.push_back(new Input(_trans("Backward"))); + controls.emplace_back(new Input(_trans("Up"))); + controls.emplace_back(new Input(_trans("Down"))); + controls.emplace_back(new Input(_trans("Left"))); + controls.emplace_back(new Input(_trans("Right"))); + controls.emplace_back(new Input(_trans("Forward"))); + controls.emplace_back(new Input(_trans("Backward"))); - settings.push_back(new Setting(_trans("Dead Zone"), 0, 0, 50)); + settings.emplace_back(new Setting(_trans("Dead Zone"), 0, 0, 50)); } ControllerEmu::Tilt::Tilt(const char* const _name) @@ -215,16 +190,16 @@ ControllerEmu::Tilt::Tilt(const char* const _name) { memset(m_tilt, 0, sizeof(m_tilt)); - controls.push_back(new Input("Forward")); - controls.push_back(new Input("Backward")); - controls.push_back(new Input("Left")); - controls.push_back(new Input("Right")); + controls.emplace_back(new Input("Forward")); + controls.emplace_back(new Input("Backward")); + controls.emplace_back(new Input("Left")); + controls.emplace_back(new Input("Right")); - controls.push_back(new Input(_trans("Modifier"))); + controls.emplace_back(new Input(_trans("Modifier"))); - settings.push_back(new Setting(_trans("Dead Zone"), 0, 0, 50)); - settings.push_back(new Setting(_trans("Circle Stick"), 0)); - settings.push_back(new Setting(_trans("Angle"), 0.9f, 0, 180)); + settings.emplace_back(new Setting(_trans("Dead Zone"), 0, 0, 50)); + settings.emplace_back(new Setting(_trans("Circle Stick"), 0)); + settings.emplace_back(new Setting(_trans("Angle"), 0.9f, 0, 180)); } ControllerEmu::Cursor::Cursor(const char* const _name) @@ -232,14 +207,14 @@ ControllerEmu::Cursor::Cursor(const char* const _name) , m_z(0) { for (auto& named_direction : named_directions) - controls.push_back(new Input(named_direction)); - controls.push_back(new Input("Forward")); - controls.push_back(new Input("Backward")); - controls.push_back(new Input(_trans("Hide"))); + controls.emplace_back(new Input(named_direction)); + controls.emplace_back(new Input("Forward")); + controls.emplace_back(new Input("Backward")); + controls.emplace_back(new Input(_trans("Hide"))); - settings.push_back(new Setting(_trans("Center"), 0.5f)); - settings.push_back(new Setting(_trans("Width"), 0.5f)); - settings.push_back(new Setting(_trans("Height"), 0.5f)); + settings.emplace_back(new Setting(_trans("Center"), 0.5f)); + settings.emplace_back(new Setting(_trans("Width"), 0.5f)); + settings.emplace_back(new Setting(_trans("Height"), 0.5f)); } diff --git a/Source/Core/InputCommon/ControllerEmu.h b/Source/Core/InputCommon/ControllerEmu.h index b8f67ab833..9fe227fddb 100644 --- a/Source/Core/InputCommon/ControllerEmu.h +++ b/Source/Core/InputCommon/ControllerEmu.h @@ -9,6 +9,7 @@ #define NOMINMAX #include +#include #include #include #include @@ -62,11 +63,11 @@ public: { protected: Control(ControllerInterface::ControlReference* const _ref, const char* const _name) - : control_ref(_ref), name(_name){} - public: + : control_ref(_ref), name(_name) {} - virtual ~Control(); - ControllerInterface::ControlReference* const control_ref; + public: + virtual ~Control() {} + std::unique_ptr const control_ref; const char* const name; }; @@ -77,7 +78,6 @@ public: Input(const char* const _name) : Control(new ControllerInterface::InputReference, _name) {} - }; class Output : public Control @@ -86,7 +86,6 @@ public: Output(const char* const _name) : Control(new ControllerInterface::OutputReference, _name) {} - }; class Setting @@ -108,7 +107,7 @@ public: }; ControlGroup(const char* const _name, const unsigned int _type = GROUP_TYPE_OTHER) : name(_name), type(_type) {} - virtual ~ControlGroup(); + virtual ~ControlGroup() {} virtual void LoadConfig(IniFile::Section *sec, const std::string& defdev = "", const std::string& base = "" ); virtual void SaveConfig(IniFile::Section *sec, const std::string& defdev = "", const std::string& base = "" ); @@ -116,8 +115,8 @@ public: const char* const name; const unsigned int type; - std::vector controls; - std::vector settings; + std::vector> controls; + std::vector> settings; }; @@ -194,7 +193,7 @@ public: template void GetState(C* const buttons, const C* bitmasks) { - for (Control* control : controls) + for (auto& control : controls) { if (control->control_ref->State() > settings[0]->value) // threshold *buttons |= *bitmasks; @@ -425,17 +424,18 @@ public: : ControlGroup(_name, GROUP_TYPE_EXTENSION) , switch_extension(0) , active_extension(0) {} - ~Extension(); + + ~Extension() {} void GetState(u8* const data, const bool focus = true); - std::vector attachments; + std::vector> attachments; int switch_extension; int active_extension; }; - virtual ~ControllerEmu(); + virtual ~ControllerEmu() {} virtual std::string GetName() const = 0; @@ -447,7 +447,7 @@ public: void UpdateReferences(ControllerInterface& devi); - std::vector groups; + std::vector> groups; DeviceQualifier default_device; }; From c31a623780f037f9ee1549a3f988f346b50458b7 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Sat, 1 Feb 2014 18:15:18 -0500 Subject: [PATCH 4/5] Clean up InputConfigDiag.cpp. Changes a bunch of for+iterator loops into foreach loops. --- Source/Core/DolphinWX/InputConfigDiag.cpp | 104 +++++++++------------- 1 file changed, 44 insertions(+), 60 deletions(-) diff --git a/Source/Core/DolphinWX/InputConfigDiag.cpp b/Source/Core/DolphinWX/InputConfigDiag.cpp index 5bebb67beb..ee54c3824b 100644 --- a/Source/Core/DolphinWX/InputConfigDiag.cpp +++ b/Source/Core/DolphinWX/InputConfigDiag.cpp @@ -148,29 +148,25 @@ void InputConfigDialog::UpdateProfileComboBox() const CFileSearch::XStringVector& sv = cfs.GetFileNames(); wxArrayString strs; - CFileSearch::XStringVector::const_iterator si = sv.begin(), - se = sv.end(); - for (; si!=se; ++si) + for (auto si = sv.cbegin(); si != sv.cend(); ++si) { std::string str(si->begin() + si->find_last_of('/') + 1 , si->end() - 4) ; strs.push_back(StrToWxStr(str)); } - std::vector< GamepadPage* >::iterator i = m_padpages.begin(), - e = m_padpages.end(); - for (; i != e; ++i) + for (GamepadPage* page : m_padpages) { - (*i)->profile_cbox->Clear(); - (*i)->profile_cbox->Append(strs); + page->profile_cbox->Clear(); + page->profile_cbox->Append(strs); } } void InputConfigDialog::UpdateControlReferences() { - std::vector< GamepadPage* >::iterator i = m_padpages.begin(), - e = m_padpages.end(); - for (; i != e; ++i) - (*i)->controller->UpdateReferences(g_controller_interface); + for (GamepadPage* page : m_padpages) + { + page->controller->UpdateReferences(g_controller_interface); + } } void InputConfigDialog::ClickSave(wxCommandEvent& event) @@ -188,21 +184,17 @@ void ControlDialog::UpdateListContents() { if (control_reference->is_input) { - // for inputs - std::vector::const_iterator - i = dev->Inputs().begin(), - e = dev->Inputs().end(); - for (; i!=e; ++i) - control_lbox->Append(StrToWxStr((*i)->GetName())); + for (Device::Input* input : dev->Inputs()) + { + control_lbox->Append(StrToWxStr(input->GetName())); + } } - else + else // It's an output { - // for outputs - std::vector::const_iterator - i = dev->Outputs().begin(), - e = dev->Outputs().end(); - for (; i!=e; ++i) - control_lbox->Append(StrToWxStr((*i)->GetName())); + for (Device::Output* output : dev->Outputs()) + { + control_lbox->Append(StrToWxStr(output->GetName())); + } } } } @@ -242,24 +234,19 @@ void GamepadPage::UpdateGUI() { device_cbox->SetValue(StrToWxStr(controller->default_device.ToString())); - std::vector< ControlGroupBox* >::const_iterator g = control_groups.begin(), - ge = control_groups.end(); - for (; g!=ge; ++g) + for (ControlGroupBox* cgBox : control_groups) { - // buttons - std::vector::const_iterator i = (*g)->control_buttons.begin() - , e = (*g)->control_buttons.end(); - for (; i!=e; ++i) { - wxString expr = StrToWxStr((*i)->control_reference->expression); + for (ControlButton* button : cgBox->control_buttons) + { + wxString expr = StrToWxStr(button->control_reference->expression); expr.Replace("&", "&&"); - (*i)->SetLabel(expr); + button->SetLabel(expr); } - // cboxes - std::vector::const_iterator si = (*g)->options.begin() - , se = (*g)->options.end(); - for (; si!=se; ++si) - (*si)->UpdateGUI(); + for (PadSetting* padSetting : cgBox->options) + { + padSetting->UpdateGUI(); + } } } @@ -338,9 +325,10 @@ void ControlDialog::ClearControl(wxCommandEvent&) inline bool IsAlphabetic(wxString &str) { - for (wxString::const_iterator it = str.begin(); it != str.end(); ++it) - if (!isalpha(*it)) + for (wxUniChar c : str) + if (!isalpha(c)) return false; + return true; } @@ -419,7 +407,9 @@ void ControlDialog::AppendControl(wxCommandEvent& event) expr = wxString::Format("%c(%s)", op, selection); } else + { expr = wxString::Format(" %c %s", op, device_expr); + } textctrl->WriteText(expr); control_reference->expression = textctrl->GetValue(); @@ -601,7 +591,7 @@ wxStaticBoxSizer* ControlDialog::CreateControlChooser(GamepadPage* const parent) void GamepadPage::GetProfilePath(std::string& path) { const wxString& name = profile_cbox->GetValue(); - if (false == name.empty()) + if (!name.empty()) { // TODO: check for dumb characters maybe @@ -619,7 +609,7 @@ void GamepadPage::LoadProfile(wxCommandEvent&) std::string fname; GamepadPage::GetProfilePath(fname); - if (false == File::Exists(fname)) + if (!File::Exists(fname)) return; IniFile inifile; @@ -638,7 +628,7 @@ void GamepadPage::SaveProfile(wxCommandEvent&) GamepadPage::GetProfilePath(fname); File::CreateFullPath(fname); - if (false == fname.empty()) + if (!fname.empty()) { IniFile inifile; controller->SaveConfig(inifile.GetOrCreateSection("Profile")); @@ -671,21 +661,18 @@ void GamepadPage::DeleteProfile(wxCommandEvent&) void InputConfigDialog::UpdateDeviceComboBox() { - std::vector< GamepadPage* >::iterator i = m_padpages.begin(), - e = m_padpages.end(); DeviceQualifier dq; - for (; i != e; ++i) + for (GamepadPage* page : m_padpages) { - (*i)->device_cbox->Clear(); - std::vector::const_iterator - di = g_controller_interface.Devices().begin(), - de = g_controller_interface.Devices().end(); - for (; di!=de; ++di) + page->device_cbox->Clear(); + + for (Device* d : g_controller_interface.Devices()) { - dq.FromDevice(*di); - (*i)->device_cbox->Append(StrToWxStr(dq.ToString())); + dq.FromDevice(d); + page->device_cbox->Append(StrToWxStr(dq.ToString())); } - (*i)->device_cbox->SetValue(StrToWxStr((*i)->controller->default_device.ToString())); + + page->device_cbox->SetValue(StrToWxStr(page->controller->default_device.ToString())); } } @@ -706,11 +693,8 @@ void GamepadPage::RefreshDevices(wxCommandEvent&) ControlGroupBox::~ControlGroupBox() { - std::vector::const_iterator - i = options.begin(), - e = options.end(); - for (; i!=e; ++i) - delete *i; + for (PadSetting* padSetting : options) + delete padSetting; } ControlGroupBox::ControlGroupBox(ControllerEmu::ControlGroup* const group, wxWindow* const parent, GamepadPage* const eventsink) From 3efb0aa5f7d6d1aef90a366754fe69fe573a92ab Mon Sep 17 00:00:00 2001 From: Lioncash Date: Sat, 1 Feb 2014 19:13:38 -0500 Subject: [PATCH 5/5] Purely stylistic cleanup of Core/HW/WiimoteEmu/Attachment/* files. Also cleaned up WiimoteEmu.h as well. --- .../HW/WiimoteEmu/Attachment/Attachment.h | 10 +- .../Core/HW/WiimoteEmu/Attachment/Classic.h | 42 +++--- .../Core/HW/WiimoteEmu/Attachment/Drums.h | 22 +-- .../Core/HW/WiimoteEmu/Attachment/Guitar.h | 28 ++-- .../Core/HW/WiimoteEmu/Attachment/Nunchuk.cpp | 22 +-- .../Core/HW/WiimoteEmu/Attachment/Nunchuk.h | 14 +- .../Core/HW/WiimoteEmu/Attachment/Turntable.h | 26 ++-- Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.h | 141 +++++++++--------- 8 files changed, 152 insertions(+), 153 deletions(-) diff --git a/Source/Core/Core/HW/WiimoteEmu/Attachment/Attachment.h b/Source/Core/Core/HW/WiimoteEmu/Attachment/Attachment.h index e965261d21..4ddb5e86f0 100644 --- a/Source/Core/Core/HW/WiimoteEmu/Attachment/Attachment.h +++ b/Source/Core/Core/HW/WiimoteEmu/Attachment/Attachment.h @@ -14,14 +14,14 @@ namespace WiimoteEmu class Attachment : public ControllerEmu { public: - Attachment( const char* const _name, WiimoteEmu::ExtensionReg& _reg ); + Attachment(const char* const _name, WiimoteEmu::ExtensionReg& _reg); - virtual void GetState( u8* const data, const bool focus = true ) {} + virtual void GetState(u8* const data, const bool focus = true) {} void Reset(); std::string GetName() const override; - const char* const name; - WiimoteEmu::ExtensionReg& reg; + const char* const name; + WiimoteEmu::ExtensionReg& reg; u8 id[6]; u8 calibration[0x10]; @@ -30,7 +30,7 @@ public: class None : public Attachment { public: - None( WiimoteEmu::ExtensionReg& _reg ); + None(WiimoteEmu::ExtensionReg& _reg); }; } diff --git a/Source/Core/Core/HW/WiimoteEmu/Attachment/Classic.h b/Source/Core/Core/HW/WiimoteEmu/Attachment/Classic.h index ac68b2ad77..75452d58c0 100644 --- a/Source/Core/Core/HW/WiimoteEmu/Attachment/Classic.h +++ b/Source/Core/Core/HW/WiimoteEmu/Attachment/Classic.h @@ -11,34 +11,34 @@ class Classic : public Attachment { public: Classic(WiimoteEmu::ExtensionReg& _reg); - void GetState( u8* const data, const bool focus ); + void GetState(u8* const data, const bool focus) override; enum { - PAD_RIGHT = 0x80, - PAD_DOWN = 0x40, - TRIGGER_L = 0x20, + PAD_RIGHT = 0x80, + PAD_DOWN = 0x40, + TRIGGER_L = 0x20, BUTTON_MINUS = 0x10, - BUTTON_HOME = 0x08, - BUTTON_PLUS = 0x04, - TRIGGER_R = 0x02, - NOTHING = 0x01, - BUTTON_ZL = 0x8000, - BUTTON_B = 0x4000, - BUTTON_Y = 0x2000, - BUTTON_A = 0x1000, - BUTTON_X = 0x0800, - BUTTON_ZR = 0x0400, - PAD_LEFT = 0x0200, - PAD_UP = 0x0100, + BUTTON_HOME = 0x08, + BUTTON_PLUS = 0x04, + TRIGGER_R = 0x02, + NOTHING = 0x01, + BUTTON_ZL = 0x8000, + BUTTON_B = 0x4000, + BUTTON_Y = 0x2000, + BUTTON_A = 0x1000, + BUTTON_X = 0x0800, + BUTTON_ZR = 0x0400, + PAD_LEFT = 0x0200, + PAD_UP = 0x0100, }; private: - Buttons* m_buttons; - MixedTriggers* m_triggers; - Buttons* m_dpad; - AnalogStick* m_left_stick; - AnalogStick* m_right_stick; + Buttons* m_buttons; + MixedTriggers* m_triggers; + Buttons* m_dpad; + AnalogStick* m_left_stick; + AnalogStick* m_right_stick; }; diff --git a/Source/Core/Core/HW/WiimoteEmu/Attachment/Drums.h b/Source/Core/Core/HW/WiimoteEmu/Attachment/Drums.h index 3771140f10..0ed6a540fa 100644 --- a/Source/Core/Core/HW/WiimoteEmu/Attachment/Drums.h +++ b/Source/Core/Core/HW/WiimoteEmu/Attachment/Drums.h @@ -11,25 +11,25 @@ class Drums : public Attachment { public: Drums(WiimoteEmu::ExtensionReg& _reg); - void GetState( u8* const data, const bool focus ); + void GetState(u8* const data, const bool focus) override; enum { - BUTTON_PLUS = 0x04, + BUTTON_PLUS = 0x04, BUTTON_MINUS = 0x10, - PAD_BASS = 0x0400, - PAD_BLUE = 0x0800, - PAD_GREEN = 0x1000, - PAD_YELLOW = 0x2000, - PAD_RED = 0x4000, - PAD_ORANGE = 0x8000, + PAD_BASS = 0x0400, + PAD_BLUE = 0x0800, + PAD_GREEN = 0x1000, + PAD_YELLOW = 0x2000, + PAD_RED = 0x4000, + PAD_ORANGE = 0x8000, }; private: - Buttons* m_buttons; - Buttons* m_pads; - AnalogStick* m_stick; + Buttons* m_buttons; + Buttons* m_pads; + AnalogStick* m_stick; }; diff --git a/Source/Core/Core/HW/WiimoteEmu/Attachment/Guitar.h b/Source/Core/Core/HW/WiimoteEmu/Attachment/Guitar.h index 1e33830a14..952fcde165 100644 --- a/Source/Core/Core/HW/WiimoteEmu/Attachment/Guitar.h +++ b/Source/Core/Core/HW/WiimoteEmu/Attachment/Guitar.h @@ -11,28 +11,28 @@ class Guitar : public Attachment { public: Guitar(WiimoteEmu::ExtensionReg& _reg); - void GetState( u8* const data, const bool focus ) override; + void GetState(u8* const data, const bool focus) override; enum { - BUTTON_PLUS = 0x04, + BUTTON_PLUS = 0x04, BUTTON_MINUS = 0x10, - BAR_DOWN = 0x40, + BAR_DOWN = 0x40, - BAR_UP = 0x0100, - FRET_YELLOW = 0x0800, - FRET_GREEN = 0x1000, - FRET_BLUE = 0x2000, - FRET_RED = 0x4000, - FRET_ORANGE = 0x8000, + BAR_UP = 0x0100, + FRET_YELLOW = 0x0800, + FRET_GREEN = 0x1000, + FRET_BLUE = 0x2000, + FRET_RED = 0x4000, + FRET_ORANGE = 0x8000, }; private: - Buttons* m_buttons; - Buttons* m_frets; - Buttons* m_strum; - Triggers* m_whammy; - AnalogStick* m_stick; + Buttons* m_buttons; + Buttons* m_frets; + Buttons* m_strum; + Triggers* m_whammy; + AnalogStick* m_stick; }; diff --git a/Source/Core/Core/HW/WiimoteEmu/Attachment/Nunchuk.cpp b/Source/Core/Core/HW/WiimoteEmu/Attachment/Nunchuk.cpp index bad48c0241..89c8d09ecc 100644 --- a/Source/Core/Core/HW/WiimoteEmu/Attachment/Nunchuk.cpp +++ b/Source/Core/Core/HW/WiimoteEmu/Attachment/Nunchuk.cpp @@ -159,24 +159,24 @@ void Nunchuk::GetState(u8* const data, const bool focus) void Nunchuk::LoadDefaults(const ControllerInterface& ciface) { // ugly macroooo - #define set_control(group, num, str) (group)->controls[num]->control_ref->expression = (str) + #define set_control(group, num, str) (group)->controls[num]->control_ref->expression = (str) // Stick - set_control(m_stick, 0, "W"); // up - set_control(m_stick, 1, "S"); // down - set_control(m_stick, 2, "A"); // left - set_control(m_stick, 3, "D"); // right + set_control(m_stick, 0, "W"); // up + set_control(m_stick, 1, "S"); // down + set_control(m_stick, 2, "A"); // left + set_control(m_stick, 3, "D"); // right // Buttons #ifdef _WIN32 - set_control(m_buttons, 0, "LCONTROL"); // C - set_control(m_buttons, 1, "LSHIFT"); // Z + set_control(m_buttons, 0, "LCONTROL"); // C + set_control(m_buttons, 1, "LSHIFT"); // Z #elif __APPLE__ - set_control(m_buttons, 0, "Left Control"); // C - set_control(m_buttons, 1, "Left Shift"); // Z + set_control(m_buttons, 0, "Left Control"); // C + set_control(m_buttons, 1, "Left Shift"); // Z #else - set_control(m_buttons, 0, "Control_L"); // C - set_control(m_buttons, 1, "Shift_L"); // Z + set_control(m_buttons, 0, "Control_L"); // C + set_control(m_buttons, 1, "Shift_L"); // Z #endif } diff --git a/Source/Core/Core/HW/WiimoteEmu/Attachment/Nunchuk.h b/Source/Core/Core/HW/WiimoteEmu/Attachment/Nunchuk.h index 975e1fbfee..13d85ba889 100644 --- a/Source/Core/Core/HW/WiimoteEmu/Attachment/Nunchuk.h +++ b/Source/Core/Core/HW/WiimoteEmu/Attachment/Nunchuk.h @@ -17,7 +17,7 @@ class Nunchuk : public Attachment public: Nunchuk(UDPWrapper * wrp, WiimoteEmu::ExtensionReg& _reg); - virtual void GetState( u8* const data, const bool focus ) override; + virtual void GetState(u8* const data, const bool focus) override; enum { @@ -28,15 +28,15 @@ public: void LoadDefaults(const ControllerInterface& ciface) override; private: - Tilt* m_tilt; - Force* m_swing; + Tilt* m_tilt; + Force* m_swing; - Buttons* m_shake; + Buttons* m_shake; - Buttons* m_buttons; - AnalogStick* m_stick; + Buttons* m_buttons; + AnalogStick* m_stick; - u8 m_shake_step[3]; + u8 m_shake_step[3]; UDPWrapper* const m_udpWrap; }; diff --git a/Source/Core/Core/HW/WiimoteEmu/Attachment/Turntable.h b/Source/Core/Core/HW/WiimoteEmu/Attachment/Turntable.h index c416d69cfc..b593b89cae 100644 --- a/Source/Core/Core/HW/WiimoteEmu/Attachment/Turntable.h +++ b/Source/Core/Core/HW/WiimoteEmu/Attachment/Turntable.h @@ -17,23 +17,25 @@ public: { BUTTON_EUPHORIA = 0x1000, - BUTTON_L_GREEN = 0x0800, - BUTTON_L_RED = 0x20, - BUTTON_L_BLUE = 0x8000, + BUTTON_L_GREEN = 0x0800, + BUTTON_L_RED = 0x20, + BUTTON_L_BLUE = 0x8000, - BUTTON_R_GREEN = 0x2000, - BUTTON_R_RED = 0x02, - BUTTON_R_BLUE = 0x0400, + BUTTON_R_GREEN = 0x2000, + BUTTON_R_RED = 0x02, + BUTTON_R_BLUE = 0x0400, - BUTTON_MINUS = 0x10, - BUTTON_PLUS = 0x04, + BUTTON_MINUS = 0x10, + BUTTON_PLUS = 0x04, }; private: - Buttons* m_buttons; - AnalogStick* m_stick; - Triggers *m_effect_dial; - Slider *m_left_table, *m_right_table, *m_crossfade; + Buttons* m_buttons; + AnalogStick* m_stick; + Triggers* m_effect_dial; + Slider* m_left_table; + Slider* m_right_table; + Slider* m_crossfade; }; diff --git a/Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.h b/Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.h index 356f7aab2d..674b33fd62 100644 --- a/Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.h +++ b/Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.h @@ -18,11 +18,11 @@ #include // Registry sizes -#define WIIMOTE_EEPROM_SIZE (16*1024) -#define WIIMOTE_EEPROM_FREE_SIZE 0x1700 -#define WIIMOTE_REG_SPEAKER_SIZE 10 -#define WIIMOTE_REG_EXT_SIZE 0x100 -#define WIIMOTE_REG_IR_SIZE 0x34 +#define WIIMOTE_EEPROM_SIZE (16*1024) +#define WIIMOTE_EEPROM_FREE_SIZE 0x1700 +#define WIIMOTE_REG_SPEAKER_SIZE 10 +#define WIIMOTE_REG_EXT_SIZE 0x100 +#define WIIMOTE_REG_IR_SIZE 0x34 namespace WiimoteReal { @@ -49,26 +49,26 @@ struct ADPCMState struct ExtensionReg { - u8 unknown1[0x08]; + u8 unknown1[0x08]; // address 0x08 - u8 controller_data[0x06]; - u8 unknown2[0x12]; + u8 controller_data[0x06]; + u8 unknown2[0x12]; // address 0x20 - u8 calibration[0x10]; - u8 unknown3[0x10]; + u8 calibration[0x10]; + u8 unknown3[0x10]; // address 0x40 - u8 encryption_key[0x10]; - u8 unknown4[0xA0]; + u8 encryption_key[0x10]; + u8 unknown4[0xA0]; // address 0xF0 - u8 encryption; - u8 unknown5[0x9]; + u8 encryption; + u8 unknown5[0x9]; // address 0xFA - u8 constant_id[6]; + u8 constant_id[6]; }; extern const ReportFeatures reporting_mode_features[]; @@ -104,21 +104,21 @@ public: enum { - PAD_LEFT = 0x01, - PAD_RIGHT = 0x02, - PAD_DOWN = 0x04, - PAD_UP = 0x08, - BUTTON_PLUS = 0x10, + PAD_LEFT = 0x01, + PAD_RIGHT = 0x02, + PAD_DOWN = 0x04, + PAD_UP = 0x08, + BUTTON_PLUS = 0x10, - BUTTON_TWO = 0x0100, - BUTTON_ONE = 0x0200, - BUTTON_B = 0x0400, - BUTTON_A = 0x0800, - BUTTON_MINUS = 0x1000, - BUTTON_HOME = 0x8000, + BUTTON_TWO = 0x0100, + BUTTON_ONE = 0x0200, + BUTTON_B = 0x0400, + BUTTON_A = 0x0800, + BUTTON_MINUS = 0x1000, + BUTTON_HOME = 0x8000, }; - Wiimote( const unsigned int index ); + Wiimote(const unsigned int index); std::string GetName() const; void Update(); @@ -147,9 +147,9 @@ protected: private: struct ReadRequest { - //u16 channel; - unsigned int address, size, position; - u8* data; + //u16 channel; + u32 address, size, position; + u8* data; }; void Reset(); @@ -164,88 +164,85 @@ private: bool NetPlay_GetWiimoteData(int wiimote, u8* data, u8 size); // control groups - Buttons *m_buttons, *m_dpad, *m_shake; - Cursor* m_ir; - Tilt* m_tilt; - Force* m_swing; - ControlGroup* m_rumble; - Extension* m_extension; - ControlGroup* m_options; + Buttons *m_buttons, *m_dpad, *m_shake; + Cursor* m_ir; + Tilt* m_tilt; + Force* m_swing; + ControlGroup* m_rumble; + Extension* m_extension; + ControlGroup* m_options; // WiiMote accel data - AccelData m_accel; + AccelData m_accel; // wiimote index, 0-3 - const u8 m_index; + const u8 m_index; - double ir_sin, ir_cos; //for the low pass filter + double ir_sin, ir_cos; //for the low pass filter UDPWrapper* m_udp; - bool m_rumble_on; - bool m_speaker_mute; - bool m_motion_plus_present; - bool m_motion_plus_active; + bool m_rumble_on; + bool m_speaker_mute; + bool m_motion_plus_present; + bool m_motion_plus_active; - bool m_reporting_auto; - u8 m_reporting_mode; - u16 m_reporting_channel; + bool m_reporting_auto; + u8 m_reporting_mode; + u16 m_reporting_channel; - u8 m_shake_step[3]; + u8 m_shake_step[3]; - bool m_sensor_bar_on_top; + bool m_sensor_bar_on_top; - wm_status_report m_status; + wm_status_report m_status; ADPCMState m_adpcm_state; // read data request queue // maybe it isn't actually a queue // maybe read requests cancel any current requests - std::queue< ReadRequest > m_read_requests; + std::queue m_read_requests; - wiimote_key m_ext_key; + wiimote_key m_ext_key; - u8 m_eeprom[WIIMOTE_EEPROM_SIZE]; + u8 m_eeprom[WIIMOTE_EEPROM_SIZE]; struct MotionPlusReg { u8 unknown[0xF0]; // address 0xF0 - u8 activated; + u8 activated; u8 unknown2[9]; // address 0xFA - u8 ext_identifier[6]; - - } m_reg_motion_plus; + u8 ext_identifier[6]; + } m_reg_motion_plus; struct IrReg { - u8 data[0x33]; - u8 mode; - - } m_reg_ir; + u8 data[0x33]; + u8 mode; + } m_reg_ir; ExtensionReg m_reg_ext; struct SpeakerReg { - u8 unused_0; - u8 unk_1; - u8 format; + u8 unused_0; + u8 unk_1; + u8 format; // seems to always play at 6khz no matter what this is set to? // or maybe it only applies to pcm input - u16 sample_rate; - u8 volume; - u8 unk_6; - u8 unk_7; - u8 play; - u8 unk_9; - - } m_reg_speaker; + u16 sample_rate; + u8 volume; + u8 unk_6; + u8 unk_7; + u8 play; + u8 unk_9; + } m_reg_speaker; }; void Spy(Wiimote* wm_, const void* data_, size_t size_);