From 89ace295ba2b509dcb42d3df9501134df968c2f4 Mon Sep 17 00:00:00 2001 From: hathach Date: Sun, 28 Apr 2019 00:43:36 +0700 Subject: [PATCH] add TUD_ to HID_REPORT_DESC_* template --- README.md | 1 + .../device/cdc_msc_hid/src/usb_descriptors.c | 4 ++-- .../cdc_msc_hid_freertos/src/usb_descriptors.c | 4 ++-- src/class/hid/hid_device.h | 18 +++++++++--------- src/class/msc/msc_device.c | 7 +++++-- 5 files changed, 19 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index ab288cbec..d512d1e28 100644 --- a/README.md +++ b/README.md @@ -78,5 +78,6 @@ TinyUSB is currently used by these other projects: * [Adafruit nRF52 Arduino](https://github.com/adafruit/Adafruit_nRF52_Arduino) * [Adafruit nRF52 Bootloader](https://github.com/adafruit/Adafruit_nRF52_Bootloader) * [CircuitPython](https://github.com/adafruit/circuitpython) +* [TinyUSB Arduino Library](https://github.com/adafruit/Adafruit_TinyUSB_Arduino) If your project also uses TinyUSB and want to share, feel free to create a pull request. diff --git a/examples/device/cdc_msc_hid/src/usb_descriptors.c b/examples/device/cdc_msc_hid/src/usb_descriptors.c index c3bcc6f2b..38f60a561 100644 --- a/examples/device/cdc_msc_hid/src/usb_descriptors.c +++ b/examples/device/cdc_msc_hid/src/usb_descriptors.c @@ -76,8 +76,8 @@ enum uint8_t const desc_hid_report[] = { - HID_REPORT_DESC_KEYBOARD( HID_REPORT_ID(REPORT_ID_KEYBOARD), ), - HID_REPORT_DESC_MOUSE ( HID_REPORT_ID(REPORT_ID_MOUSE), ) + TUD_HID_REPORT_DESC_KEYBOARD( HID_REPORT_ID(REPORT_ID_KEYBOARD), ), + TUD_HID_REPORT_DESC_MOUSE ( HID_REPORT_ID(REPORT_ID_MOUSE), ) }; #endif diff --git a/examples/device/cdc_msc_hid_freertos/src/usb_descriptors.c b/examples/device/cdc_msc_hid_freertos/src/usb_descriptors.c index c3bcc6f2b..38f60a561 100644 --- a/examples/device/cdc_msc_hid_freertos/src/usb_descriptors.c +++ b/examples/device/cdc_msc_hid_freertos/src/usb_descriptors.c @@ -76,8 +76,8 @@ enum uint8_t const desc_hid_report[] = { - HID_REPORT_DESC_KEYBOARD( HID_REPORT_ID(REPORT_ID_KEYBOARD), ), - HID_REPORT_DESC_MOUSE ( HID_REPORT_ID(REPORT_ID_MOUSE), ) + TUD_HID_REPORT_DESC_KEYBOARD( HID_REPORT_ID(REPORT_ID_KEYBOARD), ), + TUD_HID_REPORT_DESC_MOUSE ( HID_REPORT_ID(REPORT_ID_MOUSE), ) }; #endif diff --git a/src/class/hid/hid_device.h b/src/class/hid/hid_device.h index 13a213277..82986127c 100644 --- a/src/class/hid/hid_device.h +++ b/src/class/hid/hid_device.h @@ -64,7 +64,7 @@ uint16_t tud_hid_get_report_cb(uint8_t report_id, hid_report_type_t report_type, void tud_hid_set_report_cb(uint8_t report_id, hid_report_type_t report_type, uint8_t const* buffer, uint16_t bufsize); // Invoked when host switch mode Boot <-> Report via SET_PROTOCOL request -void tud_hid_mode_changed_cb(uint8_t boot_mode) ATTR_WEAK; +ATTR_WEAK void tud_hid_mode_changed_cb(uint8_t boot_mode); //--------------------------------------------------------------------+ // KEYBOARD API @@ -107,18 +107,18 @@ static inline bool tud_hid_mouse_button_release(uint8_t report_id) * empty if multiple reports is not used * * - Only 1 report: no parameter - * uint8_t const report_desc[] = { HID_REPORT_DESC_KEYBOARD() }; + * uint8_t const report_desc[] = { TUD_HID_REPORT_DESC_KEYBOARD() }; * * - Multiple Reports: "HID_REPORT_ID(ID)," must be passed to template * uint8_t const report_desc[] = * { - * HID_REPORT_DESC_KEYBOARD( HID_REPORT_ID(1), ) , - * HID_REPORT_DESC_MOUSE ( HID_REPORT_ID(2), ) + * TUD_HID_REPORT_DESC_KEYBOARD( HID_REPORT_ID(1), ) , + * TUD_HID_REPORT_DESC_MOUSE ( HID_REPORT_ID(2), ) * }; *--------------------------------------------------------------------*/ // Keyboard Report Descriptor Template -#define HID_REPORT_DESC_KEYBOARD(...) \ +#define TUD_HID_REPORT_DESC_KEYBOARD(...) \ HID_USAGE_PAGE ( HID_USAGE_PAGE_DESKTOP ) ,\ HID_USAGE ( HID_USAGE_DESKTOP_KEYBOARD ) ,\ HID_COLLECTION ( HID_COLLECTION_APPLICATION ) ,\ @@ -159,7 +159,7 @@ static inline bool tud_hid_mouse_button_release(uint8_t report_id) HID_COLLECTION_END \ // Mouse Report Descriptor Template -#define HID_REPORT_DESC_MOUSE(...) \ +#define TUD_HID_REPORT_DESC_MOUSE(...) \ HID_USAGE_PAGE ( HID_USAGE_PAGE_DESKTOP ) ,\ HID_USAGE ( HID_USAGE_DESKTOP_MOUSE ) ,\ HID_COLLECTION ( HID_COLLECTION_APPLICATION ) ,\ @@ -199,7 +199,7 @@ static inline bool tud_hid_mouse_button_release(uint8_t report_id) HID_COLLECTION_END \ // Consumer Control Report Descriptor Template -#define HID_REPORT_DESC_CONSUMER(...) \ +#define TUD_HID_REPORT_DESC_CONSUMER(...) \ HID_USAGE_PAGE ( HID_USAGE_PAGE_CONSUMER ) ,\ HID_USAGE ( HID_USAGE_CONSUMER_CONTROL ) ,\ HID_COLLECTION ( HID_COLLECTION_APPLICATION ) ,\ @@ -219,7 +219,7 @@ static inline bool tud_hid_mouse_button_release(uint8_t report_id) * 0x02 - Standby * 0x04 - Wake Host */ -#define HID_REPORT_DESC_SYSTEM_CONTROL(...) \ +#define TUD_HID_REPORT_DESC_SYSTEM_CONTROL(...) \ HID_USAGE_PAGE ( HID_USAGE_PAGE_DESKTOP ) ,\ HID_USAGE ( HID_USAGE_DESKTOP_SYSTEM_CONTROL ) ,\ HID_COLLECTION ( HID_COLLECTION_APPLICATION ) ,\ @@ -242,7 +242,7 @@ static inline bool tud_hid_mouse_button_release(uint8_t report_id) // Gamepad Report Descriptor Template // with 16 buttons and 2 joysticks with following layout // | Button Map (2 bytes) | X | Y | Z | Rz -#define HID_REPORT_DESC_GAMEPAD(...) \ +#define TUD_HID_REPORT_DESC_GAMEPAD(...) \ HID_USAGE_PAGE ( HID_USAGE_PAGE_DESKTOP ) ,\ HID_USAGE ( HID_USAGE_DESKTOP_GAMEPAD ) ,\ HID_COLLECTION ( HID_COLLECTION_APPLICATION ) ,\ diff --git a/src/class/msc/msc_device.c b/src/class/msc/msc_device.c index e2cf92324..360503d9b 100644 --- a/src/class/msc/msc_device.c +++ b/src/class/msc/msc_device.c @@ -163,9 +163,12 @@ bool mscd_control_request(uint8_t rhport, tusb_control_request_t const * p_reque case MSC_REQ_GET_MAX_LUN: { + uint8_t maxlun = 1; + if (tud_msc_maxlun_cb) maxlun = tud_msc_maxlun_cb(); + TU_VERIFY(maxlun); + // MAX LUN is minus 1 by specs - uint8_t maxlun = 0; - if (tud_msc_maxlun_cb) maxlun = tud_msc_maxlun_cb() -1; + maxlun--; usbd_control_xfer(rhport, p_request, &maxlun, 1); }