ControllerInterface: Make UpdateInput / UpdateOutput return void
The return values here have never been checked, so it doesn't make sense to return a value to begin with.
This commit is contained in:
parent
61fcfc4bf2
commit
f2787f620e
|
@ -135,22 +135,15 @@ void ControllerInterface::Shutdown()
|
||||||
//
|
//
|
||||||
// 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()
|
void ControllerInterface::UpdateInput()
|
||||||
{
|
{
|
||||||
std::unique_lock<std::recursive_mutex> lk(update_lock, std::defer_lock);
|
std::unique_lock<std::recursive_mutex> lk(update_lock, std::defer_lock);
|
||||||
|
|
||||||
if (!lk.try_lock())
|
if (!lk.try_lock())
|
||||||
return false;
|
return;
|
||||||
|
|
||||||
size_t ok_count = 0;
|
|
||||||
|
|
||||||
for (ciface::Core::Device* d : m_devices)
|
for (ciface::Core::Device* d : m_devices)
|
||||||
{
|
d->UpdateInput();
|
||||||
if (d->UpdateInput())
|
|
||||||
++ok_count;
|
|
||||||
}
|
|
||||||
|
|
||||||
return (m_devices.size() == ok_count);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -158,22 +151,15 @@ bool ControllerInterface::UpdateInput()
|
||||||
//
|
//
|
||||||
// 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()
|
void ControllerInterface::UpdateOutput()
|
||||||
{
|
{
|
||||||
std::unique_lock<std::recursive_mutex> lk(update_lock, std::defer_lock);
|
std::unique_lock<std::recursive_mutex> lk(update_lock, std::defer_lock);
|
||||||
|
|
||||||
if (!lk.try_lock())
|
if (!lk.try_lock())
|
||||||
return false;
|
return;
|
||||||
|
|
||||||
size_t ok_count = 0;
|
|
||||||
|
|
||||||
for (ciface::Core::Device* d : m_devices)
|
for (ciface::Core::Device* d : m_devices)
|
||||||
{
|
d->UpdateOutput();
|
||||||
if (d->UpdateOutput())
|
|
||||||
++ok_count;
|
|
||||||
}
|
|
||||||
|
|
||||||
return (m_devices.size() == ok_count);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
|
@ -120,8 +120,8 @@ public:
|
||||||
bool IsInit() const { return m_is_init; }
|
bool IsInit() const { return m_is_init; }
|
||||||
|
|
||||||
void UpdateReference(ControlReference* control, const ciface::Core::DeviceQualifier& default_device) const;
|
void UpdateReference(ControlReference* control, const ciface::Core::DeviceQualifier& default_device) const;
|
||||||
bool UpdateInput();
|
void UpdateInput();
|
||||||
bool UpdateOutput();
|
void UpdateOutput();
|
||||||
|
|
||||||
std::recursive_mutex update_lock;
|
std::recursive_mutex update_lock;
|
||||||
|
|
||||||
|
|
|
@ -177,7 +177,7 @@ std::string Joystick::GetSource() const
|
||||||
|
|
||||||
// update IO
|
// update IO
|
||||||
|
|
||||||
bool Joystick::UpdateInput()
|
void Joystick::UpdateInput()
|
||||||
{
|
{
|
||||||
HRESULT hr = 0;
|
HRESULT hr = 0;
|
||||||
|
|
||||||
|
@ -215,9 +215,7 @@ bool Joystick::UpdateInput()
|
||||||
|
|
||||||
// try reacquire if input lost
|
// try reacquire if input lost
|
||||||
if (DIERR_INPUTLOST == hr || DIERR_NOTACQUIRED == hr)
|
if (DIERR_INPUTLOST == hr || DIERR_NOTACQUIRED == hr)
|
||||||
hr = m_device->Acquire();
|
m_device->Acquire();
|
||||||
|
|
||||||
return SUCCEEDED(hr);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// get name
|
// get name
|
||||||
|
|
|
@ -52,7 +52,7 @@ private:
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
bool UpdateInput();
|
void UpdateInput() override;
|
||||||
|
|
||||||
Joystick(const LPDIRECTINPUTDEVICE8 device, const unsigned int index);
|
Joystick(const LPDIRECTINPUTDEVICE8 device, const unsigned int index);
|
||||||
~Joystick();
|
~Joystick();
|
||||||
|
|
|
@ -139,7 +139,7 @@ void GetMousePos(ControlState* const x, ControlState* const y)
|
||||||
*y = (ControlState)point.y / (ControlState)win_height * 2 - 1;
|
*y = (ControlState)point.y / (ControlState)win_height * 2 - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool KeyboardMouse::UpdateInput()
|
void KeyboardMouse::UpdateInput()
|
||||||
{
|
{
|
||||||
DIMOUSESTATE2 tmp_mouse;
|
DIMOUSESTATE2 tmp_mouse;
|
||||||
|
|
||||||
|
@ -175,11 +175,7 @@ bool KeyboardMouse::UpdateInput()
|
||||||
|
|
||||||
// update mouse cursor
|
// update mouse cursor
|
||||||
GetMousePos(&m_state_in.cursor.x, &m_state_in.cursor.y);
|
GetMousePos(&m_state_in.cursor.x, &m_state_in.cursor.y);
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string KeyboardMouse::GetName() const
|
std::string KeyboardMouse::GetName() const
|
||||||
|
|
|
@ -77,7 +77,7 @@ private:
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
bool UpdateInput();
|
void UpdateInput() override;
|
||||||
|
|
||||||
KeyboardMouse(const LPDIRECTINPUTDEVICE8 kb_device, const LPDIRECTINPUTDEVICE8 mo_device);
|
KeyboardMouse(const LPDIRECTINPUTDEVICE8 kb_device, const LPDIRECTINPUTDEVICE8 mo_device);
|
||||||
~KeyboardMouse();
|
~KeyboardMouse();
|
||||||
|
|
|
@ -100,8 +100,8 @@ public:
|
||||||
virtual std::string GetName() const = 0;
|
virtual std::string GetName() const = 0;
|
||||||
virtual int GetId() const = 0;
|
virtual int GetId() const = 0;
|
||||||
virtual std::string GetSource() const = 0;
|
virtual std::string GetSource() const = 0;
|
||||||
virtual bool UpdateInput() { return true; }
|
virtual void UpdateInput() {}
|
||||||
virtual bool UpdateOutput() { return true; }
|
virtual void UpdateOutput() {}
|
||||||
|
|
||||||
const std::vector<Input*>& Inputs() const { return m_inputs; }
|
const std::vector<Input*>& Inputs() const { return m_inputs; }
|
||||||
const std::vector<Output*>& Outputs() const { return m_outputs; }
|
const std::vector<Output*>& Outputs() const { return m_outputs; }
|
||||||
|
|
|
@ -133,10 +133,8 @@ bool ForceFeedbackDevice::InitForceFeedback(const LPDIRECTINPUTDEVICE8 device, i
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ForceFeedbackDevice::UpdateOutput()
|
void ForceFeedbackDevice::UpdateOutput()
|
||||||
{
|
{
|
||||||
size_t ok_count = 0;
|
|
||||||
|
|
||||||
DIEFFECT eff;
|
DIEFFECT eff;
|
||||||
memset(&eff, 0, sizeof(eff));
|
memset(&eff, 0, sizeof(eff));
|
||||||
eff.dwSize = sizeof(DIEFFECT);
|
eff.dwSize = sizeof(DIEFFECT);
|
||||||
|
@ -151,22 +149,16 @@ bool ForceFeedbackDevice::UpdateOutput()
|
||||||
eff.cbTypeSpecificParams = state.size;
|
eff.cbTypeSpecificParams = state.size;
|
||||||
eff.lpvTypeSpecificParams = state.params;
|
eff.lpvTypeSpecificParams = state.params;
|
||||||
// set params and start effect
|
// set params and start effect
|
||||||
ok_count += SUCCEEDED(state.iface->SetParameters(&eff, DIEP_TYPESPECIFICPARAMS | DIEP_START));
|
state.iface->SetParameters(&eff, DIEP_TYPESPECIFICPARAMS | DIEP_START);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ok_count += SUCCEEDED(state.iface->Stop());
|
state.iface->Stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
state.params = nullptr;
|
state.params = nullptr;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
++ok_count;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return (m_state_out.size() == ok_count);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
|
|
|
@ -52,7 +52,7 @@ private:
|
||||||
|
|
||||||
public:
|
public:
|
||||||
bool InitForceFeedback(const LPDIRECTINPUTDEVICE8, int cAxes);
|
bool InitForceFeedback(const LPDIRECTINPUTDEVICE8, int cAxes);
|
||||||
bool UpdateOutput();
|
void UpdateOutput() override;
|
||||||
|
|
||||||
virtual ~ForceFeedbackDevice();
|
virtual ~ForceFeedbackDevice();
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -53,7 +53,7 @@ private:
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
bool UpdateInput() override;
|
void UpdateInput() override;
|
||||||
|
|
||||||
Keyboard(IOHIDDeviceRef device, std::string name, int index, void *window);
|
Keyboard(IOHIDDeviceRef device, std::string name, int index, void *window);
|
||||||
|
|
||||||
|
|
|
@ -54,7 +54,7 @@ Keyboard::Keyboard(IOHIDDeviceRef device, std::string name, int index, void *win
|
||||||
AddInput(new Button(i, m_mousebuttons[i]));
|
AddInput(new Button(i, m_mousebuttons[i]));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Keyboard::UpdateInput()
|
void Keyboard::UpdateInput()
|
||||||
{
|
{
|
||||||
CGRect bounds = CGRectZero;
|
CGRect bounds = CGRectZero;
|
||||||
uint32_t windowid[1] = { m_windowid };
|
uint32_t windowid[1] = { m_windowid };
|
||||||
|
@ -85,8 +85,6 @@ bool Keyboard::UpdateInput()
|
||||||
m_mousebuttons[0] = CGEventSourceButtonState(kCGEventSourceStateHIDSystemState, kCGMouseButtonLeft);
|
m_mousebuttons[0] = CGEventSourceButtonState(kCGEventSourceStateHIDSystemState, kCGMouseButtonLeft);
|
||||||
m_mousebuttons[1] = CGEventSourceButtonState(kCGEventSourceStateHIDSystemState, kCGMouseButtonRight);
|
m_mousebuttons[1] = CGEventSourceButtonState(kCGEventSourceStateHIDSystemState, kCGMouseButtonRight);
|
||||||
m_mousebuttons[2] = CGEventSourceButtonState(kCGEventSourceStateHIDSystemState, kCGMouseButtonCenter);
|
m_mousebuttons[2] = CGEventSourceButtonState(kCGEventSourceStateHIDSystemState, kCGMouseButtonCenter);
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string Keyboard::GetName() const
|
std::string Keyboard::GetName() const
|
||||||
|
|
|
@ -316,15 +316,13 @@ void Joystick::TriangleEffect::SetState(ControlState state)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
bool Joystick::UpdateInput()
|
void Joystick::UpdateInput()
|
||||||
{
|
{
|
||||||
// each joystick is doin this, o well
|
// each joystick is doin this, o well
|
||||||
SDL_JoystickUpdate();
|
SDL_JoystickUpdate();
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Joystick::UpdateOutput()
|
void Joystick::UpdateOutput()
|
||||||
{
|
{
|
||||||
#ifdef USE_SDL_HAPTIC
|
#ifdef USE_SDL_HAPTIC
|
||||||
for (auto &i : m_state_out)
|
for (auto &i : m_state_out)
|
||||||
|
@ -359,7 +357,6 @@ bool Joystick::UpdateOutput()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string Joystick::GetName() const
|
std::string Joystick::GetName() const
|
||||||
|
|
|
@ -134,8 +134,8 @@ private:
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
public:
|
public:
|
||||||
bool UpdateInput() override;
|
void UpdateInput() override;
|
||||||
bool UpdateOutput() override;
|
void UpdateOutput() override;
|
||||||
|
|
||||||
Joystick(SDL_Joystick* const joystick, const int sdl_index, const unsigned int index);
|
Joystick(SDL_Joystick* const joystick, const int sdl_index, const unsigned int index);
|
||||||
~Joystick();
|
~Joystick();
|
||||||
|
|
|
@ -203,23 +203,19 @@ std::string Device::GetSource() const
|
||||||
|
|
||||||
// Update I/O
|
// Update I/O
|
||||||
|
|
||||||
bool Device::UpdateInput()
|
void Device::UpdateInput()
|
||||||
{
|
{
|
||||||
return (ERROR_SUCCESS == PXInputGetState(m_index, &m_state_in));
|
PXInputGetState(m_index, &m_state_in);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Device::UpdateOutput()
|
void Device::UpdateOutput()
|
||||||
{
|
{
|
||||||
// this if statement is to make rumble work better when multiple ControllerInterfaces are using the device
|
// this if statement is to make rumble work better when multiple ControllerInterfaces are using the device
|
||||||
// only calls XInputSetState if the state changed
|
// only calls XInputSetState if the state changed
|
||||||
if (memcmp(&m_state_out, &m_current_state_out, sizeof(m_state_out)))
|
if (memcmp(&m_state_out, &m_current_state_out, sizeof(m_state_out)))
|
||||||
{
|
{
|
||||||
m_current_state_out = m_state_out;
|
m_current_state_out = m_state_out;
|
||||||
return (ERROR_SUCCESS == PXInputSetState(m_index, &m_state_out));
|
PXInputSetState(m_index, &m_state_out);
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -73,8 +73,8 @@ private:
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
bool UpdateInput();
|
void UpdateInput() override;
|
||||||
bool UpdateOutput();
|
void UpdateOutput() override;
|
||||||
|
|
||||||
Device(const XINPUT_CAPABILITIES& capabilities, u8 index);
|
Device(const XINPUT_CAPABILITIES& capabilities, u8 index);
|
||||||
|
|
||||||
|
|
|
@ -208,7 +208,7 @@ void KeyboardMouse::UpdateCursor()
|
||||||
m_state.cursor.y = win_y / (float)win_attribs.height * 2 - 1;
|
m_state.cursor.y = win_y / (float)win_attribs.height * 2 - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool KeyboardMouse::UpdateInput()
|
void KeyboardMouse::UpdateInput()
|
||||||
{
|
{
|
||||||
XFlush(m_display);
|
XFlush(m_display);
|
||||||
|
|
||||||
|
@ -282,8 +282,6 @@ bool KeyboardMouse::UpdateInput()
|
||||||
m_state.axis.y *= MOUSE_AXIS_SMOOTHING;
|
m_state.axis.y *= MOUSE_AXIS_SMOOTHING;
|
||||||
m_state.axis.y += delta_y;
|
m_state.axis.y += delta_y;
|
||||||
m_state.axis.y /= MOUSE_AXIS_SMOOTHING+1.0f;
|
m_state.axis.y /= MOUSE_AXIS_SMOOTHING+1.0f;
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string KeyboardMouse::GetName() const
|
std::string KeyboardMouse::GetName() const
|
||||||
|
|
|
@ -98,7 +98,7 @@ private:
|
||||||
void UpdateCursor();
|
void UpdateCursor();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
bool UpdateInput() override;
|
void UpdateInput() override;
|
||||||
|
|
||||||
KeyboardMouse(Window window, int opcode, int pointer_deviceid, int keyboard_deviceid);
|
KeyboardMouse(Window window, int opcode, int pointer_deviceid, int keyboard_deviceid);
|
||||||
~KeyboardMouse();
|
~KeyboardMouse();
|
||||||
|
|
|
@ -49,7 +49,7 @@ KeyboardMouse::~KeyboardMouse()
|
||||||
XCloseDisplay(m_display);
|
XCloseDisplay(m_display);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool KeyboardMouse::UpdateInput()
|
void KeyboardMouse::UpdateInput()
|
||||||
{
|
{
|
||||||
XQueryKeymap(m_display, m_state.keyboard);
|
XQueryKeymap(m_display, m_state.keyboard);
|
||||||
|
|
||||||
|
@ -64,8 +64,6 @@ bool KeyboardMouse::UpdateInput()
|
||||||
// the mouse position as a range from -1 to 1
|
// the mouse position as a range from -1 to 1
|
||||||
m_state.cursor.x = (float)win_x / (float)win_attribs.width * 2 - 1;
|
m_state.cursor.x = (float)win_x / (float)win_attribs.width * 2 - 1;
|
||||||
m_state.cursor.y = (float)win_y / (float)win_attribs.height * 2 - 1;
|
m_state.cursor.y = (float)win_y / (float)win_attribs.height * 2 - 1;
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string KeyboardMouse::GetName() const
|
std::string KeyboardMouse::GetName() const
|
||||||
|
|
|
@ -70,7 +70,7 @@ private:
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
bool UpdateInput() override;
|
void UpdateInput() override;
|
||||||
|
|
||||||
KeyboardMouse(Window window);
|
KeyboardMouse(Window window);
|
||||||
~KeyboardMouse();
|
~KeyboardMouse();
|
||||||
|
|
Loading…
Reference in New Issue