3#ifndef _CODEX_PAD_FRAME_DECODER_H_
4#define _CODEX_PAD_FRAME_DECODER_H_
80 kUp = uint32_t{1} << 0,
482 uint32_t button_states = 0;
486 void OnFrame(
const uint8_t *data);
488 static void OnFrameReceived(
const uint8_t *data,
void *user_data);
491 Inputs current_inputs_;
493 robust_frame::Parser parser_;
void Update()
更新解码器状态。需要在主循环中不断调用此函数,以喂入并解析字节流。
uint32_t button_states() const
以位掩码形式获取所有按键的当前状态。
const uint8_t * axis_values() const
获取所有模拟轴的当前值(返回只读数组指针)。
bool holding(const Button button) const
查询按键是否被持续按下。
bool HasAxisValueChanged(const Axis axis, const uint8_t threshold) const
查询轴值是否发生变化。
uint8_t axis_value(const Axis axis) const
获取指定摇杆轴的原始值(0~255)。
static constexpr size_t kAxisValueNum
摇杆轴值的数量。
static constexpr uint8_t kAxisCenter
摇杆轴的中心值(静止时的典型值)。
static constexpr uint8_t kPayloadType
手柄输入报告的类型标识(有效载荷的第一个字节)。
bool released(const Button button) const
查询按键是否被释放。
bool pressed(const Button button) const
查询按键是否被按下。
CodexPadFrameDecoder(Stream &stream)
构造函数。
bool button_state(const Button button) const
查询按键是否被按下或持续按下。