Play-/Source/input/PH_GenericInput.cpp

37 lines
923 B
C++
Raw Normal View History

#include "PH_GenericInput.h"
void CPH_GenericInput::Update(uint8* ram)
{
for(auto* listener : m_listeners)
{
2020-09-15 09:24:04 -04:00
for(unsigned int pad = 0; pad < CInputBindingManager::MAX_PADS; pad++)
{
2020-09-15 09:24:04 -04:00
for(unsigned int buttonIdx = 0; buttonIdx < PS2::CControllerInfo::MAX_BUTTONS; buttonIdx++)
{
2020-09-15 09:24:04 -04:00
auto button = static_cast<PS2::CControllerInfo::BUTTON>(buttonIdx);
const auto& binding = m_bindingManager.GetBinding(pad, button);
if(!binding) continue;
uint32 value = binding->GetValue();
2021-09-11 13:27:24 -04:00
if(PS2::CControllerInfo::IsAxis(button))
2020-09-15 09:24:04 -04:00
{
2021-09-11 13:27:24 -04:00
listener->SetAxisState(pad, button, value & 0xFF, ram);
2020-09-15 09:24:04 -04:00
}
else
{
2021-09-11 13:27:24 -04:00
listener->SetButtonState(pad, button, value != 0, ram);
2020-09-15 09:24:04 -04:00
}
}
}
}
}
CInputBindingManager& CPH_GenericInput::GetBindingManager()
{
return m_bindingManager;
}
CPadHandler::FactoryFunction CPH_GenericInput::GetFactoryFunction()
{
2018-11-28 22:32:27 -05:00
return []() { return new CPH_GenericInput(); };
}