Beispiel #1
0
GamePadDevice::GamePadDevice(const int irr_index, const std::string &name,
                             const int axis_count, const int button_count,
                             GamepadConfig *configuration)
{
    m_type                  = DT_GAMEPAD;
    m_prev_axis_directions  = NULL;
    m_configuration         = configuration;
    GamepadConfig *config = static_cast<GamepadConfig*>(m_configuration);
    if(m_configuration->getNumberOfButtons()<button_count)
    {
        config->setNumberOfButtons(button_count);
    }
    if(m_configuration->getNumberOfAxes()<axis_count)
    {
        config->setNumberOfAxis(axis_count);
    }
    m_prev_axis_directions  = new Input::AxisDirection[axis_count];
    m_prev_axis_value       = new int[axis_count];
    m_axis_ok               = new bool[axis_count];
    m_irr_index             = irr_index;
    m_name                  = name;

    for (int i = 0; i < axis_count; i++)
    {
        m_prev_axis_directions[i] = Input::AD_NEUTRAL;
        m_prev_axis_value[i] = -1;
        m_axis_ok[i] = false;
    }

    for(int n=0; n<SEvent::SJoystickEvent::NUMBER_OF_BUTTONS; n++)
        m_buttonPressed[n] = false;
}   // GamePadDevice