[TLAC]: add DIVALLER support
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
#pragma once
|
||||
#include "../IInputDevice.h"
|
||||
#include "DivallerState.h"
|
||||
#include "DivallerButton.h"
|
||||
#include <SetupAPI.h>
|
||||
#include <initguid.h>
|
||||
#include <usbiodef.h>
|
||||
#include <winusb.h>
|
||||
|
||||
namespace TLAC::Input
|
||||
{
|
||||
|
||||
class Divaller : public IInputDevice
|
||||
{
|
||||
public:
|
||||
Divaller();
|
||||
~Divaller();
|
||||
|
||||
static bool TryInitializeInstance();
|
||||
|
||||
bool Initialize();
|
||||
bool PollInput() override;
|
||||
bool SetLED();
|
||||
bool IsDown(DivallerButton button);
|
||||
bool IsUp(DivallerButton button);
|
||||
bool IsTapped(DivallerButton button);
|
||||
bool IsReleased(DivallerButton button);
|
||||
|
||||
bool WasDown(DivallerButton button);
|
||||
bool WasUp(DivallerButton button);
|
||||
uint32_t GetSlider();
|
||||
static inline bool InstanceInitialized() { return instance != nullptr; };
|
||||
static inline Divaller *GetInstance() { return instance; };
|
||||
static inline void DeleteInstance()
|
||||
{
|
||||
delete instance;
|
||||
instance = nullptr;
|
||||
};
|
||||
|
||||
private:
|
||||
static Divaller *instance;
|
||||
DivallerState lastState;
|
||||
DivallerState currentState;
|
||||
WINUSB_INTERFACE_HANDLE hInterfaceHandle;
|
||||
HANDLE hDeviceHandle;
|
||||
UCHAR outputBuffer[100];
|
||||
int *buttonLed = reinterpret_cast<int*>(0x14119b950);
|
||||
uint64_t *partionLed = reinterpret_cast<uint64_t*>(*(uint64_t*)0x140eda330 + 0xc9);
|
||||
uint64_t *sliderLedInit = reinterpret_cast<uint64_t*>((uint64_t*)0x14cc5dea8);
|
||||
UCHAR *sliderLedData = nullptr;
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user