MCPcopy Create free account
hub / github.com/cathery/sys-con / Xbox360Controller

Class Xbox360Controller

source/ControllerLib/Controllers/Xbox360Controller.h:83–119  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

81};
82
83class Xbox360Controller : public IController
84{
85private:
86 IUSBEndpoint *m_inPipe = nullptr;
87 IUSBEndpoint *m_outPipe = nullptr;
88
89 Xbox360ButtonData m_buttonData{};
90
91public:
92 Xbox360Controller(std::unique_ptr<IUSBDevice> &&interface);
93 virtual ~Xbox360Controller() override;
94
95 virtual Result Initialize() override;
96 virtual void Exit() override;
97
98 Result OpenInterfaces();
99 void CloseInterfaces();
100
101 virtual Result GetInput() override;
102
103 virtual NormalizedButtonData GetNormalizedButtonData() override;
104
105 virtual ControllerType GetType() override { return CONTROLLER_XBOX360; }
106
107 inline const Xbox360ButtonData &GetButtonData() { return m_buttonData; };
108
109 float NormalizeTrigger(uint8_t deadzonePercent, uint8_t value);
110 void NormalizeAxis(int16_t x, int16_t y, uint8_t deadzonePercent, float *x_out, float *y_out);
111
112 Result SendInitBytes();
113 Result SetRumble(uint8_t strong_magnitude, uint8_t weak_magnitude);
114
115 Result SetLED(Xbox360LEDValue value);
116
117 static void LoadConfig(const ControllerConfig *config);
118 virtual ControllerConfig *GetConfig() override;
119};

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected