2018-11-19 13:20:46 -05:00
|
|
|
#include "PH_GenericInput.h"
|
|
|
|
|
|
|
|
void CPH_GenericInput::Update(uint8* ram)
|
|
|
|
{
|
|
|
|
for(auto* listener : m_listeners)
|
|
|
|
{
|
|
|
|
for(unsigned int i = 0; i < PS2::CControllerInfo::MAX_BUTTONS; i++)
|
|
|
|
{
|
|
|
|
auto button = static_cast<PS2::CControllerInfo::BUTTON>(i);
|
2018-11-20 12:37:18 -05:00
|
|
|
const auto& binding = m_bindingManager.GetBinding(0, button);
|
2018-11-19 13:20:46 -05:00
|
|
|
if(!binding) continue;
|
|
|
|
uint32 value = binding->GetValue();
|
|
|
|
auto currentButtonId = static_cast<PS2::CControllerInfo::BUTTON>(i);
|
|
|
|
if(PS2::CControllerInfo::IsAxis(currentButtonId))
|
|
|
|
{
|
|
|
|
listener->SetAxisState(0, currentButtonId, value & 0xFF, ram);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
listener->SetButtonState(0, currentButtonId, value != 0, ram);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
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(); };
|
2018-11-19 13:20:46 -05:00
|
|
|
}
|