add usb hid consumer,increase key latency

This commit is contained in:
cuu 2021-05-08 12:38:32 +08:00
parent 7ccbbb5c3e
commit eb44ebdf50
6 changed files with 21 additions and 8 deletions

View File

@ -1,6 +1,7 @@
#ifndef DEVTERM_H
#define DEVTERM_H
#define KEY_LATENCY 80
#include <USBComposite.h>
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

View File

@ -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

View File

@ -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

View File

@ -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);
}

View File

@ -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
};

View File

@ -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);
}
}