diff options
| author | Jordan Woyak <jordan.woyak@gmail.com> | 2024-03-11 01:46:33 -0500 |
|---|---|---|
| committer | Jordan Woyak <jordan.woyak@gmail.com> | 2024-03-11 03:05:52 -0500 |
| commit | 2ac59bf5813ab44dc3e7f067913b0e951e8b6199 (patch) | |
| tree | f0e62428746dc39b4f6feb93a563b648a879c018 /Source/Core/InputCommon/ControllerInterface | |
| parent | 8098be3dfa07aa529f61ea2ec4ff4077ef01b2d8 (diff) | |
InputCommon: Add Pipes InputBackend class.
Diffstat (limited to 'Source/Core/InputCommon/ControllerInterface')
3 files changed, 15 insertions, 6 deletions
diff --git a/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp b/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp index fa44e8bf79..71dea5512c 100644 --- a/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp +++ b/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp @@ -77,7 +77,7 @@ void ControllerInterface::Initialize(const WindowSystemInfo& wsi) m_input_backends.emplace_back(ciface::evdev::CreateInputBackend(this)); #endif #ifdef CIFACE_USE_PIPES -// nothing needed + m_input_backends.emplace_back(ciface::Pipes::CreateInputBackend(this)); #endif #ifdef CIFACE_USE_DUALSHOCKUDPCLIENT m_input_backends.emplace_back(ciface::DualShockUDPClient::CreateInputBackend(this)); @@ -165,9 +165,6 @@ void ControllerInterface::RefreshDevices(RefreshReason reason) #ifdef CIFACE_USE_ANDROID ciface::Android::PopulateDevices(); #endif -#ifdef CIFACE_USE_PIPES - ciface::Pipes::PopulateDevices(); -#endif for (auto& backend : m_input_backends) backend->PopulateDevices(); diff --git a/Source/Core/InputCommon/ControllerInterface/Pipes/Pipes.cpp b/Source/Core/InputCommon/ControllerInterface/Pipes/Pipes.cpp index af7ad7dc6f..1a2052089e 100644 --- a/Source/Core/InputCommon/ControllerInterface/Pipes/Pipes.cpp +++ b/Source/Core/InputCommon/ControllerInterface/Pipes/Pipes.cpp @@ -39,7 +39,19 @@ static double StringToDouble(const std::string& text) return result; } -void PopulateDevices() +class InputBackend final : public ciface::InputBackend +{ +public: + using ciface::InputBackend::InputBackend; + void PopulateDevices() override; +}; + +std::unique_ptr<ciface::InputBackend> CreateInputBackend(ControllerInterface* controller_interface) +{ + return std::make_unique<InputBackend>(controller_interface); +} + +void InputBackend::PopulateDevices() { // Search the Pipes directory for files that we can open in read-only, // non-blocking mode. The device name is the virtual name of the file. diff --git a/Source/Core/InputCommon/ControllerInterface/Pipes/Pipes.h b/Source/Core/InputCommon/ControllerInterface/Pipes/Pipes.h index 53fefd0cb5..857d5e8128 100644 --- a/Source/Core/InputCommon/ControllerInterface/Pipes/Pipes.h +++ b/Source/Core/InputCommon/ControllerInterface/Pipes/Pipes.h @@ -21,7 +21,7 @@ namespace ciface::Pipes // SET {L, R} [0, 1] // SET {MAIN, C} [0, 1] [0, 1] -void PopulateDevices(); +std::unique_ptr<ciface::InputBackend> CreateInputBackend(ControllerInterface* controller_interface); class PipeDevice : public Core::Device { |
