MissionControl/btdrv-mitm/source/controllers/wiicontroller.hpp

53 lines
1.4 KiB
C++

#pragma once
#include "bluetoothcontroller.hpp"
namespace controller {
enum WiiControllerLEDs {
WiiControllerLEDs_P1 = 0x10,
WiiControllerLEDs_P2 = 0x20,
WiiControllerLEDs_P3 = 0x40,
WiiControllerLEDs_P4 = 0x80,
};
struct WiiButtonData {
uint8_t dpad_left : 1;
uint8_t dpad_right : 1;
uint8_t dpad_down : 1;
uint8_t dpad_up : 1;
uint8_t plus : 1;
uint8_t : 0;
uint8_t two : 1;
uint8_t one : 1;
uint8_t B : 1;
uint8_t A : 1;
uint8_t minus : 1;
uint8_t : 2;
uint8_t home : 1;
};
struct WiiAccelerometerData {
uint8_t xyz[3];
};
class WiiController : public BluetoothController {
public:
Result initialize(void);
protected:
WiiController(ControllerType type, const BluetoothAddress *address) : BluetoothController(type, address) {};
Result writeMemory(const BluetoothAddress *address, uint32_t writeaddr, const uint8_t *data, uint8_t length);
Result setReportMode(const BluetoothAddress *address, uint8_t mode);
Result setPlayerLeds(const BluetoothAddress *address, uint8_t mask);
private:
//void mapStickValues(JoystickPosition *dst, const Dualshock4StickData *src);
//void handleInputReport0x01(const Dualshock4ReportData *data);
//void handleInputReport0x11(const Dualshock4ReportData *data);
};
}