From bf0cc13a47b28ee2647ed71b303e7bd379f33650 Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Mon, 27 Feb 2006 17:51:27 +0000 Subject: [PATCH] Change GetDevicesAndDescriptions to fill in one vector instead of 2 Ignore changes in non-joystick devices when automapping --- stepmania/Themes/default/Languages/en.ini | 2 +- stepmania/src/GameLoop.cpp | 15 ++-- stepmania/src/InputMapper.cpp | 71 ++++++++++++------- stepmania/src/RageInput.cpp | 49 +++++++------ stepmania/src/RageInput.h | 2 +- stepmania/src/RageInputDevice.h | 22 +++++- stepmania/src/StepMania.dsp | 4 +- .../src/arch/InputHandler/InputHandler.h | 2 +- .../arch/InputHandler/InputHandler_Carbon.cpp | 4 +- .../arch/InputHandler/InputHandler_Carbon.h | 2 +- .../InputHandler/InputHandler_DirectInput.cpp | 7 +- .../InputHandler/InputHandler_DirectInput.h | 2 +- .../InputHandler_Linux_Joystick.cpp | 5 +- .../InputHandler_Linux_Joystick.h | 2 +- .../InputHandler/InputHandler_Linux_tty.cpp | 5 +- .../InputHandler/InputHandler_Linux_tty.h | 2 +- .../InputHandler_MonkeyKeyboard.cpp | 5 +- .../InputHandler_MonkeyKeyboard.h | 2 +- .../arch/InputHandler/InputHandler_SDL.cpp | 10 +-- .../src/arch/InputHandler/InputHandler_SDL.h | 2 +- .../InputHandler/InputHandler_Win32_MIDI.cpp | 5 +- .../InputHandler/InputHandler_Win32_MIDI.h | 2 +- .../InputHandler/InputHandler_Win32_Para.cpp | 2 +- .../InputHandler/InputHandler_Win32_Para.h | 2 +- .../InputHandler/InputHandler_Win32_Pump.cpp | 5 +- .../InputHandler/InputHandler_Win32_Pump.h | 2 +- .../arch/InputHandler/InputHandler_X11.cpp | 5 +- .../src/arch/InputHandler/InputHandler_X11.h | 2 +- .../arch/InputHandler/InputHandler_Xbox.cpp | 5 +- .../src/arch/InputHandler/InputHandler_Xbox.h | 2 +- stepmania/src/archutils/Darwin/HIDDevice.h | 2 +- .../src/archutils/Darwin/JoystickDevice.cpp | 5 +- .../src/archutils/Darwin/JoystickDevice.h | 2 +- .../src/archutils/Darwin/KeyboardDevice.cpp | 7 +- .../src/archutils/Darwin/KeyboardDevice.h | 2 +- stepmania/src/archutils/Darwin/PumpDevice.cpp | 5 +- stepmania/src/archutils/Darwin/PumpDevice.h | 2 +- 37 files changed, 148 insertions(+), 124 deletions(-) diff --git a/stepmania/Themes/default/Languages/en.ini b/stepmania/Themes/default/Languages/en.ini index 32a4d4b63d..e0d10782bd 100644 --- a/stepmania/Themes/default/Languages/en.ini +++ b/stepmania/Themes/default/Languages/en.ini @@ -124,7 +124,7 @@ None=None [InputMapper] Connected=Connected Disconnected=Disconnected -Remapping all joysticks.=Remapping all joysticks. +Auto-mapping all joysticks.=Auto-mapping all joysticks. [Language] Name=English diff --git a/stepmania/src/GameLoop.cpp b/stepmania/src/GameLoop.cpp index 2e57a4c6d4..49b1433ac6 100644 --- a/stepmania/src/GameLoop.cpp +++ b/stepmania/src/GameLoop.cpp @@ -77,18 +77,19 @@ static bool ChangeAppPri() #if defined(_WINDOWS) if( g_BoostAppPriority == BOOST_AUTO ) { - vector vDevices; - vector vDescriptions; + vector vDevices; // This can get called before INPUTMAN is constructed. if( INPUTMAN ) { - INPUTMAN->GetDevicesAndDescriptions(vDevices,vDescriptions); - RString sInputDevices = join( ",", vDescriptions ); - if( sInputDevices.find("NTPAD") != string::npos ) + INPUTMAN->GetDevicesAndDescriptions(vDevices); + FOREACH_CONST( InputDeviceInfo, vDevices, d ) { - LOG->Trace( "Using NTPAD. Don't boost priority." ); - return false; + if( d->sDesc.find("NTPAD") != string::npos ) + { + LOG->Trace( "Using NTPAD. Don't boost priority." ); + return false; + } } } } diff --git a/stepmania/src/InputMapper.cpp b/stepmania/src/InputMapper.cpp index 2f5f7ad0b2..275e5d55e6 100644 --- a/stepmania/src/InputMapper.cpp +++ b/stepmania/src/InputMapper.cpp @@ -457,9 +457,8 @@ void InputMapper::ApplyMapping( const Mapping *maps, GameController gc, InputDev void InputMapper::AutoMapJoysticksForCurrentGame() { - vector vDevices; - vector vDescriptions; - INPUTMAN->GetDevicesAndDescriptions(vDevices,vDescriptions); + vector vDevices; + INPUTMAN->GetDevicesAndDescriptions(vDevices); int iNumJoysticksMapped = 0; @@ -467,8 +466,8 @@ void InputMapper::AutoMapJoysticksForCurrentGame() for( unsigned i=0; i vDevices; - vector vsDescriptions; - INPUTMAN->GetDevicesAndDescriptions( vDevices, vsDescriptions ); - RString sInputDevices = join( ",", vsDescriptions ); + // Only check for changes in joysticks since that's all we know how to remap. - if( g_sLastSeenInputDevices.Get() == sInputDevices ) + // update last seen joysticks + vector vDevices; + INPUTMAN->GetDevicesAndDescriptions( vDevices ); + + // Strip non-joysticks. + vector vsLastSeenJoysticks; + split( g_sLastSeenInputDevices, ",", vsLastSeenJoysticks ); + + vector vsCurrent; + vector vsCurrentJoysticks; + for( int i=vDevices.size()-1; i>=0; i-- ) + { + vsCurrent.push_back( vDevices[i].sDesc ); + if( IsJoystick(vDevices[i].id) ) + { + vsCurrentJoysticks.push_back( vDevices[i].sDesc ); + } + else + { + vector::iterator iter = find( vsLastSeenJoysticks.begin(), vsLastSeenJoysticks.end(), vDevices[i].sDesc ); + if( iter != vsLastSeenJoysticks.end() ) + vsLastSeenJoysticks.erase( iter ); + } + } + + + bool bJoysticksChanged = !VectorsAreEqual(vsCurrentJoysticks,vsLastSeenJoysticks); + if( !bJoysticksChanged ) return false; - vector vsLastSeen; - split( g_sLastSeenInputDevices, ",", vsLastSeen ); - vector vsConnects, vsDisconnects; - GetConnectsDisconnects( vsLastSeen, vsDescriptions, vsDisconnects, vsConnects ); + GetConnectsDisconnects( vsLastSeenJoysticks, vsCurrentJoysticks, vsDisconnects, vsConnects ); - sMessage = RString(); + sMessageOut = RString(); if( !vsConnects.empty() ) - sMessage += CONNECTED.GetValue()+": " + join( "\n", vsConnects ) + "\n"; + sMessageOut += CONNECTED.GetValue()+": " + join( "\n", vsConnects ) + "\n"; if( !vsDisconnects.empty() ) - sMessage += DISCONNECTED.GetValue()+": " + join( "\n", vsDisconnects ) + "\n"; + sMessageOut += DISCONNECTED.GetValue()+": " + join( "\n", vsDisconnects ) + "\n"; if( g_bAutoMapOnJoyChange ) { - sMessage += REMAPPING_ALL_JOYSTICKS.GetValue(); + sMessageOut += AUTOMAPPING_ALL_JOYSTICKS.GetValue(); AutoMapJoysticksForCurrentGame(); SaveMappingsToDisk(); MESSAGEMAN->Broadcast( Message_AutoJoyMappingApplied ); } - LOG->Info( sMessage ); + LOG->Info( sMessageOut ); - g_sLastSeenInputDevices.Set( sInputDevices ); + g_sLastSeenInputDevices.Set( join(",",vsCurrent) ); PREFSMAN->SavePrefsToDisk(); return true; diff --git a/stepmania/src/RageInput.cpp b/stepmania/src/RageInput.cpp index 2d397a657e..7a18050908 100644 --- a/stepmania/src/RageInput.cpp +++ b/stepmania/src/RageInput.cpp @@ -62,10 +62,10 @@ bool RageInput::DevicesChanged() return false; } -void RageInput::GetDevicesAndDescriptions( vector& vDevicesOut, vector& vDescriptionsOut ) const +void RageInput::GetDevicesAndDescriptions( vector& vDevicesOut ) const { for( unsigned i = 0; i < m_pDevices.size(); ++i ) - m_pDevices[i]->GetDevicesAndDescriptions( vDevicesOut, vDescriptionsOut ); + m_pDevices[i]->GetDevicesAndDescriptions( vDevicesOut ); } void RageInput::WindowReset() @@ -84,13 +84,14 @@ RString RageInput::GetDeviceSpecificInputString( const DeviceInput &di ) { FOREACH( InputHandler*, m_pDevices, i ) { - vector vDevices; - vector vDescriptions; - (*i)->GetDevicesAndDescriptions( vDevices, vDescriptions ); + vector vDevices; + (*i)->GetDevicesAndDescriptions( vDevices ); - bool bMatch = find(vDevices.begin(), vDevices.end(), di.device) != vDevices.end(); - if( bMatch ) - return (*i)->GetDeviceSpecificInputString(di); + FOREACH_CONST( InputDeviceInfo, vDevices, idi ) + { + if( idi->id == di.device ) + return (*i)->GetDeviceSpecificInputString(di); + } } return di.ToString(); @@ -100,13 +101,14 @@ InputDeviceState RageInput::GetInputDeviceState( InputDevice id ) { FOREACH( InputHandler*, m_pDevices, i ) { - vector vDevices; - vector vDescriptions; - (*i)->GetDevicesAndDescriptions( vDevices, vDescriptions ); + vector vDevices; + (*i)->GetDevicesAndDescriptions( vDevices ); - bool bMatch = find(vDevices.begin(), vDevices.end(), id) != vDevices.end(); - if( bMatch ) - return (*i)->GetInputDeviceState(id); + FOREACH_CONST( InputDeviceInfo, vDevices, idi ) + { + if( idi->id == id ) + return (*i)->GetInputDeviceState(id); + } } return InputDeviceState_INVALID; @@ -114,18 +116,17 @@ InputDeviceState RageInput::GetInputDeviceState( InputDevice id ) RString RageInput::GetDisplayDevicesString() const { - vector vDevices; - vector vDescriptions; + vector vDevices; + GetDevicesAndDescriptions( vDevices ); + vector vs; - GetDevicesAndDescriptions( vDevices, vDescriptions ); - ASSERT( vDevices.size() == vDescriptions.size() ); for( unsigned i=0; i vDevices; + vector vDevices; + p->GetDevicesAndDescriptions( vDevices ); vector vsDescriptions; - p->GetDevicesAndDescriptions( vDevices, vsDescriptions ); + FOREACH_CONST( InputDeviceInfo, vDevices, idi ) + vsDescriptions.push_back( idi->sDesc ); LuaHelpers::CreateTableFromArray( vsDescriptions, L ); return 1; } diff --git a/stepmania/src/RageInput.h b/stepmania/src/RageInput.h index 569fa67364..9189ef1efc 100644 --- a/stepmania/src/RageInput.h +++ b/stepmania/src/RageInput.h @@ -17,7 +17,7 @@ public: void LoadDrivers(); void Update(); bool DevicesChanged(); - void GetDevicesAndDescriptions( vector& vDevicesOut, vector& vsDescriptionsOut ) const; + void GetDevicesAndDescriptions( vector& vOut ) const; void WindowReset(); void AddHandler( InputHandler *pHandler ); RString GetDeviceSpecificInputString( const DeviceInput &di ); diff --git a/stepmania/src/RageInputDevice.h b/stepmania/src/RageInputDevice.h index 56d9d737f2..0048f320c7 100644 --- a/stepmania/src/RageInputDevice.h +++ b/stepmania/src/RageInputDevice.h @@ -36,6 +36,26 @@ enum InputDevice #define FOREACH_InputDevice( i ) FOREACH_ENUM( InputDevice, NUM_INPUT_DEVICES, i ) const RString& InputDeviceToString( InputDevice i ); InputDevice StringToInputDevice( const RString& s ); +inline bool IsJoystick( InputDevice id ) { return DEVICE_JOY1 <= id && id < DEVICE_JOY1+NUM_JOYSTICKS; } + + +struct InputDeviceInfo +{ + InputDeviceInfo( InputDevice id_, RString sDesc_ ) + { + id = id_; + sDesc = sDesc_; + } + + InputDevice id; + RString sDesc; + + bool operator==( const InputDeviceInfo &other ) const + { + return id == other.id && + sDesc == other.sDesc; + } +}; enum InputDeviceState @@ -302,7 +322,7 @@ public: char ToChar() const; - bool IsJoystick() const { return DEVICE_JOY1 <= device && device < DEVICE_JOY1+NUM_JOYSTICKS; } + bool IsJoystick() const { return ::IsJoystick(device); } }; #endif diff --git a/stepmania/src/StepMania.dsp b/stepmania/src/StepMania.dsp index 87072d7dc9..3cee081ac9 100644 --- a/stepmania/src/StepMania.dsp +++ b/stepmania/src/StepMania.dsp @@ -62,7 +62,7 @@ IntDir=.\../Debug6 TargetDir=\cvs\stepmania\Program TargetName=StepMania-debug SOURCE="$(InputPath)" -PreLink_Cmds=archutils\Win32\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ +PreLink_Cmds=archutils\Win32\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ PostBuild_Cmds=archutils\Win32\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi # End Special Build Tool @@ -99,7 +99,7 @@ IntDir=.\../Release6 TargetDir=\cvs\stepmania\Program TargetName=StepMania SOURCE="$(InputPath)" -PreLink_Cmds=archutils\Win32\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ +PreLink_Cmds=archutils\Win32\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ PostBuild_Cmds=archutils\Win32\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi # End Special Build Tool diff --git a/stepmania/src/arch/InputHandler/InputHandler.h b/stepmania/src/arch/InputHandler/InputHandler.h index ca437ab211..804fbfa1e7 100644 --- a/stepmania/src/arch/InputHandler/InputHandler.h +++ b/stepmania/src/arch/InputHandler/InputHandler.h @@ -29,7 +29,7 @@ public: virtual ~InputHandler() { } virtual void Update() { } virtual bool DevicesChanged() { return false; } - virtual void GetDevicesAndDescriptions( vector& vDevicesOut, vector& vDescriptionsOut ) = 0; + virtual void GetDevicesAndDescriptions( vector& vDevicesOut ) = 0; // Override to return a pretty string that's specific to the controller type. virtual RString GetDeviceSpecificInputString( const DeviceInput &di ); diff --git a/stepmania/src/arch/InputHandler/InputHandler_Carbon.cpp b/stepmania/src/arch/InputHandler/InputHandler_Carbon.cpp index 645acf1738..fa2a393124 100644 --- a/stepmania/src/arch/InputHandler/InputHandler_Carbon.cpp +++ b/stepmania/src/arch/InputHandler/InputHandler_Carbon.cpp @@ -240,10 +240,10 @@ InputHandler_Carbon::InputHandler_Carbon() : m_Sem( "Input thread started" ), m_ } } -void InputHandler_Carbon::GetDevicesAndDescriptions( vector& dev, vector& desc ) +void InputHandler_Carbon::GetDevicesAndDescriptions( vector& vDevices ) { FOREACH_CONST( HIDDevice *, m_vDevices, i ) - (*i)->GetDevicesAndDescriptions( dev, desc ); + (*i)->GetDevicesAndDescriptions( vDevices ); } RString InputHandler_Carbon::GetDeviceSpecificInputString( const DeviceInput &di ) diff --git a/stepmania/src/arch/InputHandler/InputHandler_Carbon.h b/stepmania/src/arch/InputHandler/InputHandler_Carbon.h index 1fd3b16c45..4a868146b9 100644 --- a/stepmania/src/arch/InputHandler/InputHandler_Carbon.h +++ b/stepmania/src/arch/InputHandler/InputHandler_Carbon.h @@ -33,7 +33,7 @@ public: ~InputHandler_Carbon(); bool DevicesChanged() { LockMut( m_ChangeLock ); return m_bChanged; } - void GetDevicesAndDescriptions( vector& vDevicesOut, vector& vDescriptionsOut ); + void GetDevicesAndDescriptions( vector& vDevicesOut ); RString GetDeviceSpecificInputString( const DeviceInput &di ); static void QueueCallBack( void *target, int result, void *refcon, void *sender ); diff --git a/stepmania/src/arch/InputHandler/InputHandler_DirectInput.cpp b/stepmania/src/arch/InputHandler/InputHandler_DirectInput.cpp index 81d89598b7..c4f6187b07 100644 --- a/stepmania/src/arch/InputHandler/InputHandler_DirectInput.cpp +++ b/stepmania/src/arch/InputHandler/InputHandler_DirectInput.cpp @@ -586,13 +586,10 @@ void InputHandler_DInput::InputThreadMain() CloseHandle(Handle); } -void InputHandler_DInput::GetDevicesAndDescriptions( vector& vDevicesOut, vector& vDescriptionsOut ) +void InputHandler_DInput::GetDevicesAndDescriptions( vector& vDevicesOut ) { for( unsigned i=0; i < Devices.size(); ++i ) - { - vDevicesOut.push_back( Devices[i].dev ); - vDescriptionsOut.push_back( Devices[i].JoystickInst.tszProductName ); - } + vDevicesOut.push_back( InputDeviceInfo(Devices[i].dev, Devices[i].JoystickInst.tszProductName) ); } /* diff --git a/stepmania/src/arch/InputHandler/InputHandler_DirectInput.h b/stepmania/src/arch/InputHandler/InputHandler_DirectInput.h index afc6d34490..c6b221b485 100644 --- a/stepmania/src/arch/InputHandler/InputHandler_DirectInput.h +++ b/stepmania/src/arch/InputHandler/InputHandler_DirectInput.h @@ -10,7 +10,7 @@ class InputHandler_DInput: public InputHandler public: InputHandler_DInput(); ~InputHandler_DInput(); - void GetDevicesAndDescriptions( vector& vDevicesOut, vector& vDescriptionsOut ); + void GetDevicesAndDescriptions( vector& vDevicesOut ); void Update(); bool DevicesChanged(); void WindowReset(); diff --git a/stepmania/src/arch/InputHandler/InputHandler_Linux_Joystick.cpp b/stepmania/src/arch/InputHandler/InputHandler_Linux_Joystick.cpp index c44242fe78..9084198df4 100644 --- a/stepmania/src/arch/InputHandler/InputHandler_Linux_Joystick.cpp +++ b/stepmania/src/arch/InputHandler/InputHandler_Linux_Joystick.cpp @@ -179,15 +179,14 @@ void InputHandler_Linux_Joystick::InputThread() InputHandler::UpdateTimer(); } -void InputHandler_Linux_Joystick::GetDevicesAndDescriptions(vector& vDevicesOut, vector& vDescriptionsOut) +void InputHandler_Linux_Joystick::GetDevicesAndDescriptions( vector& vDevicesOut ) { for(int i = 0; i < NUM_JOYSTICKS; ++i) { if (fds[i] < 0) continue; - vDevicesOut.push_back( InputDevice(DEVICE_JOY1+i) ); - vDescriptionsOut.push_back( m_sDescription[i] ); + vDevicesOut.push_back( InputDeviceInfo(InputDevice(DEVICE_JOY1+i), m_sDescription[i]) ); } } diff --git a/stepmania/src/arch/InputHandler/InputHandler_Linux_Joystick.h b/stepmania/src/arch/InputHandler/InputHandler_Linux_Joystick.h index 6de5117b9e..bdb8da2633 100644 --- a/stepmania/src/arch/InputHandler/InputHandler_Linux_Joystick.h +++ b/stepmania/src/arch/InputHandler/InputHandler_Linux_Joystick.h @@ -11,7 +11,7 @@ public: enum { NUM_JOYSTICKS = 4 }; InputHandler_Linux_Joystick(); ~InputHandler_Linux_Joystick(); - void GetDevicesAndDescriptions(vector& vDevicesOut, vector& vDescriptionsOut); + void GetDevicesAndDescriptions( vector& vDevicesOut ); private: static int InputThread_Start( void *p ); diff --git a/stepmania/src/arch/InputHandler/InputHandler_Linux_tty.cpp b/stepmania/src/arch/InputHandler/InputHandler_Linux_tty.cpp index 9cc98a3193..a82dcee151 100644 --- a/stepmania/src/arch/InputHandler/InputHandler_Linux_tty.cpp +++ b/stepmania/src/arch/InputHandler/InputHandler_Linux_tty.cpp @@ -189,10 +189,9 @@ void InputHandler_Linux_tty::Update() InputHandler::UpdateTimer(); } -void InputHandler_Linux_tty::GetDevicesAndDescriptions(vector& vDevicesOut, vector& vDescriptionsOut) +void InputHandler_Linux_tty::GetDevicesAndDescriptions( vector& vDevicesOut ) { - vDevicesOut.push_back( InputDevice(DEVICE_KEYBOARD) ); - vDescriptionsOut.push_back( "Keyboard" ); + vDevicesOut.push_back( InputDeviceInfo(DEVICE_KEYBOARD,"Keyboard") ); } /* diff --git a/stepmania/src/arch/InputHandler/InputHandler_Linux_tty.h b/stepmania/src/arch/InputHandler/InputHandler_Linux_tty.h index 0d663b103a..1f06c9347a 100644 --- a/stepmania/src/arch/InputHandler/InputHandler_Linux_tty.h +++ b/stepmania/src/arch/InputHandler/InputHandler_Linux_tty.h @@ -12,7 +12,7 @@ public: void Update(); InputHandler_Linux_tty(); ~InputHandler_Linux_tty(); - void GetDevicesAndDescriptions(vector& vDevicesOut, vector& vDescriptionsOut); + void GetDevicesAndDescriptions( vector& vDevicesOut ); }; #define USE_INPUT_HANDLER_LINUX_TTY diff --git a/stepmania/src/arch/InputHandler/InputHandler_MonkeyKeyboard.cpp b/stepmania/src/arch/InputHandler/InputHandler_MonkeyKeyboard.cpp index fd2a8d64b7..9acf988399 100644 --- a/stepmania/src/arch/InputHandler/InputHandler_MonkeyKeyboard.cpp +++ b/stepmania/src/arch/InputHandler/InputHandler_MonkeyKeyboard.cpp @@ -12,10 +12,9 @@ InputHandler_MonkeyKeyboard::~InputHandler_MonkeyKeyboard() { } -void InputHandler_MonkeyKeyboard::GetDevicesAndDescriptions(vector& vDevicesOut, vector& vDescriptionsOut) +void InputHandler_MonkeyKeyboard::GetDevicesAndDescriptions( vector& vDevicesOut ) { - vDevicesOut.push_back( InputDevice(DEVICE_KEYBOARD) ); - vDescriptionsOut.push_back( "MonkeyKeyboard" ); + vDevicesOut.push_back( InputDeviceInfo(DEVICE_KEYBOARD,"MonkeyKeyboard") ); } static const DeviceButton g_keys[] = diff --git a/stepmania/src/arch/InputHandler/InputHandler_MonkeyKeyboard.h b/stepmania/src/arch/InputHandler/InputHandler_MonkeyKeyboard.h index 848d165e18..807fee2056 100644 --- a/stepmania/src/arch/InputHandler/InputHandler_MonkeyKeyboard.h +++ b/stepmania/src/arch/InputHandler/InputHandler_MonkeyKeyboard.h @@ -11,7 +11,7 @@ public: void Update(); InputHandler_MonkeyKeyboard(); ~InputHandler_MonkeyKeyboard(); - void GetDevicesAndDescriptions( vector& vDevicesOut, vector& vDescriptionsOut ); + void GetDevicesAndDescriptions( vector& vDevicesOut ); private: RageTimer m_timerPressButton; diff --git a/stepmania/src/arch/InputHandler/InputHandler_SDL.cpp b/stepmania/src/arch/InputHandler/InputHandler_SDL.cpp index 0545e7c3b3..39c0ebdc62 100644 --- a/stepmania/src/arch/InputHandler/InputHandler_SDL.cpp +++ b/stepmania/src/arch/InputHandler/InputHandler_SDL.cpp @@ -248,18 +248,14 @@ void InputHandler_SDL::Update() } -void InputHandler_SDL::GetDevicesAndDescriptions(vector& vDevicesOut, vector& vDescriptionsOut) +void InputHandler_SDL::GetDevicesAndDescriptions( vector& vDevicesOut ) { - vDevicesOut.push_back( DEVICE_KEYBOARD ); - vDescriptionsOut.push_back( "Keyboard" ); + vDevicesOut.push_back( InputDeviceInfo(DEVICE_KEYBOARD,"Keyboard") ); for( int i=0; i& vDevicesOut, vector& vDescriptionsOut); + void GetDevicesAndDescriptions( vector& vDevicesOut ); }; #define USE_INPUT_HANDLER_SDL diff --git a/stepmania/src/arch/InputHandler/InputHandler_Win32_MIDI.cpp b/stepmania/src/arch/InputHandler/InputHandler_Win32_MIDI.cpp index 81073c03d4..6138a4f492 100644 --- a/stepmania/src/arch/InputHandler/InputHandler_Win32_MIDI.cpp +++ b/stepmania/src/arch/InputHandler/InputHandler_Win32_MIDI.cpp @@ -65,12 +65,11 @@ InputHandler_Win32_MIDI::~InputHandler_Win32_MIDI() } } -void InputHandler_Win32_MIDI::GetDevicesAndDescriptions( vector& vDevicesOut, vector& vDescriptionsOut ) +void InputHandler_Win32_MIDI::GetDevicesAndDescriptions( vector& vDevicesOut ) { if( m_bFoundDevice ) { - vDevicesOut.push_back( InputDevice(DEVICE_MIDI) ); - vDescriptionsOut.push_back( "Win32_MIDI" ); + vDevicesOut.push_back( InputDeviceInfo(DEVICE_MIDI,"Win32_MIDI") ); } } diff --git a/stepmania/src/arch/InputHandler/InputHandler_Win32_MIDI.h b/stepmania/src/arch/InputHandler/InputHandler_Win32_MIDI.h index 9ea8d30250..f1e5d66757 100644 --- a/stepmania/src/arch/InputHandler/InputHandler_Win32_MIDI.h +++ b/stepmania/src/arch/InputHandler/InputHandler_Win32_MIDI.h @@ -10,7 +10,7 @@ public: InputHandler_Win32_MIDI(); ~InputHandler_Win32_MIDI(); - void GetDevicesAndDescriptions( vector& vDevicesOut, vector& vDescriptionsOut ); + void GetDevicesAndDescriptions( vector& vDevicesOut ); void SetDev( DeviceInput key, bool pressed ) { ButtonPressed( key, pressed ); } diff --git a/stepmania/src/arch/InputHandler/InputHandler_Win32_Para.cpp b/stepmania/src/arch/InputHandler/InputHandler_Win32_Para.cpp index b02e47f4d1..2526435cdf 100644 --- a/stepmania/src/arch/InputHandler/InputHandler_Win32_Para.cpp +++ b/stepmania/src/arch/InputHandler/InputHandler_Win32_Para.cpp @@ -37,7 +37,7 @@ InputHandler_Win32_Para::InputHandler_Win32_Para() SAFE_DELETE( dev ); } -void InputHandler_Win32_Para::GetDevicesAndDescriptions(vector& vDevicesOut, vector& vDescriptionsOut) +void InputHandler_Win32_Para::GetDevicesAndDescriptions(vector& vDevicesOut ) { // The device appears as a HID joystick } diff --git a/stepmania/src/arch/InputHandler/InputHandler_Win32_Para.h b/stepmania/src/arch/InputHandler/InputHandler_Win32_Para.h index 3a9fb48bf5..c1d72c4ab3 100644 --- a/stepmania/src/arch/InputHandler/InputHandler_Win32_Para.h +++ b/stepmania/src/arch/InputHandler/InputHandler_Win32_Para.h @@ -9,7 +9,7 @@ class InputHandler_Win32_Para: public InputHandler { public: InputHandler_Win32_Para(); - void GetDevicesAndDescriptions( vector& vDevicesOut, vector& vDescriptionsOut ); + void GetDevicesAndDescriptions( vector& vDevicesOut ); }; #define USE_INPUT_HANDLER_WIN32_PARA diff --git a/stepmania/src/arch/InputHandler/InputHandler_Win32_Pump.cpp b/stepmania/src/arch/InputHandler/InputHandler_Win32_Pump.cpp index 2d4437e444..27cc553dd3 100644 --- a/stepmania/src/arch/InputHandler/InputHandler_Win32_Pump.cpp +++ b/stepmania/src/arch/InputHandler/InputHandler_Win32_Pump.cpp @@ -87,14 +87,13 @@ RString InputHandler_Win32_Pump::GetDeviceSpecificInputString( const DeviceInput return InputHandler::GetDeviceSpecificInputString( di ); } -void InputHandler_Win32_Pump::GetDevicesAndDescriptions(vector& vDevicesOut, vector& vDescriptionsOut) +void InputHandler_Win32_Pump::GetDevicesAndDescriptions( vector& vDevicesOut ) { for(int i = 0; i < NUM_PUMPS; ++i) { if( m_pDevice[i].IsOpen() ) { - vDevicesOut.push_back( InputDevice(DEVICE_PUMP1+i) ); - vDescriptionsOut.push_back( "Pump USB" ); + vDevicesOut.push_back( InputDeviceInfo(InputDevice(DEVICE_PUMP1+i),"Pump USB") ); } } } diff --git a/stepmania/src/arch/InputHandler/InputHandler_Win32_Pump.h b/stepmania/src/arch/InputHandler/InputHandler_Win32_Pump.h index 0b74464b18..12bba6e57f 100644 --- a/stepmania/src/arch/InputHandler/InputHandler_Win32_Pump.h +++ b/stepmania/src/arch/InputHandler/InputHandler_Win32_Pump.h @@ -12,7 +12,7 @@ public: InputHandler_Win32_Pump(); ~InputHandler_Win32_Pump(); RString GetDeviceSpecificInputString( const DeviceInput &di ); - void GetDevicesAndDescriptions( vector& vDevicesOut, vector& vDescriptionsOut ); + void GetDevicesAndDescriptions( vector& vDevicesOut ); private: USBDevice *m_pDevice; diff --git a/stepmania/src/arch/InputHandler/InputHandler_X11.cpp b/stepmania/src/arch/InputHandler/InputHandler_X11.cpp index beb3c0c919..9ec943ef6e 100644 --- a/stepmania/src/arch/InputHandler/InputHandler_X11.cpp +++ b/stepmania/src/arch/InputHandler/InputHandler_X11.cpp @@ -170,10 +170,9 @@ void InputHandler_X11::Update() } -void InputHandler_X11::GetDevicesAndDescriptions( vector& vDevicesOut, vector& vDescriptionsOut ) +void InputHandler_X11::GetDevicesAndDescriptions( vector& vDevicesOut ) { - vDevicesOut.push_back( DEVICE_KEYBOARD ); - vDescriptionsOut.push_back( "Keyboard" ); + vDevicesOut.push_back( InputDeviceInfo(DEVICE_KEYBOARD,"Keyboard") ); } /* diff --git a/stepmania/src/arch/InputHandler/InputHandler_X11.h b/stepmania/src/arch/InputHandler/InputHandler_X11.h index a28a901466..4c5b54676b 100644 --- a/stepmania/src/arch/InputHandler/InputHandler_X11.h +++ b/stepmania/src/arch/InputHandler/InputHandler_X11.h @@ -11,7 +11,7 @@ public: InputHandler_X11(); ~InputHandler_X11(); void Update(); - void GetDevicesAndDescriptions( vector& vDevicesOut, vector& vDescriptionsOut ); + void GetDevicesAndDescriptions( vector& vDevicesOut ); }; #define USE_INPUT_HANDLER_X11 diff --git a/stepmania/src/arch/InputHandler/InputHandler_Xbox.cpp b/stepmania/src/arch/InputHandler/InputHandler_Xbox.cpp index 2a30a7a86a..a64d74b404 100644 --- a/stepmania/src/arch/InputHandler/InputHandler_Xbox.cpp +++ b/stepmania/src/arch/InputHandler/InputHandler_Xbox.cpp @@ -161,14 +161,13 @@ void InputHandler_Xbox::Update() InputHandler::UpdateTimer(); } -void InputHandler_Xbox::GetDevicesAndDescriptions(vector& vDevicesOut, vector& vDescriptionsOut) +void InputHandler_Xbox::GetDevicesAndDescriptions( vector& vDevicesOut ) { for( int i=0; i& vDevicesOut, vector& vDescriptionsOut); + void GetDevicesAndDescriptions( vector& vDevicesOut ); private: void getHandles(); diff --git a/stepmania/src/archutils/Darwin/HIDDevice.h b/stepmania/src/archutils/Darwin/HIDDevice.h index 0fdb59c42c..1a8b219390 100644 --- a/stepmania/src/archutils/Darwin/HIDDevice.h +++ b/stepmania/src/archutils/Darwin/HIDDevice.h @@ -117,7 +117,7 @@ public: /* * Add a device and a description for each logical device. */ - virtual void GetDevicesAndDescriptions( vector& dev, vector& desc ) const = 0; + virtual void GetDevicesAndDescriptions( vector& vDevices ) const = 0; }; #endif diff --git a/stepmania/src/archutils/Darwin/JoystickDevice.cpp b/stepmania/src/archutils/Darwin/JoystickDevice.cpp index 1812d629c4..f1422aa3d1 100644 --- a/stepmania/src/archutils/Darwin/JoystickDevice.cpp +++ b/stepmania/src/archutils/Darwin/JoystickDevice.cpp @@ -192,12 +192,11 @@ int JoystickDevice::AssignIDs( InputDevice startID ) return m_vSticks.size(); } -void JoystickDevice::GetDevicesAndDescriptions( vector& dev, vector& desc ) const +void JoystickDevice::GetDevicesAndDescriptions( vector& vDevices ) const { FOREACH_CONST( Joystick, m_vSticks, i ) { - dev.push_back( i->id ); - desc.push_back( GetDescription() ); + vDevices.push_back( InputDeviceInfo(i->id,GetDescription()) ); } } diff --git a/stepmania/src/archutils/Darwin/JoystickDevice.h b/stepmania/src/archutils/Darwin/JoystickDevice.h index 079c82adbd..545920bbda 100644 --- a/stepmania/src/archutils/Darwin/JoystickDevice.h +++ b/stepmania/src/archutils/Darwin/JoystickDevice.h @@ -31,7 +31,7 @@ public: void GetButtonPresses( vector >& vPresses, int cookie, int value, const RageTimer& now ) const; int AssignIDs( InputDevice startID ); - void GetDevicesAndDescriptions( vector& dev, vector& desc ) const; + void GetDevicesAndDescriptions( vector& vDevices ) const; }; diff --git a/stepmania/src/archutils/Darwin/KeyboardDevice.cpp b/stepmania/src/archutils/Darwin/KeyboardDevice.cpp index dadaa6c265..fde1700ea5 100644 --- a/stepmania/src/archutils/Darwin/KeyboardDevice.cpp +++ b/stepmania/src/archutils/Darwin/KeyboardDevice.cpp @@ -165,12 +165,11 @@ void KeyboardDevice::GetButtonPresses( vector >& vPresse } -void KeyboardDevice::GetDevicesAndDescriptions( vector& dev, vector& desc ) const +void KeyboardDevice::GetDevicesAndDescriptions( vector& vDevices ) const { - if( dev.size() && dev[0] == DEVICE_KEYBOARD ) + if( vDevices.size() && vDevices[0] == DEVICE_KEYBOARD ) return; - dev.insert( dev.begin(), DEVICE_KEYBOARD ); - desc.insert( desc.begin(), "Keyboard" ); + vDevices.insert( dev.begin(), InputDeviceInfo(DEVICE_KEYBOARD,"Keyboard") ); } /* diff --git a/stepmania/src/archutils/Darwin/KeyboardDevice.h b/stepmania/src/archutils/Darwin/KeyboardDevice.h index d87a039ca0..b3e8b73dc1 100644 --- a/stepmania/src/archutils/Darwin/KeyboardDevice.h +++ b/stepmania/src/archutils/Darwin/KeyboardDevice.h @@ -17,7 +17,7 @@ protected: public: void GetButtonPresses( vector >& vPresses, int cookie, int value, const RageTimer& now ) const; - void GetDevicesAndDescriptions( vector& dev, vector& desc ) const; + void GetDevicesAndDescriptions( vector& vDevices ) const; }; diff --git a/stepmania/src/archutils/Darwin/PumpDevice.cpp b/stepmania/src/archutils/Darwin/PumpDevice.cpp index c4075c31f2..3e0886fcb1 100644 --- a/stepmania/src/archutils/Darwin/PumpDevice.cpp +++ b/stepmania/src/archutils/Darwin/PumpDevice.cpp @@ -66,10 +66,9 @@ int PumpDevice::AssignIDs( InputDevice startID ) return 1; } -void PumpDevice::GetDevicesAndDescriptions( vector& dev, vector& desc ) const +void PumpDevice::GetDevicesAndDescriptions( vector& vDevices ) const { - dev.push_back( m_Id ); - desc.push_back( "Pump USB" ); + vDevices.push_back( InputDeviceInfo(m_Id,"Pump USB") ); } /* diff --git a/stepmania/src/archutils/Darwin/PumpDevice.h b/stepmania/src/archutils/Darwin/PumpDevice.h index c7c0e690c2..418887a524 100644 --- a/stepmania/src/archutils/Darwin/PumpDevice.h +++ b/stepmania/src/archutils/Darwin/PumpDevice.h @@ -19,7 +19,7 @@ public: void GetButtonPresses( vector >& vPresses, int cookie, int value, const RageTimer& now ) const; int AssignIDs( InputDevice startID ); - void GetDevicesAndDescriptions( vector& dev, vector& desc ) const; + void GetDevicesAndDescriptions( vector& vDevices ) const; }; #endif