summaryrefslogtreecommitdiff
path: root/examples/device/printer_to_hid
diff options
context:
space:
mode:
authorhathach <[email protected]>2026-03-06 17:22:38 +0700
committerhathach <[email protected]>2026-03-06 17:22:38 +0700
commit73cd53129529f2dce70072953bfd50ec9dc6b8ea (patch)
treee4fcc75febdc1af7f56973fed061bd2a671f48a2 /examples/device/printer_to_hid
parent988b18a40a4276eb731c80bc4cec3bf5750523f9 (diff)
replace printer_to_hid example with printer_to_cdc example
fix printer GET_DEVICE_ID request weird wIndex (interface high, alt low)
Diffstat (limited to 'examples/device/printer_to_hid')
-rw-r--r--examples/device/printer_to_hid/CMakeLists.txt29
-rw-r--r--examples/device/printer_to_hid/CMakePresets.json6
-rw-r--r--examples/device/printer_to_hid/Makefile11
-rw-r--r--examples/device/printer_to_hid/README.md0
-rw-r--r--examples/device/printer_to_hid/src/main.c175
-rw-r--r--examples/device/printer_to_hid/src/tusb_config.h113
-rw-r--r--examples/device/printer_to_hid/src/usb_descriptors.c215
-rw-r--r--examples/device/printer_to_hid/src/usb_descriptors.h41
8 files changed, 0 insertions, 590 deletions
diff --git a/examples/device/printer_to_hid/CMakeLists.txt b/examples/device/printer_to_hid/CMakeLists.txt
deleted file mode 100644
index f58759059..000000000
--- a/examples/device/printer_to_hid/CMakeLists.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-cmake_minimum_required(VERSION 3.20)
-
-include(${CMAKE_CURRENT_SOURCE_DIR}/../../../hw/bsp/family_support.cmake)
-
-project(printer_to_hid C CXX ASM)
-
-# Checks this example is valid for the family and initializes the project
-family_initialize_project(${PROJECT_NAME} ${CMAKE_CURRENT_LIST_DIR})
-# Espressif has its own cmake build system
-if(FAMILY STREQUAL "espressif")
- return()
-endif()
-
-add_executable(${PROJECT_NAME})
-
-# Example source
-target_sources(${PROJECT_NAME} PUBLIC
- ${CMAKE_CURRENT_SOURCE_DIR}/src/main.c
- ${CMAKE_CURRENT_SOURCE_DIR}/src/usb_descriptors.c
- )
-
-# Example include
-target_include_directories(${PROJECT_NAME} PUBLIC
- ${CMAKE_CURRENT_SOURCE_DIR}/src
- )
-
-# Configure compilation flags and libraries for the example without RTOS.
-# See the corresponding function in hw/bsp/FAMILY/family.cmake for details.
-family_configure_device_example(${PROJECT_NAME} noos)
diff --git a/examples/device/printer_to_hid/CMakePresets.json b/examples/device/printer_to_hid/CMakePresets.json
deleted file mode 100644
index 5cd8971e9..000000000
--- a/examples/device/printer_to_hid/CMakePresets.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "version": 6,
- "include": [
- "../../../hw/bsp/BoardPresets.json"
- ]
-}
diff --git a/examples/device/printer_to_hid/Makefile b/examples/device/printer_to_hid/Makefile
deleted file mode 100644
index 1a4b428dc..000000000
--- a/examples/device/printer_to_hid/Makefile
+++ /dev/null
@@ -1,11 +0,0 @@
-include ../../../hw/bsp/family_support.mk
-
-INC += \
- src \
-
-
-# Example source
-EXAMPLE_SOURCE += $(wildcard src/*.c)
-SRC_C += $(addprefix $(EXAMPLE_PATH)/, $(EXAMPLE_SOURCE))
-
-include ../../../hw/bsp/family_rules.mk
diff --git a/examples/device/printer_to_hid/README.md b/examples/device/printer_to_hid/README.md
deleted file mode 100644
index e69de29bb..000000000
--- a/examples/device/printer_to_hid/README.md
+++ /dev/null
diff --git a/examples/device/printer_to_hid/src/main.c b/examples/device/printer_to_hid/src/main.c
deleted file mode 100644
index 0d14147b4..000000000
--- a/examples/device/printer_to_hid/src/main.c
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * The MIT License (MIT)
- *
- * Copyright (c) 2026 Ha Thach (tinyusb.org)
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "bsp/board_api.h"
-#include "tusb.h"
-
-#include "usb_descriptors.h"
-
-// -------------------------------------------------------------------+
-// Variables
-// -------------------------------------------------------------------+
-
-// next keycode to send on usb/hid
-static uint8_t next_keycode = 0;
-// next key modifiers to send on usb/hid
-static uint8_t next_modifiers = 0;
-// whether the next usb/hid report must be NULL to release the last keystroke
-static bool next_keycode_is_release = false;
-
-
-// -------------------------------------------------------------------+
-// Tasks
-// -------------------------------------------------------------------+
-
-// Every 10ms, we will place HID data in the usb/hid endpoint, ready to
-// sent to the host when required. The tasks will read the keycode in
-// next_keycode and place it in the HID report, then set next_is_null
-// such that the key is released by the next report. This seem to help
-// stroking the same key twice when the character is repeated in the data.
-static void hid_tx_task(void) {
- // Poll every 10ms
- const uint32_t interval_ms = 10;
- static uint32_t start_ms = 0;
-
- if (!tud_hid_ready()) {
- return;
- }
-
- if (tusb_time_millis_api() - start_ms < interval_ms) {
- return; // not enough time
- }
- start_ms += interval_ms;
-
- if (next_keycode_is_release || next_keycode == 0) {
- tud_hid_keyboard_report(1, 0, NULL);
- next_keycode_is_release = false;
- return;
- }
-
- uint8_t keycode_array[6] = {0};
- keycode_array[0] = next_keycode;
- tud_hid_keyboard_report(1, next_modifiers, keycode_array);
- next_keycode_is_release = true;
- next_keycode = 0;
-}
-
-// Read one byte from printer FIFO and translate to HID keycode.
-// Only a-zA-Z0-9 are translated; everything else becomes space.
-static void printer_to_hid_task(void) {
- if (next_keycode != 0) {
- return; // previous key not yet sent
- }
-
- uint8_t ch;
- if (tud_printer_read(&ch, 1) == 0) {
- return; // no data available
- }
-
- uint8_t m = 0;
- if ('a' <= ch && ch <= 'z') {
- ch = (uint8_t)(ch - 'a' + HID_KEY_A);
- } else if ('A' <= ch && ch <= 'Z') {
- ch = (uint8_t)(ch - 'A' + HID_KEY_A);
- m = KEYBOARD_MODIFIER_LEFTSHIFT;
- } else if ('1' <= ch && ch <= '9') {
- ch = (uint8_t)(ch - '1' + HID_KEY_1);
- } else if (ch == '0') {
- ch = HID_KEY_0;
- } else {
- ch = HID_KEY_SPACE;
- }
-
- next_keycode = ch;
- next_modifiers = m;
-}
-
-int main(void) {
- board_init();
- // init device and host stack on configured roothub port
- tusb_rhport_init_t dev_init = {.role = TUSB_ROLE_DEVICE, .speed = TUSB_SPEED_AUTO};
- tusb_init(BOARD_TUD_RHPORT, &dev_init);
- board_init_after_tusb();
-
- while (1) {
- tud_task(); // tinyusb device task
- printer_to_hid_task(); // read printer data and translate to HID keycodes
- hid_tx_task(); // send keycodes to host via HID
- }
-}
-
-
-//--------------------------------------------------------------------+
-// Printer callbacks
-//--------------------------------------------------------------------+
-
-void tud_printer_rx_cb(uint8_t itf) {
- (void)itf;
-}
-
-// IEEE 1284 Device ID: first 2 bytes are big-endian total length (including the 2 length bytes).
-// The rest is the Device ID string using standard abbreviated keys.
-static const char printer_device_id[] =
- "\x00\x34" // total length = 52 = 0x0034 (big-endian)
- "MFG:TinyUSB;"
- "MDL:Printer to HID;"
- "CMD:PS;"
- "CLS:PRINTER;";
-
-TU_VERIFY_STATIC(sizeof(printer_device_id) - 1 == 52, "device ID length mismatch");
-
-uint8_t const *tud_printer_get_device_id_cb(uint8_t itf) {
- (void)itf;
- return (uint8_t const *)printer_device_id;
-}
-
-
-//--------------------------------------------------------------------+
-// HID callbacks
-//--------------------------------------------------------------------+
-
-uint16_t tud_hid_get_report_cb(uint8_t instance, uint8_t report_id, hid_report_type_t report_type, uint8_t *buffer,
- uint16_t reqlen) {
- (void)instance;
- (void)report_id;
- (void)report_type;
- (void)buffer;
- (void)reqlen;
- return 0;
-}
-
-void tud_hid_set_report_cb(uint8_t instance, uint8_t report_id, hid_report_type_t report_type, const uint8_t *buffer,
- uint16_t bufsize) {
- (void)instance;
- (void)report_id;
- (void)report_type;
- (void)buffer;
- (void)bufsize;
- return;
-}
diff --git a/examples/device/printer_to_hid/src/tusb_config.h b/examples/device/printer_to_hid/src/tusb_config.h
deleted file mode 100644
index 0988be166..000000000
--- a/examples/device/printer_to_hid/src/tusb_config.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * The MIT License (MIT)
- *
- * Copyright (c) 2026 Ha Thach (tinyusb.org)
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-#ifndef _TUSB_CONFIG_H_
-#define _TUSB_CONFIG_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-//--------------------------------------------------------------------+
-// Board Specific Configuration
-//--------------------------------------------------------------------+
-
-// RHPort number used for device can be defined by board.mk, default to port 0
-#ifndef BOARD_TUD_RHPORT
- #define BOARD_TUD_RHPORT 0
-#endif
-
-// RHPort max operational speed can defined by board.mk
-#ifndef BOARD_TUD_MAX_SPEED
- #define BOARD_TUD_MAX_SPEED OPT_MODE_DEFAULT_SPEED
-#endif
-
-//--------------------------------------------------------------------
-// COMMON CONFIGURATION
-//--------------------------------------------------------------------
-
-// defined by compiler flags for flexibility
-#ifndef CFG_TUSB_MCU
- #error CFG_TUSB_MCU must be defined
-#endif
-
-#ifndef CFG_TUSB_OS
- #define CFG_TUSB_OS OPT_OS_NONE
-#endif
-
-#ifndef CFG_TUSB_DEBUG
- #define CFG_TUSB_DEBUG 0
-#endif
-
-// Enable Device stack
-#define CFG_TUD_ENABLED 1
-
-// Default is max speed that hardware controller could support with on-chip PHY
-#define CFG_TUD_MAX_SPEED BOARD_TUD_MAX_SPEED
-
-/* USB DMA on some MCUs can only access a specific SRAM region with restriction on alignment.
- * Tinyusb use follows macros to declare transferring memory so that they can be put
- * into those specific section.
- * e.g
- * - CFG_TUSB_MEM SECTION : __attribute__ (( section(".usb_ram") ))
- * - CFG_TUSB_MEM_ALIGN : __attribute__ ((aligned(4)))
- */
-#ifndef CFG_TUSB_MEM_SECTION
- #define CFG_TUSB_MEM_SECTION
-#endif
-
-#ifndef CFG_TUSB_MEM_ALIGN
- #define CFG_TUSB_MEM_ALIGN __attribute__((aligned(4)))
-#endif
-
-//--------------------------------------------------------------------
-// DEVICE CONFIGURATION
-//--------------------------------------------------------------------
-
-#ifndef CFG_TUD_ENDPOINT0_SIZE
- #define CFG_TUD_ENDPOINT0_SIZE 64
-#endif
-
-//------------- CLASS -------------//
-#define CFG_TUD_HID 1
-#define CFG_TUD_CDC 0
-#define CFG_TUD_MSC 0
-#define CFG_TUD_MIDI 0
-#define CFG_TUD_VENDOR 0
-#define CFG_TUD_PRINTER 1
-
-// HID buffer size Should be sufficient to hold ID (if any) + Data
-#define CFG_TUD_HID_EP_BUFSIZE 16
-
-// Printer buffer sizes
-#define CFG_TUD_PRINTER_RX_BUFSIZE 512
-#define CFG_TUD_PRINTER_TX_BUFSIZE 512
-#define CFG_TUD_PRINTER_EP_BUFSIZE 512
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _TUSB_CONFIG_H_ */
diff --git a/examples/device/printer_to_hid/src/usb_descriptors.c b/examples/device/printer_to_hid/src/usb_descriptors.c
deleted file mode 100644
index 1cbabb02e..000000000
--- a/examples/device/printer_to_hid/src/usb_descriptors.c
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * The MIT License (MIT)
- *
- * Copyright (c) 2019 Ha Thach (tinyusb.org)
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- *
- */
-
-#include "bsp/board_api.h"
-#include "tusb.h"
-
-#include "usb_descriptors.h"
-
-#define USB_VID 0xCafe
-#define USB_PID 0x4004
-#define USB_BCD 0x0200
-
-//--------------------------------------------------------------------+
-// Device Descriptors
-//--------------------------------------------------------------------+
-static tusb_desc_device_t const desc_device = {
- .bLength = sizeof(tusb_desc_device_t),
- .bDescriptorType = TUSB_DESC_DEVICE,
- .bcdUSB = USB_BCD,
- .bDeviceClass = 0x00,
- .bDeviceSubClass = 0x00,
- .bDeviceProtocol = 0x00,
- .bMaxPacketSize0 = CFG_TUD_ENDPOINT0_SIZE,
-
- .idVendor = USB_VID,
- .idProduct = USB_PID,
- .bcdDevice = 0x0100,
-
- .iManufacturer = 0x01,
- .iProduct = 0x02,
- .iSerialNumber = 0x03,
-
- .bNumConfigurations = 0x01
-};
-
-uint8_t const *tud_descriptor_device_cb(void) {
- return (uint8_t const *) &desc_device;
-}
-
-//--------------------------------------------------------------------+
-// HID Report Descriptor
-//--------------------------------------------------------------------+
-static uint8_t const desc_hid_report[] = {
- TUD_HID_REPORT_DESC_KEYBOARD(HID_REPORT_ID(REPORT_ID_KEYBOARD))
-};
-
-uint8_t const *tud_hid_descriptor_report_cb(uint8_t instance) {
- (void)instance;
- return desc_hid_report;
-}
-
-//--------------------------------------------------------------------+
-// Configuration Descriptor
-//--------------------------------------------------------------------+
-
-// Endpoint numbers
-#if defined(TUD_ENDPOINT_ONE_DIRECTION_ONLY)
- #define EPNUM_HID 0x81
- #define EPNUM_PRINTER_OUT 0x02
- #define EPNUM_PRINTER_IN 0x83
-#else
- #define EPNUM_HID 0x81
- #define EPNUM_PRINTER_OUT 0x02
- #define EPNUM_PRINTER_IN 0x82
-#endif
-
-// full speed configuration
-static uint8_t const desc_fs_configuration[] = {
- // Config number, interface count, string index, total length, attribute, power in mA
- TUD_CONFIG_DESCRIPTOR(1, ITF_NUM_TOTAL, 0, CONFIG_TOTAL_LEN, 0x00, 100),
-
- // Interface number, string index, protocol, report descriptor len, EP In address, size & polling interval
- TUD_HID_DESCRIPTOR(ITF_NUM_HID, 4, HID_ITF_PROTOCOL_NONE, sizeof(desc_hid_report), EPNUM_HID,
- CFG_TUD_HID_EP_BUFSIZE, 5),
-
- // Interface number, string index, EP Bulk Out address, EP Bulk In address, EP size
- TUD_PRINTER_DESCRIPTOR(ITF_NUM_PRINTER, 5, EPNUM_PRINTER_OUT, EPNUM_PRINTER_IN, 64),
-};
-
-#if TUD_OPT_HIGH_SPEED
-// high speed configuration
-static uint8_t const desc_hs_configuration[] = {
- TUD_CONFIG_DESCRIPTOR(1, ITF_NUM_TOTAL, 0, CONFIG_TOTAL_LEN, 0x00, 100),
-
- TUD_HID_DESCRIPTOR(ITF_NUM_HID, 4, HID_ITF_PROTOCOL_NONE, sizeof(desc_hid_report), EPNUM_HID,
- CFG_TUD_HID_EP_BUFSIZE, 5),
-
- TUD_PRINTER_DESCRIPTOR(ITF_NUM_PRINTER, 5, EPNUM_PRINTER_OUT, EPNUM_PRINTER_IN, 512),
-};
-
-// other speed configuration
-static uint8_t desc_other_speed_config[CONFIG_TOTAL_LEN];
-
-// device qualifier is mostly similar to device descriptor since we don't change configuration based on speed
-static tusb_desc_device_qualifier_t const desc_device_qualifier = {
- .bLength = sizeof(tusb_desc_device_qualifier_t),
- .bDescriptorType = TUSB_DESC_DEVICE_QUALIFIER,
- .bcdUSB = USB_BCD,
-
- .bDeviceClass = 0x00,
- .bDeviceSubClass = 0x00,
- .bDeviceProtocol = 0x00,
-
- .bMaxPacketSize0 = CFG_TUD_ENDPOINT0_SIZE,
- .bNumConfigurations = 0x01,
- .bReserved = 0x00
-};
-
-uint8_t const *tud_descriptor_device_qualifier_cb(void) {
- return (uint8_t const *) &desc_device_qualifier;
-}
-
-uint8_t const *tud_descriptor_other_speed_configuration_cb(uint8_t index) {
- (void) index;
-
- // if link speed is high return fullspeed config, and vice versa
- memcpy(desc_other_speed_config,
- (tud_speed_get() == TUSB_SPEED_HIGH) ? desc_fs_configuration : desc_hs_configuration,
- CONFIG_TOTAL_LEN);
-
- desc_other_speed_config[1] = TUSB_DESC_OTHER_SPEED_CONFIG;
-
- return desc_other_speed_config;
-}
-
-#endif // TUD_OPT_HIGH_SPEED
-
-uint8_t const *tud_descriptor_configuration_cb(uint8_t index) {
- (void) index;
-
-#if TUD_OPT_HIGH_SPEED
- return (tud_speed_get() == TUSB_SPEED_HIGH) ? desc_hs_configuration : desc_fs_configuration;
-#else
- return desc_fs_configuration;
-#endif
-}
-
-//--------------------------------------------------------------------+
-// String Descriptors
-//--------------------------------------------------------------------+
-
-enum {
- STRID_LANGID = 0,
- STRID_MANUFACTURER,
- STRID_PRODUCT,
- STRID_SERIAL,
- STRID_HID,
- STRID_PRINTER,
-};
-
-static char const *string_desc_arr[] = {
- (const char[]) { 0x09, 0x04 }, // 0: supported language is English (0x0409)
- "TinyUSB", // 1: Manufacturer
- "TinyUSB Device", // 2: Product
- NULL, // 3: Serial, use unique ID if possible
- "TinyUSB HID", // 4: HID Interface
- "TinyUSB Printer", // 5: Printer Interface
-};
-
-static uint16_t _desc_str[32 + 1];
-
-uint16_t const *tud_descriptor_string_cb(uint8_t index, uint16_t langid) {
- (void) langid;
- size_t chr_count;
-
- switch (index) {
- case STRID_LANGID:
- memcpy(&_desc_str[1], string_desc_arr[0], 2);
- chr_count = 1;
- break;
-
- case STRID_SERIAL:
- chr_count = board_usb_get_serial(_desc_str + 1, 32);
- break;
-
- default:
- if (!(index < sizeof(string_desc_arr) / sizeof(string_desc_arr[0]))) { return NULL; }
-
- const char *str = string_desc_arr[index];
-
- chr_count = strlen(str);
- size_t const max_count = sizeof(_desc_str) / sizeof(_desc_str[0]) - 1;
- if (chr_count > max_count) { chr_count = max_count; }
-
- for (size_t i = 0; i < chr_count; i++) {
- _desc_str[1 + i] = str[i];
- }
- break;
- }
-
- _desc_str[0] = (uint16_t) ((TUSB_DESC_STRING << 8) | (2 * chr_count + 2));
- return _desc_str;
-}
diff --git a/examples/device/printer_to_hid/src/usb_descriptors.h b/examples/device/printer_to_hid/src/usb_descriptors.h
deleted file mode 100644
index 20c34f151..000000000
--- a/examples/device/printer_to_hid/src/usb_descriptors.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * The MIT License (MIT)
- *
- * Copyright (c) 2019 Ha Thach (tinyusb.org)
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#ifndef USB_DESCRIPTORS_H_
-#define USB_DESCRIPTORS_H_
-
-// HID report ID
-enum {
- REPORT_ID_KEYBOARD = 1,
-};
-
-enum {
- ITF_NUM_HID,
- ITF_NUM_PRINTER,
- ITF_NUM_TOTAL,
-};
-
-#define CONFIG_TOTAL_LEN (TUD_CONFIG_DESC_LEN + TUD_HID_DESC_LEN + TUD_PRINTER_DESC_LEN)
-
-#endif /* USB_DESCRIPTORS_H_ */