diff --git a/Code/devterm_keyboard_mini/devterm.h b/Code/devterm_keyboard_mini/devterm.h index bbe4f70..ac6029f 100644 --- a/Code/devterm_keyboard_mini/devterm.h +++ b/Code/devterm_keyboard_mini/devterm.h @@ -25,10 +25,12 @@ typedef struct keyboard_state{ uint8_t layer; uint8_t prev_layer; uint8_t fn_on; + uint8_t sf_on;//shift on uint8_t backlight;//0 1 2 3 uint8_t lock;//0 1 + KEYBOARD_LOCK ctrl; KEYBOARD_LOCK shift; KEYBOARD_LOCK alt; diff --git a/Code/devterm_keyboard_mini/devterm_keyboard_mini.ino b/Code/devterm_keyboard_mini/devterm_keyboard_mini.ino index b15578e..374bf4f 100644 --- a/Code/devterm_keyboard_mini/devterm_keyboard_mini.ino +++ b/Code/devterm_keyboard_mini/devterm_keyboard_mini.ino @@ -41,6 +41,8 @@ void setup() { dev_term.Keyboard_state.layer = 0; dev_term.Keyboard_state.prev_layer = 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.backlight = 0; dev_term.Keyboard_state.lock = 0; diff --git a/Code/devterm_keyboard_mini/keymaps.ino b/Code/devterm_keyboard_mini/keymaps.ino index 1a7e019..bdd0648 100644 --- a/Code/devterm_keyboard_mini/keymaps.ino +++ b/Code/devterm_keyboard_mini/keymaps.ino @@ -222,7 +222,11 @@ void keyboard_action(DEVTERM*dv,uint8_t row,uint8_t col,uint8_t mode) { }break; case _VOLUME_M:{ 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 { dv->Consumer->release(); } @@ -317,14 +321,16 @@ void keypad_action(DEVTERM*dv,uint8_t col,uint8_t mode) { case _LEFT_SHIFT_KEY: case KEY_RIGHT_SHIFT: 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_state.shift.begin=k; - } + dv->Keyboard_state.shift.begin=k; + } }else if(mode == KEY_RELEASED) { + dv->Keyboard_state.sf_on = 0; if(dv->Keyboard_state.shift.lock == 0){ dv->Keyboard->release(k); - dv->Keyboard_state.shift.begin = 0; + dv->Keyboard_state.shift.begin = 0; dv->Keyboard_state.shift.time = 0; } }