aboutsummaryrefslogtreecommitdiff
path: root/users/spacebarracecar/spacebarracecar.c
diff options
context:
space:
mode:
Diffstat (limited to 'users/spacebarracecar/spacebarracecar.c')
-rw-r--r--users/spacebarracecar/spacebarracecar.c352
1 files changed, 0 insertions, 352 deletions
diff --git a/users/spacebarracecar/spacebarracecar.c b/users/spacebarracecar/spacebarracecar.c
deleted file mode 100644
index 3141b8758e..0000000000
--- a/users/spacebarracecar/spacebarracecar.c
+++ /dev/null
@@ -1,352 +0,0 @@
-#include "spacebarracecar.h"
-
-#ifdef GERMAN_ENABLE
-// These indicate if left and right shift are physically pressed
-bool lshift = false;
-bool rshift = false;
-
-// Interrupt and times for space cadet shift
-bool lshiftp = false;
-bool rshiftp = false;
-uint16_t lshift_timer = 0;
-uint16_t rshift_timer = 0;
-
-// Number of items that are saved in prev_kcs
-uint8_t prev_indx = 0;
-// Used to save the last 6 actual keycodes activated by frankenkeycodes
-uint16_t prev_kcs[6] = {0, 0, 0, 0, 0, 0};
-
-// If true the deadkey characters grave and circonflexe are not automatically escaped
-bool esct = false;
-
-/*
-Used to add a keycode to a prev_kcs to remember it.
-When full the last code gets discarded and replaced by
-the new one.
-*/
-void add_to_prev(uint16_t kc){
- for (int i=0; i<prev_indx; i++){
- if (kc == prev_kcs[i])
- return;
- }
- if (prev_indx == 6){
- for (int i=5; i>0; i--){
- prev_kcs[i] = prev_kcs[i-1];
- }
- prev_kcs[0] = kc;
- } else {
- prev_kcs[prev_indx] = kc;
- prev_indx++;
- }
-}
-
-/*
-Unregisters all codes saved in prev_kcs and resets prev_indx.
-gets called on multiple occasions mainly when shift is released
-and when frankenkeycodes are pressed. Prevents output of
-wrong characters when really specific key combinations
-that would never occur during normal usage are pressed.
-*/
-void unreg_prev(void){
- if (prev_indx == 0)
- return;
- for (int i=0; i<prev_indx; i++){
- unregister_code(prev_kcs[i]);
- }
- prev_indx = 0;
-}
-#endif
-
-// Interrupt and times for Nav/Esc
-bool navesc = false;
-uint16_t navesc_timer = 0;
-
-// If true Gui keys and Space Cadet Shift get disabled
-bool game = false;
-
-// Interrupts all timers
-void timer_timeout(void){
- #ifdef GERMAN_ENABLE
- lshiftp = false;
- rshiftp = false;
- #endif
- navesc = false;
- timer_timeout_keymap();
-}
-
-__attribute__((weak))
-void timer_timeout_keymap(void){
-}
-
-bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case CU_GAME:
- if(record->event.pressed) {
- timer_timeout();
- game = !game;
- }
- // allows keymap to execute further commands when CU_GAME is pressed, for example enabling a macro layer
- return process_record_keymap(keycode, record) && false;
- case KC_LGUI:
- case KC_RGUI:
- if (record->event.pressed)
- timer_timeout();
- if (game)
- return false;
- else
- return true;
- case CU_NAV:
- if(record->event.pressed) {
- navesc = true;
- navesc_timer = timer_read();
- layer_on(_NAV);
- } else {
- if (timer_elapsed(navesc_timer) < TAPPING_TERM && navesc) {
- register_code(KC_ESC);
- unregister_code(KC_ESC);
- }
- layer_off(_NAV);
- }
- return false;
- case KC_P00:
- if(record->event.pressed) {
- timer_timeout();
- register_code(KC_P0);
- unregister_code(KC_P0);
- register_code(KC_P0);
- unregister_code(KC_P0);
- }
- return false;
-
- #ifdef RGBLIGHT_ENABLE
- case CU_RGBV:
- if(record->event.pressed) {
- timer_timeout();
- if (rgblight_get_val()+32>255)
- rgblight_sethsv(rgblight_get_hue(), rgblight_get_sat(), 31);
- else
- rgblight_sethsv(rgblight_get_hue(), rgblight_get_sat(), rgblight_get_val()+32);
- }
- return false;
- #endif
-
- #ifdef GERMAN_ENABLE
- case CU_LSFT:
- if(record->event.pressed) {
- lshiftp = true;
- lshift_timer = timer_read();
- unregister_code(KC_LSFT);
- register_code(KC_LSFT);
- lshift = true;
- } else {
- if (timer_elapsed(lshift_timer) < TAPPING_TERM && lshiftp && !game) {
- register_code(KC_LSFT);
- register_code(KC_8);
- unregister_code(KC_8);
- unregister_code(KC_LSFT);
- }
- unreg_prev();
- if (!rshift)
- unregister_code(KC_LSFT);
- lshift = false;
- }
- return false;
- case CU_RSFT:
- if(record->event.pressed) {
- rshiftp = true;
- rshift_timer = timer_read();
- unregister_code(KC_LSFT);
- register_code(KC_LSFT);
- rshift = true;
- } else {
- if (timer_elapsed(rshift_timer) < TAPPING_TERM && rshiftp && !game) {
- register_code(KC_LSFT);
- register_code(KC_9);
- unregister_code(KC_9);
- unregister_code(KC_LSFT);
- }
- unreg_prev();
- if (!lshift)
- unregister_code(KC_LSFT);
- rshift = false;
- }
- return false;
- case CU_ESCT:
- if(record->event.pressed) {
- timer_timeout();
- esct = !esct;
- }
- return false;
- case CU_AE:
- UML(DE_ADIA)
- case CU_OE:
- UML(DE_ODIA)
- case CU_UE:
- UML(DE_UDIA)
- case CU_SS:
- if(record->event.pressed) {
- timer_timeout();
- unregister_code(KC_LSFT);
- register_code(DE_SS);
- unregister_code(DE_SS);
- if (lshift || rshift)
- register_code(KC_LSFT);
- layer_off(_DEADKEY);
- }
- return false;
- case CU_DDQ:
- if(record->event.pressed) {
- timer_timeout();
- register_code(KC_LSFT);
- register_code(KC_2);
- unregister_code(KC_2);
- if (!lshift && !rshift)
- unregister_code(KC_LSFT);
- layer_off(_DEADKEY);
- }
- return false;
- case CU_ED:
- if(record->event.pressed) {
- timer_timeout();
- layer_off(_DEADKEY);
- }
- return false;
- case CU_GRV:
- if(record->event.pressed) {
- timer_timeout();
- if (lshift || rshift){
- unregister_code(KC_LSFT);
- register_code(KC_ALGR);
- unregister_code(DE_PLUS);
- register_code(DE_PLUS);
- unregister_code(DE_PLUS);
- unregister_code(KC_ALGR);
- register_code(KC_LSFT);
- } else {
- register_code(KC_LSFT);
- unregister_code(DE_ACUT);
- register_code(DE_ACUT);
- unregister_code(DE_ACUT);
- unregister_code(KC_LSFT);
- if (!esct) {
- register_code(KC_SPC);
- unregister_code(KC_SPC);
- }
- }
- }
- return false;
- case CU_CIRC:
- if(record->event.pressed) {
- timer_timeout();
- unregister_code(KC_LSFT);
- unregister_code(DE_CIRC);
- register_code(DE_CIRC);
- unregister_code(DE_CIRC);
- if (!esct) {
- register_code(KC_SPC);
- unregister_code(KC_SPC);
- }
- if (lshift || rshift)
- register_code(KC_LSFT);
- }
- return false;
- case CU_QUOT:
- if(record->event.pressed){
- timer_timeout();
- register_code(KC_LSFT);
- if (lshift || rshift){
- layer_on(_DEADKEY);
- } else {
- unregister_code(DE_HASH);
- register_code(DE_HASH);
- add_to_prev(DE_HASH);
- }
- } else {
- unregister_code(DE_HASH);
- unreg_prev();
- if (lshift || rshift)
- register_code(KC_LSFT);
- else
- unregister_code(KC_LSFT);
- }
- return false;
- case CU_6:
- if(record->event.pressed){
- timer_timeout();
- unregister_code(KC_LSFT);
- if (lshift || rshift){
- unregister_code(DE_CIRC);
- register_code(DE_CIRC);
- unregister_code(DE_CIRC);
- if (!esct) {
- register_code(KC_SPC);
- unregister_code(KC_SPC);
- }
- register_code(KC_LSFT);
- } else {
- register_code(DE_6);
- }
- } else {
- unregister_code(DE_6);
- }
- return false;
- case CU_COMM:
- SHIFT_NO(DE_COMM, DE_LABK)
- case CU_DOT:
- SHIFT_NORM(DE_DOT, DE_LABK)
- case CU_SLSH:
- SHIFT_ALL(DE_7, DE_SS)
- case CU_SCLN:
- SHIFT_ALL(DE_COMM, DE_DOT)
- case CU_3:
- SHIFT_NO(DE_3, DE_HASH)
- case CU_7:
- SHIFT_NORM(DE_7, DE_6)
- case CU_8:
- SHIFT_NORM(DE_8, DE_PLUS)
- case CU_9:
- SHIFT_NORM(DE_9, DE_8)
- case CU_0:
- SHIFT_NORM(DE_0, DE_9)
- case CU_EQL:
- SHIFT_SWITCH(DE_0, DE_PLUS)
- case CU_LBRC:
- SHIFT_ALGR(DE_8, DE_7)
- case CU_RBRC:
- SHIFT_ALGR(DE_9, DE_0)
- case CU_BSLS:
- SHIFT_ALGR(DE_SS, DE_LABK)
- case CU_Z:
- CTRL(DE_Z, KC_Z)
- case CU_Y:
- CTRL(DE_Y, KC_Y)
- case KC_LCTL:
- case KC_RCTL:
- if(!record->event.pressed) {
- timer_timeout();
- unregister_code(KC_Z);
- unregister_code(KC_Y);
- }
- return true;
- #endif
-
- default:
- if(record->event.pressed) {
- timer_timeout();
-
- #ifdef GERMAN_ENABLE
- if (lshift || rshift)
- register_code(KC_LSFT);
- else
- unregister_code(KC_LSFT);
- #endif
-
- }
- return process_record_keymap(keycode, record);
- }
-}
-
-__attribute__((weak))
-bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
-}