diff --git a/stepmania/src/arch/InputHandler/InputHandler_Linux_Joystick.cpp b/stepmania/src/arch/InputHandler/InputHandler_Linux_Joystick.cpp index 73fe27e52e..35f934e535 100644 --- a/stepmania/src/arch/InputHandler/InputHandler_Linux_Joystick.cpp +++ b/stepmania/src/arch/InputHandler/InputHandler_Linux_Joystick.cpp @@ -57,7 +57,16 @@ InputHandler_Linux_Joystick::InputHandler_Linux_Joystick() fds[i] = open( Paths[i], O_RDONLY ); if(fds[i] != -1) + { + char szName[1024]; + ZERO( szName ); + if( ioctl(fds[i], JSIOCGNAME(sizeof(szName)), szName) < 0 ) + m_sDescription[i] = ssprintf( "Unknown joystick at %s", Paths[i] ); + else + m_sDescription[i] = szName; + LOG->Info("Opened %s", Paths[i]); + } } } @@ -148,7 +157,7 @@ void InputHandler_Linux_Joystick::GetDevicesAndDescriptions(vector& continue; vDevicesOut.push_back( InputDevice(DEVICE_JOY1+i) ); - vDescriptionsOut.push_back( ssprintf("Joystick %i", i) ); + vDescriptionsOut.push_back( m_sDescription[i] ); } } diff --git a/stepmania/src/arch/InputHandler/InputHandler_Linux_Joystick.h b/stepmania/src/arch/InputHandler/InputHandler_Linux_Joystick.h index 5746457e38..3d19c153e2 100644 --- a/stepmania/src/arch/InputHandler/InputHandler_Linux_Joystick.h +++ b/stepmania/src/arch/InputHandler/InputHandler_Linux_Joystick.h @@ -15,6 +15,7 @@ public: private: int fds[NUM_JOYSTICKS]; + CString m_sDescription[NUM_JOYSTICKS]; }; #define USE_INPUT_HANDLER_LINUX_JOYSTICK