Play-/Source/ui_android/PH_Android.cpp

51 lines
1.1 KiB
C++
Raw Normal View History

#include <cassert>
#include "PH_Android.h"
CPH_Android::CPH_Android()
{
2015-05-16 23:07:24 -04:00
memset(&m_buttonStates, 0, sizeof(m_buttonStates));
memset(&m_axisStates, 0, sizeof(m_axisStates));
}
CPH_Android::~CPH_Android()
{
}
CPadHandler::FactoryFunction CPH_Android::GetFactoryFunction()
{
return [] () { return new CPH_Android(); };
}
void CPH_Android::Update(uint8* ram)
{
for(auto& listener : m_listeners)
{
2015-05-16 23:07:24 -04:00
for(unsigned int i = 0; i < PS2::CControllerInfo::MAX_BUTTONS; i++)
{
auto button = static_cast<PS2::CControllerInfo::BUTTON>(i);
if(PS2::CControllerInfo::IsAxis(button))
{
float buttonValue = ((m_axisStates[i] + 1.0f) / 2.0f) * 255.f;
listener->SetAxisState(0, button, static_cast<uint8>(buttonValue), ram);
}
else
{
listener->SetButtonState(0, button, m_buttonStates[i], ram);
}
2015-05-16 23:07:24 -04:00
}
}
}
void CPH_Android::SetButtonState(uint32 buttonId, bool pressed)
{
assert(buttonId < PS2::CControllerInfo::MAX_BUTTONS);
m_buttonStates[buttonId] = pressed;
}
void CPH_Android::SetAxisState(uint32 buttonId, float value)
{
assert(buttonId < PS2::CControllerInfo::MAX_BUTTONS);
m_axisStates[buttonId] = value;
}