mirror of
https://github.com/clockworkpi/DevTerm.git
synced 2025-12-12 18:28:50 +01:00
uconsole keyboard fix
This commit is contained in:
parent
558d81bee4
commit
6058dcda0d
@ -25,10 +25,12 @@ typedef struct keyboard_state{
|
|||||||
uint8_t layer;
|
uint8_t layer;
|
||||||
uint8_t prev_layer;
|
uint8_t prev_layer;
|
||||||
uint8_t fn_on;
|
uint8_t fn_on;
|
||||||
|
uint8_t sf_on;//shift on
|
||||||
|
|
||||||
uint8_t backlight;//0 1 2 3
|
uint8_t backlight;//0 1 2 3
|
||||||
uint8_t lock;//0 1
|
uint8_t lock;//0 1
|
||||||
|
|
||||||
|
|
||||||
KEYBOARD_LOCK ctrl;
|
KEYBOARD_LOCK ctrl;
|
||||||
KEYBOARD_LOCK shift;
|
KEYBOARD_LOCK shift;
|
||||||
KEYBOARD_LOCK alt;
|
KEYBOARD_LOCK alt;
|
||||||
|
|||||||
@ -41,6 +41,8 @@ void setup() {
|
|||||||
dev_term.Keyboard_state.layer = 0;
|
dev_term.Keyboard_state.layer = 0;
|
||||||
dev_term.Keyboard_state.prev_layer = 0;
|
dev_term.Keyboard_state.prev_layer = 0;
|
||||||
dev_term.Keyboard_state.fn_on = 0;
|
dev_term.Keyboard_state.fn_on = 0;
|
||||||
|
dev_term.Keyboard_state.sf_on = 0;
|
||||||
|
|
||||||
//dev_term.Keyboard_state.shift = 0;
|
//dev_term.Keyboard_state.shift = 0;
|
||||||
dev_term.Keyboard_state.backlight = 0;
|
dev_term.Keyboard_state.backlight = 0;
|
||||||
dev_term.Keyboard_state.lock = 0;
|
dev_term.Keyboard_state.lock = 0;
|
||||||
|
|||||||
@ -222,7 +222,11 @@ void keyboard_action(DEVTERM*dv,uint8_t row,uint8_t col,uint8_t mode) {
|
|||||||
}break;
|
}break;
|
||||||
case _VOLUME_M:{
|
case _VOLUME_M:{
|
||||||
if(mode == KEY_PRESSED) {
|
if(mode == KEY_PRESSED) {
|
||||||
dv->Consumer->press(HIDConsumer::VOLUME_DOWN);
|
if(dv->Keyboard_state.sf_on == 1){
|
||||||
|
dv->Consumer->press(HIDConsumer::VOLUME_UP);
|
||||||
|
}else{
|
||||||
|
dv->Consumer->press(HIDConsumer::VOLUME_DOWN);
|
||||||
|
}
|
||||||
}else {
|
}else {
|
||||||
dv->Consumer->release();
|
dv->Consumer->release();
|
||||||
}
|
}
|
||||||
@ -317,14 +321,16 @@ void keypad_action(DEVTERM*dv,uint8_t col,uint8_t mode) {
|
|||||||
case _LEFT_SHIFT_KEY:
|
case _LEFT_SHIFT_KEY:
|
||||||
case KEY_RIGHT_SHIFT:
|
case KEY_RIGHT_SHIFT:
|
||||||
if(mode == KEY_PRESSED) {
|
if(mode == KEY_PRESSED) {
|
||||||
if(dv->Keyboard_state.shift.lock == 0){
|
dv->Keyboard_state.sf_on = 1;
|
||||||
|
if(dv->Keyboard_state.shift.lock == 0){
|
||||||
dv->Keyboard->press(k);
|
dv->Keyboard->press(k);
|
||||||
dv->Keyboard_state.shift.begin=k;
|
dv->Keyboard_state.shift.begin=k;
|
||||||
}
|
}
|
||||||
}else if(mode == KEY_RELEASED) {
|
}else if(mode == KEY_RELEASED) {
|
||||||
|
dv->Keyboard_state.sf_on = 0;
|
||||||
if(dv->Keyboard_state.shift.lock == 0){
|
if(dv->Keyboard_state.shift.lock == 0){
|
||||||
dv->Keyboard->release(k);
|
dv->Keyboard->release(k);
|
||||||
dv->Keyboard_state.shift.begin = 0;
|
dv->Keyboard_state.shift.begin = 0;
|
||||||
dv->Keyboard_state.shift.time = 0;
|
dv->Keyboard_state.shift.time = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user