From ce5dbc98de04cf2d4bb16c013689cef10d5def8e Mon Sep 17 00:00:00 2001 From: josh Date: Tue, 27 May 2025 10:54:07 -0500 Subject: [PATCH] Enforce parity with Linux api. --- main.cpp | 2 ++ src/platform/linux/jstick_linux.cpp | 40 ++++++++++++++--------------- 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/main.cpp b/main.cpp index 9ce5351..34f7153 100644 --- a/main.cpp +++ b/main.cpp @@ -18,6 +18,8 @@ int main() { return -1; } + int hwid = jstick::Connect(0); + while (jstick::JoystickDetected()) { jstick::ReadEventLoop(); diff --git a/src/platform/linux/jstick_linux.cpp b/src/platform/linux/jstick_linux.cpp index 16594b8..64a25d2 100644 --- a/src/platform/linux/jstick_linux.cpp +++ b/src/platform/linux/jstick_linux.cpp @@ -1,15 +1,8 @@ #include -#ifdef UNIX #include #include #include -#endif - -#ifdef WIN32 -//#include -#endif - #include #include #include @@ -55,6 +48,9 @@ std::string js_device_file(int hwid) { return std::format("/dev/input/js{}", hwid); } + +bool jstick::Initialize() { return true;} + bool jstick::JoystickDetected(int jsHandle) { return std::filesystem::exists(js_device_file(jsHandle)); } @@ -215,37 +211,37 @@ void jstick::ReadEventLoop() { } } -bool jstick::IsButtonDown(const XBoxButton &btn) { +bool jstick::IsButtonDown(const XBoxButton &btn, int hwid) { return btn_state[(uint8_t)btn]; } -Vector2 jstick::GetLeftThumbstickAxis(float deadzone) { return l_thumb;} -Vector2 jstick::GetRightThumbstickAxis(float deadzone) { return r_thumb; } -Vector2 jstick::GetDPadAxis(float deadzone) { return dpad; } +Vector2 jstick::GetLeftThumbstickAxis(float deadzone, int hwid) { return l_thumb;} +Vector2 jstick::GetRightThumbstickAxis(float deadzone, int hwid) { return r_thumb; } +Vector2 jstick::GetDPadAxis(float deadzone, int hwid) { return dpad; } -short jstick::GetRightTrigger() { return r_trigger;} -short jstick::GetLeftTrigger() { return l_trigger; } +short jstick::GetRightTrigger(int hwid) { return r_trigger;} +short jstick::GetLeftTrigger(int hwid) { return l_trigger; } constexpr float short_range = 32768.f; -Vector2 jstick::GetLeftThumbstickAxisNormalized(float deadzone) { - return l_thumb / short_range; +Vector2 jstick::GetLeftThumbstickAxisNormalized(float deadzone, int hwid) { + return GetLeftThumbstickAxis(deadzone, hwid) / short_range; } -Vector2 jstick::GetRightThumbstickAxisNormalized(float deadzone) { - return r_thumb / short_range; +Vector2 jstick::GetRightThumbstickAxisNormalized(float deadzone, int hwid) { + return GetRightThumbstickAxis(deadzone, hwid) / short_range; } -Vector2 jstick::GetDPadAxisNormalized(float deadzone) { +Vector2 jstick::GetDPadAxisNormalized(float deadzone, int hwid) { return dpad / short_range; } -float jstick::GetLeftTriggerNormalized() { +float jstick::GetLeftTriggerNormalized(int hwid) { return l_trigger / short_range; } -float jstick::GetRightTriggerNormalized() { +float jstick::GetRightTriggerNormalized(int hwid) { return r_trigger / short_range; } @@ -256,3 +252,7 @@ jstick::ControllerType jstick::GetDeviceTypeFromName(const std::string &name) { return ControllerType::Unknown; } + +void jstick::Vibrate(int LV, int RV, int hwid) { + +} \ No newline at end of file