Fix DInput and SDL.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7345 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
Jordan Woyak 2011-03-14 21:07:28 +00:00
parent bfe7b028ce
commit a55e63c697
3 changed files with 13 additions and 9 deletions

View File

@ -545,7 +545,11 @@ ControllerInterface::Device::Output* ControllerInterface::Device::FindOutput(con
ControllerInterface::Device::Input* ControllerInterface::FindInput(const std::string& name, const Device* def_dev) const
{
if (def_dev)
return def_dev->FindInput(name);
{
Device::Input* const inp = def_dev->FindInput(name);
if (inp)
return inp;
}
std::vector<Device*>::const_iterator
di = m_devices.begin(),

View File

@ -234,7 +234,7 @@ Joystick::Joystick( /*const LPCDIDEVICEINSTANCE lpddi, */const LPDIRECTINPUTDEVI
// buttons
for (u8 i = 0; i != js_caps.dwButtons; ++i)
AddInput(new Button(i, m_state_in.rgbButtons[m_index]));
AddInput(new Button(i, m_state_in.rgbButtons[i]));
// hats
for (u8 i = 0; i != js_caps.dwPOVs; ++i)
@ -264,7 +264,7 @@ Joystick::Joystick( /*const LPCDIDEVICEINSTANCE lpddi, */const LPDIRECTINPUTDEVI
if (SUCCEEDED(m_device->GetProperty(DIPROP_RANGE, &range.diph)))
{
const LONG base = (range.lMin + range.lMax) / 2;
const LONG& ax = (&m_state_in.lX)[m_index];
const LONG& ax = (&m_state_in.lX)[offset];
// each axis gets a negative and a positive input instance associated with it
AddInput(new Axis(offset, ax, base, range.lMin-base));
@ -470,7 +470,7 @@ bool Joystick::UpdateOutput()
std::string Joystick::Button::GetName() const
{
std::ostringstream ss;
ss << "Button " << m_index;
ss << "Button " << (int)m_index;
return ss.str();
}
@ -481,14 +481,14 @@ std::string Joystick::Axis::GetName() const
if (m_index < 6)
{
ss << "Axis " << (char)('X' + (m_index % 3));
if ( m_index > 2 )
if (m_index > 2)
ss << 'r';
}
// slider
else
ss << "Slider " << m_index-6;
ss << "Slider " << (int)(m_index - 6);
ss << (m_range<0 ? '-' : '+');
ss << (m_range < 0 ? '-' : '+');
return ss.str();
}

View File

@ -241,14 +241,14 @@ int Joystick::GetId() const
std::string Joystick::Button::GetName() const
{
std::ostringstream ss;
ss << "Button " << m_index;
ss << "Button " << (int)m_index;
return ss.str();
}
std::string Joystick::Axis::GetName() const
{
std::ostringstream ss;
ss << "Axis " << m_index << (m_range<0 ? '-' : '+');
ss << "Axis " << (int)m_index << (m_range<0 ? '-' : '+');
return ss.str();
}