キーボードの長押しに対応。

Dependents:   PS4_FF14_Adapter

Fork of USBDevice by mbed official

Revision:
72:8c3160323201
Parent:
1:80ab0d068708
Child:
73:803bc631881e
--- a/USBHID/USBKeyboard.cpp	Fri Mar 01 13:10:29 2013 +0000
+++ b/USBHID/USBKeyboard.cpp	Sat Aug 18 06:37:49 2018 +0000
@@ -23,14 +23,14 @@
 #define REPORT_ID_KEYBOARD 1
 #define REPORT_ID_VOLUME   3
 
-
+/// キーマップ構造体 ///
 typedef struct {
     unsigned char usage;
     unsigned char modifier;
 } KEYMAP;
 
 #ifdef US_KEYBOARD
-/* US keyboard (as HID standard) */
+/* US キーボード (as HID 標準) */
 #define KEYMAP_SIZE (152)
 const KEYMAP keymap[KEYMAP_SIZE] = {
     {0, 0},             /* NUL */
@@ -191,7 +191,7 @@
 };
 
 #else
-/* UK keyboard */
+/* UK キーボード */
 #define KEYMAP_SIZE (152)
 const KEYMAP keymap[KEYMAP_SIZE] = {
     {0, 0},             /* NUL */
@@ -352,24 +352,27 @@
 };
 #endif
 
+///
+/// reportDesc
+///
 uint8_t * USBKeyboard::reportDesc() {
     static uint8_t reportDescriptor[] = {
-        USAGE_PAGE(1), 0x01,                    // Generic Desktop
-        USAGE(1), 0x06,                         // Keyboard
-        COLLECTION(1), 0x01,                    // Application
+        USAGE_PAGE(1), 0x01,                    // 標準デスクトップ
+        USAGE(1), 0x06,                         // キーボード
+        COLLECTION(1), 0x01,                    // アプリケーション
         REPORT_ID(1),       REPORT_ID_KEYBOARD,
 
-        USAGE_PAGE(1), 0x07,                    // Key Codes
+        USAGE_PAGE(1), 0x07,                    // キーコード
         USAGE_MINIMUM(1), 0xE0,
         USAGE_MAXIMUM(1), 0xE7,
         LOGICAL_MINIMUM(1), 0x00,
         LOGICAL_MAXIMUM(1), 0x01,
         REPORT_SIZE(1), 0x01,
         REPORT_COUNT(1), 0x08,
-        INPUT(1), 0x02,                         // Data, Variable, Absolute
+        INPUT(1), 0x02,                         // データ, 変数, 絶対値
         REPORT_COUNT(1), 0x01,
         REPORT_SIZE(1), 0x08,
-        INPUT(1), 0x01,                         // Constant
+        INPUT(1), 0x01,                         // 定数
 
 
         REPORT_COUNT(1), 0x05,
@@ -377,20 +380,20 @@
         USAGE_PAGE(1), 0x08,                    // LEDs
         USAGE_MINIMUM(1), 0x01,
         USAGE_MAXIMUM(1), 0x05,
-        OUTPUT(1), 0x02,                        // Data, Variable, Absolute
+        OUTPUT(1), 0x02,                        // データ, 変数, 絶対値
         REPORT_COUNT(1), 0x01,
         REPORT_SIZE(1), 0x03,
-        OUTPUT(1), 0x01,                        // Constant
+        OUTPUT(1), 0x01,                        // 定数
 
 
         REPORT_COUNT(1), 0x06,
         REPORT_SIZE(1), 0x08,
         LOGICAL_MINIMUM(1), 0x00,
         LOGICAL_MAXIMUM(1), 0x65,
-        USAGE_PAGE(1), 0x07,                    // Key Codes
+        USAGE_PAGE(1), 0x07,                    // キーコード
         USAGE_MINIMUM(1), 0x00,
         USAGE_MAXIMUM(1), 0x65,
-        INPUT(1), 0x00,                         // Data, Array
+        INPUT(1), 0x00,                         // データ, 配列
         END_COLLECTION(0),
 
         // Media Control
@@ -403,14 +406,14 @@
         LOGICAL_MAXIMUM(1), 0x01,
         REPORT_SIZE(1), 0x01,
         REPORT_COUNT(1), 0x07,
-        USAGE(1), 0xB5,             // Next Track
-        USAGE(1), 0xB6,             // Previous Track
-        USAGE(1), 0xB7,             // Stop
-        USAGE(1), 0xCD,             // Play / Pause
-        USAGE(1), 0xE2,             // Mute
-        USAGE(1), 0xE9,             // Volume Up
-        USAGE(1), 0xEA,             // Volume Down
-        INPUT(1), 0x02,             // Input (Data, Variable, Absolute)
+        USAGE(1), 0xB5,             // 次のトラック
+        USAGE(1), 0xB6,             // 前のトラック
+        USAGE(1), 0xB7,             // ストップ
+        USAGE(1), 0xCD,             // プレイ / ポーズ
+        USAGE(1), 0xE2,             // ミュート
+        USAGE(1), 0xE9,             // ボリュームアップ
+        USAGE(1), 0xEA,             // ボリュームダウン
+        INPUT(1), 0x02,             // 入力 (データ, 変数, 絶対値)
         REPORT_COUNT(1), 0x01,
         INPUT(1), 0x01,
         END_COLLECTION(0),
@@ -419,31 +422,42 @@
     return reportDescriptor;
 }
 
-
+///
+/// EP1_OUT_callback
+///
 bool USBKeyboard::EP1_OUT_callback() {
     uint32_t bytesRead = 0;
     uint8_t led[65];
     USBDevice::readEP(EPINT_OUT, led, &bytesRead, MAX_HID_REPORT_SIZE);
     
-    // we take led[1] because led[0] is the report ID
+    // led[0]はレポートIDなので、我々はled[1]を取ります。
     lock_status = led[1] & 0x07;
     
-    // We activate the endpoint to be able to recceive data
+    // データを受信できるようにエンドポイントをアクティブ化します。
     if (!readStart(EPINT_OUT, MAX_HID_REPORT_SIZE))
         return false;
     return true;
 }
 
+///
+/// ロックステータスを返す
+///
 uint8_t USBKeyboard::lockStatus() {
     return lock_status;
 }
 
+///
+/// 文字を送信する
+///
 int USBKeyboard::_putc(int c) {
     return keyCode(c, keymap[c].modifier);
 }
 
+///
+/// キーコード
+///
 bool USBKeyboard::keyCode(uint8_t key, uint8_t modifier) {
-    // Send a simulated keyboard keypress. Returns true if successful.
+    // シミューレートされたキーボードキーを送信します。成功した場合はtrueを返します。
     HID_REPORT report;
 
     report.data[0] = REPORT_ID_KEYBOARD;
@@ -473,7 +487,9 @@
 
 }
 
-
+///
+/// メディアコントロール
+///
 bool USBKeyboard::mediaControl(MEDIA_KEY key) {
     HID_REPORT report;
 
@@ -501,6 +517,9 @@
                                + (1 * HID_DESCRIPTOR_LENGTH) \
                                + (2 * ENDPOINT_DESCRIPTOR_LENGTH))
 
+///
+/// Descの設定
+///
 uint8_t * USBKeyboard::configurationDesc() {
     static uint8_t configurationDescriptor[] = {
         CONFIGURATION_DESCRIPTOR_LENGTH,// bLength