add tud_hid_n_gamepad_report() helper for gamepad report
- Add gamepad to hid_composite example. Though it needs a bit of extra work but it will come later as separated PR.
This commit is contained in:
@@ -218,7 +218,7 @@ typedef enum
|
||||
//GAMEPAD_BUTTON_ = TU_BIT(15), ///< Undefined button
|
||||
}hid_gamepad_button_bm_t;
|
||||
|
||||
/// Standard Gamepad HAT/DPAD Buttons Bitmap (from Linux input event codes)
|
||||
/// Standard Gamepad HAT/DPAD Buttons (from Linux input event codes)
|
||||
typedef enum
|
||||
{
|
||||
GAMEPAD_HAT_CENTERED = 0, ///< DPAD_CENTERED
|
||||
@@ -230,7 +230,7 @@ typedef enum
|
||||
GAMEPAD_HAT_DOWN_LEFT = 6, ///< DPAD_DOWN_LEFT
|
||||
GAMEPAD_HAT_LEFT = 7, ///< DPAD_LEFT
|
||||
GAMEPAD_HAT_UP_LEFT = 8, ///< DPAD_UP_LEFT
|
||||
}hid_gamepad_hat_bm_t;
|
||||
}hid_gamepad_hat_t;
|
||||
|
||||
/// @}
|
||||
|
||||
|
||||
@@ -107,9 +107,6 @@ bool tud_hid_n_boot_mode(uint8_t itf)
|
||||
return _hidd_itf[itf].boot_mode;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------+
|
||||
// KEYBOARD API
|
||||
//--------------------------------------------------------------------+
|
||||
bool tud_hid_n_keyboard_report(uint8_t itf, uint8_t report_id, uint8_t modifier, uint8_t keycode[6])
|
||||
{
|
||||
hid_keyboard_report_t report;
|
||||
@@ -127,10 +124,8 @@ bool tud_hid_n_keyboard_report(uint8_t itf, uint8_t report_id, uint8_t modifier,
|
||||
return tud_hid_n_report(itf, report_id, &report, sizeof(report));
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------+
|
||||
// MOUSE APPLICATION API
|
||||
//--------------------------------------------------------------------+
|
||||
bool tud_hid_n_mouse_report(uint8_t itf, uint8_t report_id, uint8_t buttons, int8_t x, int8_t y, int8_t vertical, int8_t horizontal)
|
||||
bool tud_hid_n_mouse_report(uint8_t itf, uint8_t report_id,
|
||||
uint8_t buttons, int8_t x, int8_t y, int8_t vertical, int8_t horizontal)
|
||||
{
|
||||
hid_mouse_report_t report =
|
||||
{
|
||||
@@ -144,6 +139,24 @@ bool tud_hid_n_mouse_report(uint8_t itf, uint8_t report_id, uint8_t buttons, int
|
||||
return tud_hid_n_report(itf, report_id, &report, sizeof(report));
|
||||
}
|
||||
|
||||
bool tud_hid_n_gamepad_report(uint8_t itf, uint8_t report_id,
|
||||
int8_t x, int8_t y, int8_t z, int8_t rz, int8_t rx, int8_t ry, uint8_t hat, uint16_t buttons)
|
||||
{
|
||||
hid_gamepad_report_t report =
|
||||
{
|
||||
.x = x,
|
||||
.y = y,
|
||||
.z = z,
|
||||
.rz = rz,
|
||||
.rx = rx,
|
||||
.ry = ry,
|
||||
.hat = hat,
|
||||
.buttons = buttons,
|
||||
};
|
||||
|
||||
return tud_hid_n_report(itf, report_id, &report, sizeof(report));
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------+
|
||||
// USBD-CLASS API
|
||||
//--------------------------------------------------------------------+
|
||||
|
||||
@@ -71,6 +71,10 @@ bool tud_hid_n_keyboard_report(uint8_t itf, uint8_t report_id, uint8_t modifier,
|
||||
// use template layout report as defined by hid_mouse_report_t
|
||||
bool tud_hid_n_mouse_report(uint8_t itf, uint8_t report_id, uint8_t buttons, int8_t x, int8_t y, int8_t vertical, int8_t horizontal);
|
||||
|
||||
// Gamepad: convenient helper to send mouse report if application
|
||||
// use template layout report TUD_HID_REPORT_DESC_GAMEPAD
|
||||
bool tud_hid_n_gamepad_report(uint8_t itf, uint8_t report_id, int8_t x, int8_t y, int8_t z, int8_t rz, int8_t rx, int8_t ry, uint8_t hat, uint16_t buttons);
|
||||
|
||||
//--------------------------------------------------------------------+
|
||||
// Application API (Single Port)
|
||||
//--------------------------------------------------------------------+
|
||||
@@ -119,6 +123,8 @@ TU_ATTR_WEAK bool tud_hid_set_idle_cb(uint8_t idle_rate);
|
||||
|
||||
#endif
|
||||
|
||||
// TU_ATTR_WEAK void tud_hid_report_complete_cb(uint8_t itf, );
|
||||
|
||||
|
||||
//--------------------------------------------------------------------+
|
||||
// Inline Functions
|
||||
|
||||
Reference in New Issue
Block a user