diff --git a/ControllerUSB/include/Controllers/Dualshock3Controller.h b/ControllerUSB/include/Controllers/Dualshock3Controller.h index 0414024..bdd2ab9 100644 --- a/ControllerUSB/include/Controllers/Dualshock3Controller.h +++ b/ControllerUSB/include/Controllers/Dualshock3Controller.h @@ -157,4 +157,5 @@ public: Status SetLED(Dualshock3LEDValue value); static void LoadConfig(const ControllerConfig *config); + virtual ControllerConfig *GetConfig(); }; \ No newline at end of file diff --git a/ControllerUSB/include/Controllers/Dualshock4Controller.h b/ControllerUSB/include/Controllers/Dualshock4Controller.h index 8d6f798..df6ebe0 100644 --- a/ControllerUSB/include/Controllers/Dualshock4Controller.h +++ b/ControllerUSB/include/Controllers/Dualshock4Controller.h @@ -76,4 +76,5 @@ public: Status SetRumble(uint8_t strong_magnitude, uint8_t weak_magnitude); static void LoadConfig(const ControllerConfig *config); + virtual ControllerConfig *GetConfig(); }; \ No newline at end of file diff --git a/ControllerUSB/include/Controllers/Xbox360Controller.h b/ControllerUSB/include/Controllers/Xbox360Controller.h index 13be98d..2e5c74e 100644 --- a/ControllerUSB/include/Controllers/Xbox360Controller.h +++ b/ControllerUSB/include/Controllers/Xbox360Controller.h @@ -115,4 +115,5 @@ public: Status SetLED(Xbox360LEDValue value); static void LoadConfig(const ControllerConfig *config); + virtual ControllerConfig *GetConfig(); }; \ No newline at end of file diff --git a/ControllerUSB/include/Controllers/Xbox360WirelessController.h b/ControllerUSB/include/Controllers/Xbox360WirelessController.h index f080162..bdf701d 100644 --- a/ControllerUSB/include/Controllers/Xbox360WirelessController.h +++ b/ControllerUSB/include/Controllers/Xbox360WirelessController.h @@ -52,6 +52,7 @@ public: Status OnControllerDisconnect(); static void LoadConfig(const ControllerConfig *config); + virtual ControllerConfig *GetConfig(); Status OutputBuffer(); diff --git a/ControllerUSB/include/Controllers/XboxController.h b/ControllerUSB/include/Controllers/XboxController.h index e035f8e..cbb087b 100644 --- a/ControllerUSB/include/Controllers/XboxController.h +++ b/ControllerUSB/include/Controllers/XboxController.h @@ -81,4 +81,5 @@ public: Status SetRumble(uint8_t strong_magnitude, uint8_t weak_magnitude); static void LoadConfig(const ControllerConfig *config); + virtual ControllerConfig *GetConfig(); }; \ No newline at end of file diff --git a/ControllerUSB/include/Controllers/XboxOneController.h b/ControllerUSB/include/Controllers/XboxOneController.h index b0ec12f..dcf8287 100644 --- a/ControllerUSB/include/Controllers/XboxOneController.h +++ b/ControllerUSB/include/Controllers/XboxOneController.h @@ -110,4 +110,5 @@ public: Status SetRumble(uint8_t strong_magnitude, uint8_t weak_magnitude); static void LoadConfig(const ControllerConfig *config); + virtual ControllerConfig *GetConfig(); }; \ No newline at end of file diff --git a/ControllerUSB/include/IController.h b/ControllerUSB/include/IController.h index 80385c5..36e054f 100644 --- a/ControllerUSB/include/IController.h +++ b/ControllerUSB/include/IController.h @@ -25,14 +25,16 @@ public: //Since Exit is used to clean up resources, no status report should be needed virtual void Exit() = 0; - virtual Status GetInput() = 0; + virtual Status GetInput() { return 1; } - virtual NormalizedButtonData GetNormalizedButtonData() = 0; + virtual NormalizedButtonData GetNormalizedButtonData() { return NormalizedButtonData(); } inline IUSBDevice *GetDevice() { return m_device.get(); } virtual ControllerType GetType() = 0; - virtual Status SetRumble(uint8_t strong_magnitude, uint8_t weak_magnitude) = 0; + virtual Status SetRumble(uint8_t strong_magnitude, uint8_t weak_magnitude) { return 1; } virtual bool IsControllerActive() { return true; } Status OutputBuffer() { return 1; }; + + virtual ControllerConfig *GetConfig() { return nullptr; } }; \ No newline at end of file diff --git a/ControllerUSB/source/Controllers/Dualshock3Controller.cpp b/ControllerUSB/source/Controllers/Dualshock3Controller.cpp index d93dc01..fe2847e 100644 --- a/ControllerUSB/source/Controllers/Dualshock3Controller.cpp +++ b/ControllerUSB/source/Controllers/Dualshock3Controller.cpp @@ -229,4 +229,9 @@ Status Dualshock3Controller::SetLED(Dualshock3LEDValue value) void Dualshock3Controller::LoadConfig(const ControllerConfig *config) { _dualshock3ControllerConfig = *config; +} + +ControllerConfig *Dualshock3Controller::GetConfig() +{ + return &_dualshock3ControllerConfig; } \ No newline at end of file diff --git a/ControllerUSB/source/Controllers/Dualshock4Controller.cpp b/ControllerUSB/source/Controllers/Dualshock4Controller.cpp index 4594608..a0f1b5d 100644 --- a/ControllerUSB/source/Controllers/Dualshock4Controller.cpp +++ b/ControllerUSB/source/Controllers/Dualshock4Controller.cpp @@ -196,4 +196,9 @@ Status Dualshock4Controller::SetRumble(uint8_t strong_magnitude, uint8_t weak_ma void Dualshock4Controller::LoadConfig(const ControllerConfig *config) { _dualshock4ControllerConfig = *config; +} + +ControllerConfig *Dualshock4Controller::GetConfig() +{ + return &_dualshock4ControllerConfig; } \ No newline at end of file diff --git a/ControllerUSB/source/Controllers/Xbox360Controller.cpp b/ControllerUSB/source/Controllers/Xbox360Controller.cpp index 00bec38..36fe93b 100644 --- a/ControllerUSB/source/Controllers/Xbox360Controller.cpp +++ b/ControllerUSB/source/Controllers/Xbox360Controller.cpp @@ -224,4 +224,9 @@ Status Xbox360Controller::SetLED(Xbox360LEDValue value) void Xbox360Controller::LoadConfig(const ControllerConfig *config) { _xbox360ControllerConfig = *config; +} + +ControllerConfig *Xbox360Controller::GetConfig() +{ + return &_xbox360ControllerConfig; } \ No newline at end of file diff --git a/ControllerUSB/source/Controllers/Xbox360WirelessController.cpp b/ControllerUSB/source/Controllers/Xbox360WirelessController.cpp index d6f691a..6b6b0c1 100644 --- a/ControllerUSB/source/Controllers/Xbox360WirelessController.cpp +++ b/ControllerUSB/source/Controllers/Xbox360WirelessController.cpp @@ -248,6 +248,11 @@ void Xbox360WirelessController::LoadConfig(const ControllerConfig *config) _xbox360WControllerConfig = *config; } +ControllerConfig *Xbox360WirelessController::GetConfig() +{ + return &_xbox360WControllerConfig; +} + Status Xbox360WirelessController::OnControllerConnect() { m_outputBuffer.push_back(OutputPacket{reconnectPacket, sizeof(reconnectPacket)}); diff --git a/ControllerUSB/source/Controllers/XboxController.cpp b/ControllerUSB/source/Controllers/XboxController.cpp index 1ca0510..258fd40 100644 --- a/ControllerUSB/source/Controllers/XboxController.cpp +++ b/ControllerUSB/source/Controllers/XboxController.cpp @@ -193,4 +193,9 @@ Status XboxController::SetRumble(uint8_t strong_magnitude, uint8_t weak_magnitud void XboxController::LoadConfig(const ControllerConfig *config) { _xboxControllerConfig = *config; +} + +ControllerConfig *XboxController::GetConfig() +{ + return &_xboxControllerConfig; } \ No newline at end of file diff --git a/ControllerUSB/source/Controllers/XboxOneController.cpp b/ControllerUSB/source/Controllers/XboxOneController.cpp index 3c4cc22..0da4258 100644 --- a/ControllerUSB/source/Controllers/XboxOneController.cpp +++ b/ControllerUSB/source/Controllers/XboxOneController.cpp @@ -314,4 +314,9 @@ Status XboxOneController::SetRumble(uint8_t strong_magnitude, uint8_t weak_magni void XboxOneController::LoadConfig(const ControllerConfig *config) { _xboxoneControllerConfig = *config; +} + +ControllerConfig *XboxOneController::GetConfig() +{ + return &_xboxoneControllerConfig; } \ No newline at end of file