summaryrefslogtreecommitdiff
path: root/tinyusb
diff options
context:
space:
mode:
authorhathach <[email protected]>2013-05-31 21:24:40 +0700
committerhathach <[email protected]>2013-05-31 21:24:40 +0700
commit9e49056721e7fbba2bdb5933c7eabf9548f4279f (patch)
treeeffefd26f21bd8d179aed469368c112df4b8127b /tinyusb
parent03d85acfc7cb18a5469146f98c210a5747218cb3 (diff)
refractor change tusbd_hid_keyboard_send_report API
Diffstat (limited to 'tinyusb')
-rw-r--r--tinyusb/class/hid_device.c9
-rw-r--r--tinyusb/class/hid_device.h10
-rw-r--r--tinyusb/device/usbd.c33
-rw-r--r--tinyusb/device/usbd.h1
4 files changed, 32 insertions, 21 deletions
diff --git a/tinyusb/class/hid_device.c b/tinyusb/class/hid_device.c
index 2e68fd4d0..dc340841f 100644
--- a/tinyusb/class/hid_device.c
+++ b/tinyusb/class/hid_device.c
@@ -226,7 +226,7 @@ tusb_error_t hidd_configured(USBD_HANDLE_T hUsb)
}
#if TUSB_CFG_DEVICE_HID_KEYBOARD
-tusb_error_t tusbd_hid_keyboard_send_report(uint8_t modifier, uint8_t keycodes[], uint8_t numkey)
+tusb_error_t tusbd_hid_keyboard_send_report(tusb_keyboard_report_t *p_kbd_report)
{
// uint32_t start_time = systickGetSecondsActive();
// while (bKeyChanged) // TODO blocking while previous key has yet sent - can use fifo to improve this
@@ -239,12 +239,9 @@ tusb_error_t tusbd_hid_keyboard_send_report(uint8_t modifier, uint8_t keycodes[]
return TUSB_ERROR_FAILED;
}
- ASSERT(keycodes && numkey && numkey <=6, ERR_FAILED);
-
- hid_keyboard_report.modifier = modifier;
- memset(hid_keyboard_report.keycode, 0, 6);
- memcpy(hid_keyboard_report.keycode, keycodes, numkey);
+ ASSERT_PTR(p_kbd_report, TUSB_ERROR_FAILED);
+ hid_keyboard_report = *p_kbd_report;
bKeyChanged = true;
return TUSB_ERROR_NONE;
diff --git a/tinyusb/class/hid_device.h b/tinyusb/class/hid_device.h
index f01685e25..38282f624 100644
--- a/tinyusb/class/hid_device.h
+++ b/tinyusb/class/hid_device.h
@@ -36,12 +36,6 @@
*/
/**************************************************************************/
-/** \file
- * \brief TBD
- *
- * \note TBD
- */
-
/** \ingroup TBD
* \defgroup TBD
* \brief TBD
@@ -63,8 +57,8 @@
//--------------------------------------------------------------------+
// KEYBOARD Application API
//--------------------------------------------------------------------+
-tusb_error_t tusbd_hid_keyboard_send_report(uint8_t modifier, uint8_t keycodes[], uint8_t numkey);
-tusb_error_t tusb_hid_mouse_send(uint8_t buttons, int8_t x, int8_t y);
+tusb_error_t tusbd_hid_keyboard_send_report(tusb_keyboard_report_t *p_kbd_report);
+tusb_error_t tusbd_hid_mouse_send_report(uint8_t buttons, int8_t x, int8_t y);
//--------------------------------------------------------------------+
// USBD-CLASS DRIVER API
diff --git a/tinyusb/device/usbd.c b/tinyusb/device/usbd.c
index bed745985..5fb5d0202 100644
--- a/tinyusb/device/usbd.c
+++ b/tinyusb/device/usbd.c
@@ -61,12 +61,35 @@
//--------------------------------------------------------------------+
// INTERNAL OBJECT & FUNCTION DECLARATION
//--------------------------------------------------------------------+
+static tusb_error_t usbd_string_descriptor_init(void);
+
+//--------------------------------------------------------------------+
+// APPLICATION INTERFACE
+//--------------------------------------------------------------------+
+//bool tusbd_is_configured(uint8_t coreid)
+//{
+//
+//}
//--------------------------------------------------------------------+
// IMPLEMENTATION
//--------------------------------------------------------------------+
tusb_error_t usbd_init (void)
{
+ ASSERT_STATUS ( usbd_string_descriptor_init() );
+
+ ASSERT_STATUS ( dcd_init() );
+
+ return TUSB_ERROR_NONE;
+}
+
+#endif
+
+//--------------------------------------------------------------------+
+// HELPER
+//--------------------------------------------------------------------+
+static tusb_error_t usbd_string_descriptor_init(void)
+{
ASSERT_INT( USB_STRING_LEN(sizeof(TUSB_CFG_DEVICE_STRING_MANUFACTURER)-1),
app_tusb_desc_strings.manufacturer.bLength, TUSB_ERROR_USBD_DESCRIPTOR_STRING);
@@ -78,22 +101,18 @@ tusb_error_t usbd_init (void)
for(uint32_t i=0; i < sizeof(TUSB_CFG_DEVICE_STRING_MANUFACTURER)-1; i++)
{
- app_tusb_desc_strings.manufacturer.unicode_string[i] = TUSB_CFG_DEVICE_STRING_MANUFACTURER[i];
+ app_tusb_desc_strings.manufacturer.unicode_string[i] = (uint16_t) TUSB_CFG_DEVICE_STRING_MANUFACTURER[i];
}
for(uint32_t i=0; i < sizeof(TUSB_CFG_DEVICE_STRING_PRODUCT)-1; i++)
{
- app_tusb_desc_strings.product.unicode_string[i] = TUSB_CFG_DEVICE_STRING_PRODUCT[i];
+ app_tusb_desc_strings.product.unicode_string[i] = (uint16_t) TUSB_CFG_DEVICE_STRING_PRODUCT[i];
}
for(uint32_t i=0; i < sizeof(TUSB_CFG_DEVICE_STRING_SERIAL)-1; i++)
{
- app_tusb_desc_strings.serial.unicode_string[i] = TUSB_CFG_DEVICE_STRING_SERIAL[i];
+ app_tusb_desc_strings.serial.unicode_string[i] = (uint16_t) TUSB_CFG_DEVICE_STRING_SERIAL[i];
}
- ASSERT_STATUS ( dcd_init() );
-
return TUSB_ERROR_NONE;
}
-
-#endif
diff --git a/tinyusb/device/usbd.h b/tinyusb/device/usbd.h
index 25aaaa946..5ed8ebd93 100644
--- a/tinyusb/device/usbd.h
+++ b/tinyusb/device/usbd.h
@@ -67,6 +67,7 @@
//--------------------------------------------------------------------+
// APPLICATION API
//--------------------------------------------------------------------+
+bool tusbd_is_configured(uint8_t coreid) ATTR_WARN_UNUSED_RESULT;
//--------------------------------------------------------------------+
// CLASS-USBD & INTERNAL API