1
0
mirror of https://github.com/cathery/sys-con.git synced 2024-07-05 10:48:46 +00:00
sys-con/SwitchUSB/include/SwitchAbstractedPadHandler.h
2019-10-31 21:00:42 +03:00

38 lines
1.1 KiB
C++

#pragma once
#include "switch.h"
#include "IController.h"
#include "SwitchControllerHandler.h"
#include "SwitchVirtualGamepadHandler.h"
#include <thread>
//Wrapper for AbstractedPad for switch versions [5.0.0 - 8.1.0]
//DOESN'T WORK PROPERLY. See inside SwitchAbstractedPadHandler::FillAbstractedState()
class SwitchAbstractedPadHandler : public SwitchVirtualGamepadHandler
{
private:
s8 m_abstractedPadID;
HiddbgAbstractedPadState m_state;
public:
//Initialize the class with specified controller
SwitchAbstractedPadHandler(std::unique_ptr<IController> &&controller);
~SwitchAbstractedPadHandler();
//Initialize controller handler, AbstractedPadState
Result Initialize() override;
void Exit() override;
//This will be called periodically by the input threads
void UpdateInput() override;
//This will be called periodically by the output threads
void UpdateOutput() override;
//Separately init and close the HDL state
Result InitAbstractedPadState();
Result ExitAbstractedPadState();
void FillAbstractedState(const NormalizedButtonData &data);
Result UpdateAbstractedState();
};