diff --git a/Code/devterm_keyboard/devterm.h b/Code/devterm_keyboard/devterm.h index 8e42577..b860971 100644 --- a/Code/devterm_keyboard/devterm.h +++ b/Code/devterm_keyboard/devterm.h @@ -1,6 +1,7 @@ #ifndef DEVTERM_H #define DEVTERM_H +#define KEY_LATENCY 80 #include typedef struct key_debouncing{ @@ -23,6 +24,7 @@ class DEVTERM { HIDKeyboard *Keyboard; HIDMouse *Mouse; HIDJoystick *Joystick; + HIDConsumer *Consumer; KEYBOARD_STATE Keyboard_state; USBCompositeSerial *_Serial; //if not to use USBCompositeSerial,then use default Serial diff --git a/Code/devterm_keyboard/devterm_keyboard.ino b/Code/devterm_keyboard/devterm_keyboard.ino index 610f051..64225d9 100644 --- a/Code/devterm_keyboard/devterm_keyboard.ino +++ b/Code/devterm_keyboard/devterm_keyboard.ino @@ -10,6 +10,14 @@ USBHID HID; DEVTERM dev_term; +const uint8_t reportDescription[] = { + HID_CONSUMER_REPORT_DESCRIPTOR(), + HID_KEYBOARD_REPORT_DESCRIPTOR(), + HID_JOYSTICK_REPORT_DESCRIPTOR(), + HID_MOUSE_REPORT_DESCRIPTOR() +}; + + void setup() { USBComposite.setManufacturerString("ClockworkPI"); USBComposite.setProductString("DevTerm"); @@ -18,6 +26,7 @@ void setup() { dev_term.Keyboard = new HIDKeyboard(HID); dev_term.Joystick = new HIDJoystick(HID); dev_term.Mouse = new HIDMouse(HID); + dev_term.Consumer = new HIDConsumer(HID); dev_term.Keyboard_state.shift = 0; dev_term.Keyboard_state.layer = 0; @@ -25,7 +34,7 @@ void setup() { dev_term._Serial = new USBCompositeSerial; - HID.begin(*dev_term._Serial,HID_KEYBOARD_MOUSE_JOYSTICK); + HID.begin(*dev_term._Serial,reportDescription, sizeof(reportDescription)); while(!USBComposite);//wait until usb port been plugged in to PC diff --git a/Code/devterm_keyboard/keyboard.h b/Code/devterm_keyboard/keyboard.h index bbab2ac..69dd55a 100644 --- a/Code/devterm_keyboard/keyboard.h +++ b/Code/devterm_keyboard/keyboard.h @@ -43,10 +43,10 @@ void keyboard_init(DEVTERM*); #define KEY_PRESSED 1 #define KEY_RELEASED 0 -#define KEY_PRNT_SCRN 0xCE //Print screen -#define KEY_PAUSE 0xd0 +#define KEY_PRNT_SCRN 0xCE //Print screen - 0x88 == usb hut1_12v2.pdf keyboard code +#define KEY_PAUSE 0xd0 // - 0x88 == usb hut1_12v2.pdf keyboard code -#define KEY_VOLUME_UP 0x108 -#define KEY_VOLUME_DOWN 0x109 +#define KEY_VOLUME_UP 0x108 // - 0x88 == usb hut1_12v2.pdf keyboard code +#define KEY_VOLUME_DOWN 0x109 // - 0x88 == usb hut1_12v2.pdf keyboard code #endif diff --git a/Code/devterm_keyboard/keyboard.ino b/Code/devterm_keyboard/keyboard.ino index bbd6e26..50fd73c 100644 --- a/Code/devterm_keyboard/keyboard.ino +++ b/Code/devterm_keyboard/keyboard.ino @@ -164,7 +164,7 @@ void keyboard_task(DEVTERM*dv) jack_idx = r*MATRIX_ROWS+c; }else{ jack_time +=1; - if( jack_time % (DEBOUNCE*40) == 0){ + if( jack_time % (DEBOUNCE*KEY_LATENCY) == 0){ if(jack_idx > 1){//skip select,start button matrix_press(dv,r,c); } diff --git a/Code/devterm_keyboard/keymaps.ino b/Code/devterm_keyboard/keymaps.ino index ac59ba9..1ccf01a 100644 --- a/Code/devterm_keyboard/keymaps.ino +++ b/Code/devterm_keyboard/keymaps.ino @@ -51,7 +51,9 @@ enum SKEYS { _FN_KEY_UP_ARROW, // Simulate Mouse.move _FN_KEY_DOWN_ARROW, //Mouse.move _FN_KEY_LEFT_ARROW, //Mouse.move - _FN_KEY_RIGHT_ARROW //Mouse.move + _FN_KEY_RIGHT_ARROW, //Mouse.move + _FN_BRIGHTNESS_UP, //USB Consumer brightness up https://github.com/torvalds/linux/blob/7fe10096c1508c7f033d34d0741809f8eecc1ed4/drivers/hid/hid-input.c#L903 + _FN_BRIGHTNESS_DOWN, //USB Consumer brightness down }; diff --git a/Code/devterm_keyboard/keys.ino b/Code/devterm_keyboard/keys.ino index 8606f56..50d2b57 100644 --- a/Code/devterm_keyboard/keys.ino +++ b/Code/devterm_keyboard/keys.ino @@ -93,7 +93,7 @@ void keys_task(DEVTERM*dv){ keys_jack_idx = c; }else{ keys_jack_time +=1; - if( keys_jack_time % (KEY_DEBOUNCE*40) == 0){ + if( keys_jack_time % (KEY_DEBOUNCE*KEY_LATENCY) == 0){ keypad_action(dv,c,KEY_PRESSED); } }