#include #include #include "PH_Generic.h" CPH_Generic::CPH_Generic() { memset(&m_buttonStates, 0, sizeof(m_buttonStates)); memset(&m_axisStates, 0, sizeof(m_axisStates)); } CPH_Generic::~CPH_Generic() { } CPadHandler::FactoryFunction CPH_Generic::GetFactoryFunction() { return []() { return new CPH_Generic(); }; } void CPH_Generic::Update(uint8* ram) { for(auto& interface : m_interfaces) { for(unsigned int i = 0; i < PS2::CControllerInfo::MAX_BUTTONS; i++) { auto button = static_cast(i); if(PS2::CControllerInfo::IsAxis(button)) { float buttonValue = ((m_axisStates[i] + 1.0f) / 2.0f) * 255.f; interface->SetAxisState(0, button, static_cast(buttonValue), ram); } else { interface->SetButtonState(0, button, m_buttonStates[i], ram); } } } } void CPH_Generic::SetButtonState(uint32 buttonId, bool pressed) { assert(buttonId < PS2::CControllerInfo::MAX_BUTTONS); m_buttonStates[buttonId] = pressed; } void CPH_Generic::SetAxisState(uint32 buttonId, float value) { assert(buttonId < PS2::CControllerInfo::MAX_BUTTONS); m_axisStates[buttonId] = value; }