mirror of
https://github.com/clockworkpi/DevTerm.git
synced 2025-12-13 02:38:50 +01:00
add usb hid consumer,increase key latency
This commit is contained in:
parent
7ccbbb5c3e
commit
eb44ebdf50
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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
|
||||
|
||||
};
|
||||
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user