add class_hid_keyboard_init and test code
add define _TINY_USB_SOURCE_FILE_ to hide internal API from application
This commit is contained in:
		| @@ -39,6 +39,8 @@ | ||||
|  | ||||
| #if defined TUSB_CFG_HOST && defined DEVICE_CLASS_HID | ||||
|  | ||||
| #define _TINY_USB_SOURCE_FILE_ | ||||
|  | ||||
| //--------------------------------------------------------------------+ | ||||
| // INCLUDE | ||||
| //--------------------------------------------------------------------+ | ||||
| @@ -55,7 +57,7 @@ class_hid_keyboard_info_t keyboard_info_pool[TUSB_CFG_HOST_DEVICE_MAX]; | ||||
|  | ||||
|  | ||||
| //--------------------------------------------------------------------+ | ||||
| // IMPLEMENTATION | ||||
| // PUBLIC API | ||||
| //--------------------------------------------------------------------+ | ||||
| tusb_error_t tusbh_hid_keyboard_get(tusb_handle_device_t const device_hdl, uint8_t instance_num, tusb_keyboard_report_t * const report) | ||||
| { | ||||
| @@ -83,6 +85,14 @@ uint8_t tusbh_hid_keyboard_no_instances(tusb_handle_device_t const device_hdl) | ||||
|   return keyboard_info_pool[device_hdl].instance_count; | ||||
| } | ||||
|  | ||||
| //--------------------------------------------------------------------+ | ||||
| // CLASS-USBD API | ||||
| //--------------------------------------------------------------------+ | ||||
| tusb_error_t class_hid_keyboard_init(void) | ||||
| { | ||||
|   memset(&keyboard_info_pool, 0, sizeof(class_hid_keyboard_info_t)*TUSB_CFG_HOST_DEVICE_MAX); | ||||
| } | ||||
|  | ||||
| tusb_error_t class_hid_keyboard_install(uint8_t const dev_addr, uint8_t const *descriptor) | ||||
| { | ||||
|   keyboard_info_pool[0].instance_count++; | ||||
| @@ -90,6 +100,4 @@ tusb_error_t class_hid_keyboard_install(uint8_t const dev_addr, uint8_t const *d | ||||
|   return TUSB_ERROR_NONE; | ||||
| } | ||||
|  | ||||
|  | ||||
| #endif | ||||
|  | ||||
|   | ||||
| @@ -67,19 +67,24 @@ tusb_error_t tusbh_hid_keyboard_get(tusb_handle_device_t const handle, uint8_t i | ||||
| //--------------------------------------------------------------------+ | ||||
| // INTERNAL API | ||||
| //--------------------------------------------------------------------+ | ||||
| #ifdef _TINY_USB_SOURCE_FILE_ | ||||
|  | ||||
| typedef struct { | ||||
|   pipe_handle_t pipe_in; | ||||
|   uint8_t report_size; | ||||
|   uint8_t buffer[TUSB_CFG_HOST_HID_KEYBOARD_ENDPOINT_SIZE]; | ||||
| }keyboard_interface_t; | ||||
|  | ||||
| typedef struct { // TODO internal structure | ||||
| typedef struct { | ||||
|   uint8_t instance_count; | ||||
|   keyboard_interface_t instance[TUSB_CFG_HOST_HID_KEYBOARD_NO_INSTANCES_PER_DEVICE]; | ||||
| } class_hid_keyboard_info_t; | ||||
|  | ||||
| tusb_error_t class_hid_keyboard_init(void); | ||||
| tusb_error_t class_hid_keyboard_install(uint8_t const dev_addr, uint8_t const *descriptor); | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| } | ||||
| #endif | ||||
|   | ||||
| @@ -55,8 +55,14 @@ | ||||
|  extern "C" { | ||||
| #endif | ||||
|  | ||||
| //--------------------------------------------------------------------+ | ||||
| // INCLUDE | ||||
| //--------------------------------------------------------------------+ | ||||
| #include "hcd.h" | ||||
|  | ||||
| //--------------------------------------------------------------------+ | ||||
| // MACRO CONSTANT TYPEDEF | ||||
| //--------------------------------------------------------------------+ | ||||
| enum { | ||||
|   TUSB_FLAGS_CLASS_UNSPECIFIED          = BIT_(0)    , ///< 0 | ||||
|   TUSB_FLAGS_CLASS_AUDIO                = BIT_(1)    , ///< 1 | ||||
| @@ -116,10 +122,11 @@ typedef enum { | ||||
|   PIPE_STATUS_BUSY, | ||||
|   PIPE_STATUS_COMPLETE | ||||
| } pipe_status_t; | ||||
| //--------------------------------------------------------------------+ | ||||
| // Structures & Types | ||||
| //--------------------------------------------------------------------+ | ||||
|  | ||||
| typedef uint32_t tusb_handle_device_t; | ||||
| //--------------------------------------------------------------------+ | ||||
| // INTERNAL OBJECT & FUNCTION DECLARATION | ||||
| //--------------------------------------------------------------------+ | ||||
|  | ||||
| //--------------------------------------------------------------------+ | ||||
| // APPLICATION API | ||||
| @@ -129,13 +136,16 @@ void         tusbh_device_mounted_cb (tusb_error_t const error, tusb_handle_devi | ||||
| tusb_error_t tusbh_configuration_set     (tusb_handle_device_t const device_hdl, uint8_t const configure_number); | ||||
|  | ||||
|  | ||||
| // TODO hiding from application include | ||||
| //--------------------------------------------------------------------+ | ||||
| // CLASS API | ||||
| // CLASS-USBD API | ||||
| //--------------------------------------------------------------------+ | ||||
| #ifdef _TINY_USB_SOURCE_FILE_ | ||||
|  | ||||
| bool          usbh_device_is_plugged(tusb_handle_device_t const device_hdl); | ||||
| pipe_status_t usbh_pipe_status_get(pipe_handle_t pipe_hdl); | ||||
|  | ||||
| #endif | ||||
|  | ||||
| #ifdef __cplusplus | ||||
|  } | ||||
| #endif | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 hathach
					hathach