From 40f7981395f4225c48084c005af981bda2f94d50 Mon Sep 17 00:00:00 2001 From: carlxia Date: Mon, 24 Feb 2020 11:04:26 +0800 Subject: [Keyboard] Add zfrontier/big_switch (#8205) * add zfrontier/big_switch * Update keyboards/zfrontier/big_switch/config.h Co-Authored-By: Ryan * Update keyboards/zfrontier/big_switch/config.h Co-Authored-By: Ryan * Update keyboards/zfrontier/big_switch/keymaps/longtap/keymap.c Co-Authored-By: Ryan * add overriding keymap makefile * Update keyboards/zfrontier/big_switch/keymaps/longtap/keymap.c Co-Authored-By: Drashna Jaelre * Update keyboards/zfrontier/big_switch/keymaps/default/keymap.c Co-Authored-By: Drashna Jaelre * remove redundant defines * taplong no longer needed Co-authored-by: Ryan Co-authored-by: Drashna Jaelre --- .../zfrontier/big_switch/keymaps/longtap/keymap.c | 118 +++++++++++++++++++++ .../zfrontier/big_switch/keymaps/longtap/readme.md | 4 + .../zfrontier/big_switch/keymaps/longtap/rules.mk | 1 + 3 files changed, 123 insertions(+) create mode 100644 keyboards/zfrontier/big_switch/keymaps/longtap/keymap.c create mode 100644 keyboards/zfrontier/big_switch/keymaps/longtap/readme.md create mode 100644 keyboards/zfrontier/big_switch/keymaps/longtap/rules.mk (limited to 'keyboards/zfrontier/big_switch/keymaps/longtap') diff --git a/keyboards/zfrontier/big_switch/keymaps/longtap/keymap.c b/keyboards/zfrontier/big_switch/keymaps/longtap/keymap.c new file mode 100644 index 0000000000..a475421a3a --- /dev/null +++ b/keyboards/zfrontier/big_switch/keymaps/longtap/keymap.c @@ -0,0 +1,118 @@ +/* Copyright 2020 zFrontier + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H +#include + + +enum { + TD_ENTER = 0, +}; + + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + LAYOUT( TD(TD_ENTER) ), +}; + + + +void keyboard_post_init_user(void) { + print("zFrontier S01.6 boot...\n"); + rgblight_enable_noeeprom(); + rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING); + rgblight_sethsv_noeeprom(0,0,128); +} + + +void zf_switch_rgb_mode(void) { + switch (rgblight_get_mode() ) { + case RGBLIGHT_MODE_BREATHING: + rgblight_mode_noeeprom(RGBLIGHT_MODE_RAINBOW_MOOD); + break; + case RGBLIGHT_MODE_RAINBOW_MOOD: + rgblight_mode_noeeprom(RGBLIGHT_MODE_RAINBOW_SWIRL); + break; + case RGBLIGHT_MODE_RAINBOW_SWIRL: + rgblight_mode_noeeprom(RGBLIGHT_MODE_SNAKE); + break; + case RGBLIGHT_MODE_SNAKE: + rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT); + break; + case RGBLIGHT_MODE_KNIGHT: + rgblight_mode_noeeprom(RGBLIGHT_MODE_CHRISTMAS); + break; + case RGBLIGHT_MODE_CHRISTMAS: + rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_GRADIENT); + break; + case RGBLIGHT_MODE_STATIC_GRADIENT: + rgblight_mode_noeeprom(RGBLIGHT_MODE_RGB_TEST); + break; + case RGBLIGHT_MODE_RGB_TEST: + default: + rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING); + break; + } +} + +void zf_send_random_string(void) { + uint8_t tmpu8 = (timer_read() & 0x7); + switch (tmpu8) { + case 0: + case 1: + SEND_STRING("Sazabi, launching!"); + break; + case 2: + case 3: + SEND_STRING("I, Char Aznable, will purge them, Amuro!"); + break; + case 4: + case 5: + SEND_STRING("Their souls are weighted down by gravity!"); + break; + case 6: + SEND_STRING("Go, Axis! With my unpleasant memories!"); + break; + case 7: + SEND_STRING("Hello from zFrontier!"); + break; + } + + tap_code(KC_ENT); +} + +void dance_finished(qk_tap_dance_state_t *state, void *user_data) { + switch (state->count) { + case 1: + register_code(KC_ENTER); + break; + case 2: + zf_switch_rgb_mode(); + break; + default: + zf_send_random_string(); + break; + } +} + +void dance_reset(qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + unregister_code(KC_ENTER); + } +} + +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_ENTER] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, dance_finished, dance_reset) +}; diff --git a/keyboards/zfrontier/big_switch/keymaps/longtap/readme.md b/keyboards/zfrontier/big_switch/keymaps/longtap/readme.md new file mode 100644 index 0000000000..a94e5c32cb --- /dev/null +++ b/keyboards/zfrontier/big_switch/keymaps/longtap/readme.md @@ -0,0 +1,4 @@ +# The longtap keymap for big_switch, the single switch keyboard, +- tap once : send ENTER +- tap twice : change RGB backlight mode +- tap three times : send a pesudo-random string diff --git a/keyboards/zfrontier/big_switch/keymaps/longtap/rules.mk b/keyboards/zfrontier/big_switch/keymaps/longtap/rules.mk new file mode 100644 index 0000000000..e5ddcae8d9 --- /dev/null +++ b/keyboards/zfrontier/big_switch/keymaps/longtap/rules.mk @@ -0,0 +1 @@ +TAP_DANCE_ENABLE = yes -- cgit v1.2.3