123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282 |
- #include "tominabox1.h"
- #ifdef KEYBOARD_lazydesigners_dimple
- #ifdef RGBLIGHT_ENABLE
- __attribute__ ((weak))
- void keyboard_post_init_keymap(void) {}
- void keyboard_post_init_user(void) { // sets the backlighting to come on upon successful load then turn off
- rgblight_enable_noeeprom();
- rgblight_sethsv_noeeprom(RGB_RED);
- rgblight_mode_noeeprom(0);
- wait_ms(700);
- rgblight_disable_noeeprom();
- }
- #endif // RGBLIGHT
- #endif // Dimple
- #ifdef RGB_MATRIX_ENABLE
- void rgb_matrix_layer_helper(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode, uint8_t speed, uint8_t led_type);
- static bool is_suspended;
- static bool rgb_matrix_enabled;
- __attribute__ ((weak))
- void suspend_power_down_keymap(void) {}
- void suspend_power_down_user(void) {
- rgb_matrix_set_suspend_state(true);
- if (!is_suspended) {
- is_suspended = true;
- rgb_matrix_enabled = (bool)rgb_matrix_config.enable;
- rgb_matrix_disable_noeeprom();
- }
- }
- __attribute__ ((weak))
- void suspend_wakeup_init_keymap(void) {}
- void suspend_wakeup_init_user(void) {
- rgb_matrix_set_suspend_state(false);
- is_suspended = false;
- if (rgb_matrix_enabled) {
- rgb_matrix_enable_noeeprom();
- }
- }
- # include "lib/lib8tion/lib8tion.h"
- extern led_config_t g_led_config;
- void rgb_matrix_layer_helper(uint8_t hue, uint8_t sat, uint8_t val, uint8_t mode, uint8_t speed, uint8_t led_type) {
- HSV hsv = {hue, sat, val};
- if (hsv.v > rgb_matrix_config.hsv.v) {
- hsv.v = rgb_matrix_config.hsv.v;
- }
- switch (mode) {
- case 1: // breathing
- {
- uint16_t time = scale16by8(g_rgb_counters.tick, speed / 8);
- hsv.v = scale8(abs8(sin8(time) - 128) * 2, hsv.v);
- RGB rgb = hsv_to_rgb(hsv);
- for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) {
- if (HAS_FLAGS(g_led_config.flags[i], led_type)) {
- rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
- }
- }
- break;
- }
- default: // Solid Color
- {
- RGB rgb = hsv_to_rgb(hsv);
- for (uint8_t i = 0; i < RGB_MATRIX_LED_COUNT; i++) {
- if (HAS_FLAGS(g_led_config.flags[i], led_type)) {
- rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
- }
- }
- break;
- }
- }
- }
- #endif //RGB_MATRIX_ENABLE
- void dance_cln_finished (qk_tap_dance_state_t *state, void *user_data) {
- if (state->count == 1) {
- register_code16(S(KC_2));
- } else {
- SEND_STRING("tom.campie@gmail.com");
- }
- }
- void dance_cln_reset (qk_tap_dance_state_t *state, void *user_data) {
- if (state->count == 1) {
- unregister_code16(S(KC_2));
- } else {
- }
- }
- qk_tap_dance_action_t tap_dance_actions[] = {
- [KC_EMAIL] = ACTION_TAP_DANCE_FN_ADVANCED (NULL, dance_cln_finished, dance_cln_reset),
- [TD_SFT_CPS] = ACTION_TAP_DANCE_DOUBLE(KC_LSFT, KC_CAPS),
- };
- #define TAPPING_TERM 200
- #define IGNORE_MOD_TAP_INTERRUPT
- #ifdef KEYBOARD_crkbd_rev1
- #endif // CRKBD
- uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record) {
- switch (keycode) {
- case LSFT_T(KC_CAPS):
- return 250;
- case KC_ENT_LOW:
- return 150;
- case KC_SPC_RSE:
- return(250);
- case LCTL_T(KC_TAB):
- return 300;
- default:
- return TAPPING_TERM;
- }
- };
- __attribute__ ((weak))
- layer_state_t layer_state_set_keymap (layer_state_t state) {
- return state;
- }
- layer_state_t layer_state_set_user(layer_state_t state) {
- state = update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
- switch (get_highest_layer(state)) {
- case _LOWER:
- break;
- case _RAISE:
- break;
- case _ADJUST:
- break;
- default:
- break;
- }
- return state;
- }
- #ifdef KEYBOARD_crkbd_rev1
- __attribute__((weak))
- void matrix_scan_keymap(void) {}
- extern bool oled_initialized;
- void matrix_scan_user(void) {
- if(!oled_initialized) {
- wait_ms(200);
- oled_init(0);
- return;
- }
- matrix_scan_keymap();
- }
- extern uint8_t is_master;
- #endif // CRKBD
- uint16_t oled_timer;
- __attribute__ ((weak))
- bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
- return true;
- }
- bool process_record_user(uint16_t keycode, keyrecord_t *record) {
- #ifdef CONSOLE_ENABLE
- uprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed);
- #endif
- if (record->event.pressed) {
- #ifdef OLED_ENABLE
- oled_timer = timer_read();
- oled_on();
- #endif // OLED_ENABLE
- switch (keycode) {
- case KC_BBB:
- if (record->event.pressed) {
- SEND_STRING(":b:");
- } else {}
- break;
- case KC_BEPIS:
- if (record->event.pressed) {
- SEND_STRING("BEPIS");
- } else {}
- break;
- }
- }
- return true;
- }
- #ifdef KEYBOARD_crkbd_rev1
- #ifdef OLED_ENABLE
- void render_logo(void) {
- static const char PROGMEM logo[] = {
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94,
- 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
- 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4,
- 0};
- oled_write_P(logo, false);
- }
- void render_status_main(void) {
- // Host Keyboard USB Status
- oled_write_P(PSTR("USB: "), false);
- switch (USB_DeviceState) {
- case DEVICE_STATE_Unattached:
- oled_write_P(PSTR("Unattached\n"), false);
- break;
- case DEVICE_STATE_Suspended:
- oled_write_P(PSTR("Suspended\n"), false);
- break;
- case DEVICE_STATE_Configured:
- oled_write_P(PSTR("Connected\n"), false);
- break;
- case DEVICE_STATE_Powered:
- oled_write_P(PSTR("Powered\n"), false);
- break;
- case DEVICE_STATE_Default:
- oled_write_P(PSTR("Default\n"), false);
- break;
- case DEVICE_STATE_Addressed:
- oled_write_P(PSTR("Addressed\n"), false);
- break;
- default:
- oled_write_P(PSTR("Invalid\n"), false);
- }
- // Host Keyboard Layer Status
- oled_write_P(PSTR("Layer: "), false);
- switch (get_highest_layer(layer_state)) {
- case _BASE:
- oled_write_P(PSTR("Colemak\n"), false);
- break;
- case _RAISE:
- oled_write_P(PSTR("Numbers\n"), false);
- break;
- case _LOWER:
- oled_write_P(PSTR("Symbols\n"), false);
- break;
- case _ADJUST:
- oled_write_P(PSTR("Adjust\n"), false);
- break;
- case _ARROW:
- oled_write_P(PSTR("Navigation\n"), false);
- break;
- case _FKEY:
- oled_write_P(PSTR("Function\n"), false);
- break;
- default:
- // Or use the write_ln shortcut over adding '\n' to the end of your string
- oled_write_ln_P(PSTR("Undefined"), false);
- }
- // Host Keyboard LED Status
- oled_write_ln_P(IS_HOST_LED_ON(USB_LED_CAPS_LOCK) ? PSTR("Caps Lock\n") : PSTR(" \n"), false);
- }
- __attribute__ ((weak))
- void oled_task_keymap(void) {}
- bool oled_task_user(void) {
- if (timer_elapsed(oled_timer) > 20000) {
- oled_off();
- return;
- }
- if (is_master) {
- render_status_main(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
- } else {
- render_logo();
- oled_scroll_left();
- }
- oled_task_keymap();
- return false;
- }
- #endif // OLED_Driver
- #endif // crkbd
|