qmk_firmware

QMK firmware for my keyboards (Corne, Sweep Ferris) and trackball (Ploopy Adept)
Log | Files | Refs | Submodules | LICENSE

ortho75.c (1416B)


      1 
      2 #include "quantum.h"
      3 
      4 #define MEDIA_KEY_DELAY 10
      5 
      6 uint8_t layer = 0;
      7 
      8 layer_state_t layer_state_set_kb(layer_state_t state) {
      9     state = layer_state_set_user(state);
     10     layer = get_highest_layer(state);
     11     return state;
     12 }
     13 
     14 bool encoder_update_kb(uint8_t index, bool clockwise) {
     15     if (!encoder_update_user(index, clockwise)) return false;
     16     uint16_t mapped_code = 0;
     17     if (index == 0) {
     18         if (clockwise) {
     19             switch (layer) {
     20                 case 0:
     21                 default:
     22                     mapped_code = KC_VOLU;
     23                     break;
     24                 case 1:
     25                     mapped_code = KC_MEDIA_NEXT_TRACK;
     26                     break;
     27                 case 2:
     28                     mapped_code = KC_PGDN;
     29                     break;
     30             }
     31         } else {
     32             switch (layer) {
     33                 case 0:
     34                 default:
     35                     mapped_code = KC_VOLD;
     36                     break;
     37                 case 1:
     38                     mapped_code = KC_MEDIA_PREV_TRACK;
     39                     break;
     40                 case 2:
     41                     mapped_code = KC_PGUP;
     42                     break;
     43             }
     44         }
     45         uint16_t held_keycode_timer = timer_read();
     46         register_code(mapped_code);
     47         while (timer_elapsed(held_keycode_timer) < MEDIA_KEY_DELAY) { /* no-op */
     48         }
     49         unregister_code(mapped_code);
     50     }
     51     return true;
     52 }