#pragma once #include "switch.h" #include "IController.h" #include "SwitchControllerHandler.h" #include "SwitchVirtualGamepadHandler.h" #include //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 &&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(); };