void KeyStatus::press(u32 pad, u32 index, s32 value) { if (!IsAnalogKey(index)) { m_internal_button_pressure[pad][index] = value; if (m_state_acces[pad]) clear_bit(m_internal_button_kbd[pad], index); else clear_bit(m_internal_button_joy[pad], index); } else { // clamp value if (value > MAX_ANALOG_VALUE) value = MAX_ANALOG_VALUE; else if (value < -MAX_ANALOG_VALUE) value = -MAX_ANALOG_VALUE; // Left -> -- -> Right // Value range : FFFF8002 -> 0 -> 7FFE // Force range : 80 -> 0 -> 7F // Normal mode : expect value 0 -> 80 -> FF // Reverse mode: expect value FF -> 7F -> 0 u8 force = (value / 256); if (analog_is_reversed(pad,index)) analog_set(pad, index, m_analog_released_val - force); else analog_set(pad, index, m_analog_released_val + force); } }
void KeyStatus::release(u32 pad, u32 index) { if (!IsAnalogKey(index)) { if (m_state_acces[pad]) set_bit(m_internal_button_kbd[pad], index); else set_bit(m_internal_button_joy[pad], index); } else { analog_set(pad, index, m_analog_released_val); } }
void servo_set(AnalogOutIndex aout, ServoPosition sp) { analog_set(aout,sp); }
void motor_set(AnalogOutIndex aout, MotorSpeed sp) { analog_set(aout,sp); }