56511affa2
Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
27 lines
696 B
C++
27 lines
696 B
C++
#include "frontends/libretro/analog.h"
|
|
#include "frontends/libretro/environment.h"
|
|
|
|
#include "libretro.h"
|
|
|
|
#define AXIS_MIN -32768
|
|
#define AXIS_MAX 32767
|
|
|
|
namespace ra2
|
|
{
|
|
|
|
Analog::Analog()
|
|
: myAxisCodes(2)
|
|
{
|
|
myAxisCodes[0] = std::make_pair(RETRO_DEVICE_INDEX_ANALOG_LEFT, RETRO_DEVICE_ID_ANALOG_X);
|
|
myAxisCodes[1] = std::make_pair(RETRO_DEVICE_INDEX_ANALOG_LEFT, RETRO_DEVICE_ID_ANALOG_Y);
|
|
}
|
|
|
|
double Analog::getAxis(int i) const
|
|
{
|
|
const auto & code = myAxisCodes[i];
|
|
const int value = input_state_cb(0, RETRO_DEVICE_ANALOG, code.first, code.second);
|
|
const double axis = 2.0 * double(value - AXIS_MIN) / double(AXIS_MAX - AXIS_MIN) - 1.0;
|
|
return axis;
|
|
}
|
|
|
|
}
|