summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorhathach <[email protected]>2019-05-02 14:45:44 +0700
committerhathach <[email protected]>2019-05-02 14:45:54 +0700
commita9ef8c9e9da1ec02d3dcad95cfe065469b6aab77 (patch)
treed521dcc6c2d1be8e257ed50e5bd3b4e70efd6ba7 /examples
parentd6a47a89f229916f6d2b38c620bc6bbd99c9b656 (diff)
hid generic example echo back received
Diffstat (limited to 'examples')
-rw-r--r--examples/device/hid_generic_inout/src/main.c69
1 files changed, 4 insertions, 65 deletions
diff --git a/examples/device/hid_generic_inout/src/main.c b/examples/device/hid_generic_inout/src/main.c
index abe315237..04188b038 100644
--- a/examples/device/hid_generic_inout/src/main.c
+++ b/examples/device/hid_generic_inout/src/main.c
@@ -48,7 +48,6 @@ enum {
static uint32_t blink_interval_ms = BLINK_NOT_MOUNTED;
void led_blinking_task(void);
-void hid_task(void);
/*------------- MAIN -------------*/
int main(void)
@@ -63,10 +62,6 @@ int main(void)
tud_task();
led_blinking_task();
-
-#if CFG_TUD_HID
- hid_task();
-#endif
}
return 0;
@@ -107,63 +102,6 @@ void tud_resume_cb(void)
// USB HID
//--------------------------------------------------------------------+
-void hid_task(void)
-{
- // Poll every 10ms
- const uint32_t interval_ms = 10;
- static uint32_t start_ms = 0;
-
- if ( board_millis() < start_ms + interval_ms) return; // not enough time
- start_ms += interval_ms;
-
- uint32_t const btn = board_button_read();
-
- // Remote wakeup
- if ( tud_suspended() && btn )
- {
- // Wake up host if we are in suspend mode
- // and REMOTE_WAKEUP feature is enabled by host
- tud_remote_wakeup();
- }
-
- /*------------- Mouse -------------*/
- if ( tud_hid_ready() )
- {
- if ( btn )
- {
- int8_t const delta = 5;
-
- // no button, right + down, no scroll pan
- tud_hid_mouse_report(REPORT_ID_MOUSE, 0x00, delta, delta, 0, 0);
-
- // delay a bit before attempt to send keyboard report
- board_delay(2);
- }
- }
-
- /*------------- Keyboard -------------*/
- if ( tud_hid_ready() )
- {
- // use to avoid send multiple consecutive zero report for keyboard
- static bool has_key = false;
-
- if ( btn )
- {
- uint8_t keycode[6] = { 0 };
- keycode[0] = HID_KEY_A;
-
- tud_hid_keyboard_report(REPORT_ID_KEYBOARD, 0, keycode);
-
- has_key = true;
- }else
- {
- // send empty key report if previously has key pressed
- if (has_key) tud_hid_keyboard_report(REPORT_ID_KEYBOARD, 0, NULL);
- has_key = false;
- }
- }
-}
-
// Invoked when received GET_REPORT control request
// Application must fill buffer report's content and return its length.
// Return zero will cause the stack to STALL request
@@ -182,11 +120,12 @@ uint16_t tud_hid_get_report_cb(uint8_t report_id, hid_report_type_t report_type,
// received data on OUT endpoint ( Report ID = 0, Type = 0 )
void tud_hid_set_report_cb(uint8_t report_id, hid_report_type_t report_type, uint8_t const* buffer, uint16_t bufsize)
{
- // TODO not Implemented
+ // This example doesn't use multiple report and report ID
(void) report_id;
(void) report_type;
- (void) buffer;
- (void) bufsize;
+
+ // echo back anything we received from host
+ tud_hid_report(0, buffer, bufsize);
}
//--------------------------------------------------------------------+