diff options
| author | Luis Godinez <beantek@gmail.com> | 2021-08-12 08:51:56 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-08-12 08:51:56 -0700 |
| commit | a2d5468df331fec6d76a9c5fd4253ec788507bb1 (patch) | |
| tree | c60ae6358ae618c82e0bfd2afc81a4d2ef09f8e5 | |
| parent | 541e749aa894c526217b68314df1621f812411b6 (diff) | |
| download | qmk_firmware-a2d5468df331fec6d76a9c5fd4253ec788507bb1.tar.gz qmk_firmware-a2d5468df331fec6d76a9c5fd4253ec788507bb1.zip | |
[Keyboard] Add Launch Pad keymaps (#12490)
Co-authored-by: Ryan <fauxpark@gmail.com>
| -rw-r--r-- | keyboards/ungodly/launch_pad/config.h | 68 | ||||
| -rw-r--r-- | keyboards/ungodly/launch_pad/info.json | 60 | ||||
| -rw-r--r-- | keyboards/ungodly/launch_pad/keymaps/default/keymap.c | 397 | ||||
| -rw-r--r-- | keyboards/ungodly/launch_pad/keymaps/via/keymap.c | 293 | ||||
| -rw-r--r-- | keyboards/ungodly/launch_pad/keymaps/via/rules.mk | 1 | ||||
| -rw-r--r-- | keyboards/ungodly/launch_pad/keymaps/warzone/keymap.c | 269 | ||||
| -rw-r--r-- | keyboards/ungodly/launch_pad/keymaps/warzone/rules.mk | 2 | ||||
| -rw-r--r-- | keyboards/ungodly/launch_pad/launch_pad.c | 17 | ||||
| -rw-r--r-- | keyboards/ungodly/launch_pad/readme.md | 62 |
9 files changed, 923 insertions, 246 deletions
diff --git a/keyboards/ungodly/launch_pad/config.h b/keyboards/ungodly/launch_pad/config.h index c4da09760..7cad816e3 100644 --- a/keyboards/ungodly/launch_pad/config.h +++ b/keyboards/ungodly/launch_pad/config.h | |||
| @@ -42,6 +42,7 @@ | |||
| 42 | 42 | ||
| 43 | /* Midi Slider */ | 43 | /* Midi Slider */ |
| 44 | #define SLIDER_PIN F6 | 44 | #define SLIDER_PIN F6 |
| 45 | #define MIDI_ADVANCED | ||
| 45 | 46 | ||
| 46 | /* RGB Matrix configuration */ | 47 | /* RGB Matrix configuration */ |
| 47 | #ifdef RGB_MATRIX_ENABLE | 48 | #ifdef RGB_MATRIX_ENABLE |
| @@ -49,24 +50,63 @@ | |||
| 49 | #endif | 50 | #endif |
| 50 | 51 | ||
| 51 | #define RGB_DI_PIN F7 | 52 | #define RGB_DI_PIN F7 |
| 52 | #ifdef RGB_DI_PIN | 53 | #ifdef RGB_MATRIX_ENABLE |
| 53 | # define RGBLED_NUM 22 | 54 | # define RGBLED_NUM 22 |
| 54 | # define RGBLIGHT_HUE_STEP 8 | 55 | # define DRIVER_LED_TOTAL RGBLED_NUM |
| 55 | # define RGBLIGHT_SAT_STEP 8 | 56 | # define RGB_MATRIX_KEYPRESSES // reacts to keypresses |
| 56 | # define RGBLIGHT_VAL_STEP 8 | 57 | // # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses) |
| 57 | # define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ | 58 | // # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects |
| 58 | # define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ | 59 | # define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended |
| 59 | /*== all animations enable ==*/ | 60 | # define RGB_MATRIX_FRAMEBUFFER_EFFECTS |
| 60 | # define RGBLIGHT_ANIMATIONS | 61 | // # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness) |
| 61 | // RGB Matrix | 62 | // # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness) |
| 62 | # ifdef RGB_MATRIX_ENABLE | 63 | # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 50 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash. |
| 63 | # define DRIVER_LED_TOTAL RGBLED_NUM | 64 | # define RGB_MATRIX_HUE_STEP 8 |
| 64 | # endif | 65 | # define RGB_MATRIX_SAT_STEP 8 |
| 66 | # define RGB_MATRIX_VAL_STEP 8 | ||
| 67 | # define RGB_MATRIX_SPD_STEP 10 | ||
| 68 | # define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_PINWHEEL // default mode | ||
| 69 | |||
| 70 | /* Reduce the firmware size by only enabling the rgb animations you desire. */ | ||
| 71 | # define DISABLE_RGB_MATRIX_ALPHAS_MODS | ||
| 72 | # define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN | ||
| 73 | # define DISABLE_RGB_MATRIX_BREATHING | ||
| 74 | # define DISABLE_RGB_MATRIX_BAND_SAT | ||
| 75 | # define DISABLE_RGB_MATRIX_BAND_VAL | ||
| 76 | # define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT | ||
| 77 | # define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL | ||
| 78 | # define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT | ||
| 79 | # define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL | ||
| 80 | # define DISABLE_RGB_MATRIX_CYCLE_ALL | ||
| 81 | # define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT | ||
| 82 | # define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN | ||
| 83 | # define DISABLE_RGB_MATRIX_CYCLE_OUT_IN | ||
| 84 | # define DISABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL | ||
| 85 | # define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON | ||
| 86 | # define DISABLE_RGB_MATRIX_DUAL_BEACON | ||
| 87 | // # define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL | ||
| 88 | # define DISABLE_RGB_MATRIX_CYCLE_SPIRAL | ||
| 89 | # define DISABLE_RGB_MATRIX_RAINBOW_BEACON | ||
| 90 | # define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS | ||
| 91 | # define DISABLE_RGB_MATRIX_RAINDROPS | ||
| 92 | # define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS | ||
| 93 | # define DISABLE_RGB_MATRIX_TYPING_HEATMAP | ||
| 94 | # define DISABLE_RGB_MATRIX_DIGITAL_RAIN | ||
| 95 | # define DISABLE_RGB_MATRIX_SOLID_REACTIVE | ||
| 96 | # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE | ||
| 97 | # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE | ||
| 98 | # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE | ||
| 99 | # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS | ||
| 100 | # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS | ||
| 101 | # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS | ||
| 102 | # define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS | ||
| 103 | # define DISABLE_RGB_MATRIX_SPLASH | ||
| 104 | # define DISABLE_RGB_MATRIX_MULTISPLASH | ||
| 105 | # define DISABLE_RGB_MATRIX_SOLID_SPLASH | ||
| 106 | # define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH | ||
| 65 | #endif | 107 | #endif |
| 66 | 108 | ||
| 67 | /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ | 109 | /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ |
| 68 | #define DEBOUNCE 5 | 110 | #define DEBOUNCE 5 |
| 69 | 111 | ||
| 70 | #define LOCKING_RESYNC_ENABLE | 112 | #define LOCKING_RESYNC_ENABLE |
| 71 | |||
| 72 | #define MIDI_ADVANCED | ||
diff --git a/keyboards/ungodly/launch_pad/info.json b/keyboards/ungodly/launch_pad/info.json index b766c0721..bcf9ba8a8 100644 --- a/keyboards/ungodly/launch_pad/info.json +++ b/keyboards/ungodly/launch_pad/info.json | |||
| @@ -1,37 +1,37 @@ | |||
| 1 | { | 1 | { |
| 2 | "keyboard_name": "Launch Pad", | 2 | "keyboard_name": "Launch Pad", |
| 3 | "url": "", | 3 | "url": "https://ungodly.design/products/launch-pad", |
| 4 | "maintainer": "luis-godinez", | 4 | "maintainer": "Ungodly Design", |
| 5 | "width": 4, | 5 | "width": 4, |
| 6 | "height": 5, | 6 | "height": 5, |
| 7 | "layouts": { | 7 | "layouts": { |
| 8 | "LAYOUT_ortho_5x4": { | 8 | "LAYOUT_ortho_5x4": { |
| 9 | "layout": [ | 9 | "layout": [ |
| 10 | {"x":0, "y":0}, | 10 | {"x":0, "y":0}, |
| 11 | {"x":1, "y":0}, | 11 | {"x":1, "y":0}, |
| 12 | {"x":2, "y":0}, | 12 | {"x":2, "y":0}, |
| 13 | {"x":3, "y":0}, | 13 | {"x":3, "y":0}, |
| 14 | 14 | ||
| 15 | {"x":0, "y":1}, | 15 | {"x":0, "y":1}, |
| 16 | {"x":1, "y":1}, | 16 | {"x":1, "y":1}, |
| 17 | {"x":2, "y":1}, | 17 | {"x":2, "y":1}, |
| 18 | {"x":3, "y":1}, | 18 | {"x":3, "y":1}, |
| 19 | 19 | ||
| 20 | {"x":0, "y":2}, | 20 | {"x":0, "y":2}, |
| 21 | {"x":1, "y":2}, | 21 | {"x":1, "y":2}, |
| 22 | {"x":2, "y":2}, | 22 | {"x":2, "y":2}, |
| 23 | {"x":3, "y":2}, | 23 | {"x":3, "y":2}, |
| 24 | 24 | ||
| 25 | {"x":0, "y":3}, | 25 | {"x":0, "y":3}, |
| 26 | {"x":1, "y":3}, | 26 | {"x":1, "y":3}, |
| 27 | {"x":2, "y":3}, | 27 | {"x":2, "y":3}, |
| 28 | {"x":3, "y":3}, | 28 | {"x":3, "y":3}, |
| 29 | 29 | ||
| 30 | {"x":0, "y":4}, | 30 | {"x":0, "y":4}, |
| 31 | {"x":1, "y":4}, | 31 | {"x":1, "y":4}, |
| 32 | {"x":2, "y":4}, | 32 | {"x":2, "y":4}, |
| 33 | {"x":3, "y":4} | 33 | {"x":3, "y":4} |
| 34 | ] | 34 | ] |
| 35 | } | ||
| 36 | } | 35 | } |
| 36 | } | ||
| 37 | } | 37 | } |
diff --git a/keyboards/ungodly/launch_pad/keymaps/default/keymap.c b/keyboards/ungodly/launch_pad/keymaps/default/keymap.c index 880b225d4..a401be7e8 100644 --- a/keyboards/ungodly/launch_pad/keymaps/default/keymap.c +++ b/keyboards/ungodly/launch_pad/keymaps/default/keymap.c | |||
| @@ -17,242 +17,277 @@ | |||
| 17 | #include "analog.h" | 17 | #include "analog.h" |
| 18 | #include "qmk_midi.h" | 18 | #include "qmk_midi.h" |
| 19 | 19 | ||
| 20 | // Each layer gets a name for readability, which is then used in the keymap matrix below. | 20 | /* Force Numlock on */ |
| 21 | // The underscores don't mean anything - you can have a layer called STUFF or any other name. | 21 | void matrix_init_user (void) { |
| 22 | // Layer names don't all need to be of the same length, obviously, and you can also skip them | 22 | if (!host_keyboard_led_state().num_lock) { |
| 23 | // entirely and just use numbers. | 23 | tap_code(KC_NUMLOCK); |
| 24 | enum layers { | 24 | } |
| 25 | _BL = 0, | 25 | } |
| 26 | _NV, | 26 | |
| 27 | _FN | 27 | /* Custom Layer Up/Down Keystrokes */ |
| 28 | enum custom_keycodes { | ||
| 29 | KC_LUP = SAFE_RANGE, //cycle layers in up direction | ||
| 30 | KC_LDN //cycle layers in down direction | ||
| 28 | }; | 31 | }; |
| 32 | #define HIGHEST_LAYER 2 //replace X with your highest layer | ||
| 33 | static uint8_t current_layer = 0; | ||
| 34 | |||
| 35 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
| 36 | switch (keycode) { | ||
| 37 | case KC_LUP: | ||
| 38 | if(record->event.pressed) { | ||
| 39 | if (current_layer == HIGHEST_LAYER){ | ||
| 40 | current_layer=0; | ||
| 41 | } else { | ||
| 42 | current_layer++; | ||
| 43 | } | ||
| 44 | layer_clear(); | ||
| 45 | layer_on(current_layer); | ||
| 46 | } | ||
| 47 | return false; | ||
| 48 | case KC_LDN: | ||
| 49 | if(record->event.pressed) { | ||
| 50 | if (current_layer == 0){ | ||
| 51 | current_layer=HIGHEST_LAYER; | ||
| 52 | } else { | ||
| 53 | current_layer--; | ||
| 54 | } | ||
| 55 | layer_clear(); | ||
| 56 | layer_on(current_layer); | ||
| 57 | } | ||
| 58 | return false; | ||
| 59 | default: | ||
| 60 | return true; | ||
| 61 | } | ||
| 62 | } | ||
| 29 | 63 | ||
| 30 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | 64 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
| 31 | /* Keymap _BL: (Base Layer) Default Numpad Layer | 65 | /* Keymap _BL: (Base Layer) Default Numpad Layer |
| 32 | * ,-------------------. | 66 | * ,-------------------. |
| 33 | * | NV | / | * |BK/FN| | 67 | * |LAYR| / | * |BACK | |
| 34 | * |----|----|----|-----| | 68 | * |----|----|----|-----| |
| 35 | * | 7 | 8 | 9 | - | | 69 | * | 7 | 8 | 9 | - | |
| 36 | * |----|----|----|-----| | 70 | * |----|----|----|-----| |
| 37 | * | 4 | 5 | 6 | + | | 71 | * | 4 | 5 | 6 | + | |
| 38 | * |----|----|----|-----| | 72 | * |----|----|----|-----| |
| 39 | * | 1 | 2 | 3 | | | 73 | * | 1 | 2 | 3 | En | |
| 40 | * |----|----|----| En | | 74 | * |----|----|----|-----| |
| 41 | * | 0 | . | | | 75 | * | 0 | 0 | . | En | |
| 42 | * `--------------------' | 76 | * `--------------------' |
| 43 | */ | 77 | */ |
| 44 | [_BL] = LAYOUT_ortho_5x4( | 78 | [0] = LAYOUT_ortho_5x4( |
| 45 | TG(_NV), KC_PSLS, KC_PAST, LT(_FN, KC_BSPC), | 79 | KC_LUP, KC_PSLS, KC_PAST, LT(2, KC_BSPC), |
| 46 | KC_7, KC_8, KC_9, KC_PMNS, | 80 | KC_P7, KC_P8, KC_P9, KC_PMNS, |
| 47 | KC_4, KC_5, KC_6, KC_PPLS, | 81 | KC_P4, KC_P5, KC_P6, KC_PPLS, |
| 48 | KC_1, KC_2, KC_3, KC_PENT, | 82 | KC_P1, KC_P2, KC_P3, KC_PENT, |
| 49 | KC_0, KC_0, KC_DOT, KC_PENT | 83 | KC_P0, KC_P0, KC_PDOT, KC_PENT |
| 50 | ), | 84 | ), |
| 51 | 85 | ||
| 52 | /* Keymap _NV: Navigation layer | 86 | /* Keymap _NV: Navigation layer |
| 53 | * ,-------------------. | 87 | * ,-------------------. |
| 54 | * |INS |HOME|PGUP| | | 88 | * |LAYR| | |NUM | |
| 55 | * |----|----|----|----| | 89 | * |----|----|----|----| |
| 56 | * |DEL |END |PGDN| | | 90 | * |HOME| UP |PGUP| | |
| 57 | * |----|----|----|----| | 91 | * |----|----|----|----| |
| 58 | * | | UP | | | | 92 | * |LEFT| |RIGH| | |
| 59 | * |----|----|----|----| | 93 | * |----|----|----|----| |
| 60 | * |LEFT|DOWN|RIGH| | | 94 | * |END |DOWN|PGDN| En | |
| 61 | * |----|----|----| | | 95 | * |----|----|----|----| |
| 62 | * | | | | | 96 | * |INS |INS |DEL | En | |
| 63 | * `-------------------' | 97 | * `-------------------' |
| 64 | */ | 98 | */ |
| 65 | [_NV] = LAYOUT_ortho_5x4( | 99 | [1] = LAYOUT_ortho_5x4( |
| 66 | KC_INS, KC_HOME, KC_PGUP, TG(_NV), | 100 | KC_LUP, KC_NUMLOCK, XXXXXXX, XXXXXXX, |
| 67 | KC_DEL, KC_END, KC_PGDN, XXXXXXX, | 101 | KC_HOME, KC_UP, KC_PGUP, XXXXXXX, |
| 68 | XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, | 102 | KC_LEFT, XXXXXXX, KC_RGHT, XXXXXXX, |
| 69 | KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, | 103 | KC_END, KC_DOWN, KC_PGDN, KC_PENT, |
| 70 | XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX | 104 | KC_INS, KC_INS, KC_DEL, KC_PENT |
| 71 | ), | 105 | ), |
| 72 | 106 | ||
| 73 | /* Keymap _FN: RGB Function Layer | 107 | /* Keymap _FN: RGB Function Layer |
| 74 | * ,-------------------. | 108 | * ,-------------------. |
| 75 | * |RMOD|RGBP|RTOG| FN | | 109 | * |LAYR| | |RTOG| |
| 76 | * |----|----|----|----| | 110 | * |----|----|----|----| |
| 77 | * |HUD |HUI | | | | 111 | * |HUD |HUI | |RGBP| |
| 78 | * |----|----|----|----| | 112 | * |----|----|----|----| |
| 79 | * |SAD |SAI | | | | 113 | * |SAD |SAI | |RMOD| |
| 80 | * |----|----|----|----| | 114 | * |----|----|----|----| |
| 81 | * |VAD |VAS | | | | 115 | * |VAD |VAS | | | |
| 82 | * |----|----|----| | | 116 | * |----|----|----|----| |
| 83 | * |RST | | | | | 117 | * |RST |RST | | | |
| 84 | * `-------------------' | 118 | * `-------------------' |
| 85 | */ | 119 | */ |
| 86 | [_FN] = LAYOUT_ortho_5x4( | 120 | [2] = LAYOUT_ortho_5x4( |
| 87 | RGB_MOD, RGB_M_P, RGB_TOG, _______, | 121 | KC_LUP, XXXXXXX, XXXXXXX, RGB_TOG, |
| 88 | RGB_HUD, RGB_HUI, XXXXXXX, XXXXXXX, | 122 | RGB_HUD, RGB_HUI, XXXXXXX, RGB_M_P, |
| 89 | RGB_SAD, RGB_SAI, XXXXXXX, XXXXXXX, | 123 | RGB_SAD, RGB_SAI, XXXXXXX, RGB_MOD, |
| 90 | RGB_VAD, RGB_VAI, XXXXXXX, XXXXXXX, | 124 | RGB_VAD, RGB_VAI, XXXXXXX, XXXXXXX, |
| 91 | RESET, XXXXXXX, XXXXXXX, XXXXXXX | 125 | RESET, RESET, XXXXXXX, XXXXXXX |
| 92 | ), | 126 | ), |
| 93 | }; | 127 | }; |
| 94 | 128 | ||
| 129 | // (Optional) Rotary Encoder, Volume Control | ||
| 95 | bool encoder_update_user(uint8_t index, bool clockwise) { | 130 | bool encoder_update_user(uint8_t index, bool clockwise) { |
| 96 | if (clockwise) { | 131 | if (clockwise) { |
| 97 | tap_code(KC_VOLU); | 132 | tap_code(KC_VOLU); |
| 98 | } else { | 133 | } else { |
| 99 | tap_code(KC_VOLD); | 134 | tap_code(KC_VOLD); |
| 100 | } | 135 | } |
| 101 | return true; | 136 | return true; |
| 102 | } | 137 | } |
| 103 | 138 | ||
| 139 | // Potentiometer Slider, MIDI Control | ||
| 104 | uint8_t divisor = 0; | 140 | uint8_t divisor = 0; |
| 105 | 141 | void slider(void){ | |
| 106 | void slider(void) { | 142 | if (divisor++) { // only run the slider function 1/256 times it's called |
| 107 | if (divisor++) { // only run the slider function 1/256 times it's called | 143 | return; |
| 108 | return; | 144 | } |
| 109 | } | 145 | midi_send_cc(&midi_device, 2, 0x3E, 0x7F - (analogReadPin(SLIDER_PIN) >> 3)); |
| 110 | |||
| 111 | midi_send_cc(&midi_device, 2, 0x3E, 0x7F - (analogReadPin(SLIDER_PIN) >> 3)); | ||
| 112 | } | 146 | } |
| 113 | 147 | ||
| 114 | void matrix_scan_user(void) { | 148 | void matrix_scan_user(void) { |
| 115 | slider(); | 149 | slider(); |
| 116 | } | 150 | } |
| 117 | 151 | ||
| 118 | // 0.91" OLED, 128x32 resolution | 152 | // 0.91" OLED, 128x32 resolution |
| 119 | #ifdef OLED_DRIVER_ENABLE | 153 | #ifdef OLED_DRIVER_ENABLE |
| 120 | |||
| 121 | oled_rotation_t oled_init_user(oled_rotation_t rotation) { | 154 | oled_rotation_t oled_init_user(oled_rotation_t rotation) { |
| 122 | return OLED_ROTATION_180; // flips the display 270 degrees | 155 | return OLED_ROTATION_180; |
| 123 | } | 156 | } |
| 124 | 157 | ||
| 125 | #define ANIM_SIZE 636 // number of bytes in array, minimize for adequate firmware size, max is 1024 | 158 | static void render_rocket_logo(void) { |
| 126 | 159 | static const char PROGMEM rocket_logo[]={ | |
| 127 | layer_state_t layer_state_set_user(layer_state_t state) { | 160 | // Rocket Screen |
| 128 | 161 | // 'home', 128x32px | |
| 129 | static const char PROGMEM gui_layers[][ANIM_SIZE] = { | 162 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 130 | { | 163 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 131 | // Home Screen | 164 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 132 | // 'layer_bl', 128x32px | 165 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 133 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 166 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 134 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 167 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 135 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 168 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, |
| 136 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 169 | 0x80, 0x80, 0xc0, 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 137 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 170 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x20, 0x50, 0x50, 0x90, |
| 138 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 171 | 0x10, 0x10, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, |
| 139 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, | 172 | 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x10, 0x10, 0xf0, 0x10, 0x10, 0x08, 0x08, 0x08, 0x04, 0x04, |
| 140 | 0x80, 0x80, 0xc0, 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 173 | 0x04, 0xfc, 0xfc, 0xfc, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0xfc, 0x7c, 0x7e, 0x7e, 0x7f, |
| 141 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x20, 0x50, 0x50, 0x90, | 174 | 0x81, 0x81, 0x81, 0x81, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, |
| 142 | 0x10, 0x10, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, | 175 | 0xff, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0x01, 0x01, 0x01, 0xf9, 0x01, 0xf9, 0x01, |
| 143 | 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x10, 0x10, 0xf0, 0x10, 0x10, 0x08, 0x08, 0x08, 0x04, 0x04, | 176 | 0xf9, 0x01, 0xf9, 0x01, 0x01, 0x01, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe6, |
| 144 | 0x04, 0xfc, 0xfc, 0xfc, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0xfc, 0x7c, 0x7e, 0x7e, 0x7f, | 177 | 0xe6, 0xe6, 0xe6, 0xe6, 0xff, 0x8c, 0x52, 0x52, 0x52, 0xde, 0x84, 0x08, 0x84, 0x08, 0x00, 0x00, |
| 145 | 0x81, 0x81, 0x81, 0x81, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, | 178 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, |
| 146 | 0xff, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0x01, 0x01, 0x01, 0xf9, 0x01, 0xf9, 0x01, | 179 | 0x05, 0x05, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 147 | 0xf9, 0x01, 0xf9, 0x01, 0x01, 0x01, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe6, | 180 | 0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0x04, 0x04, 0x07, 0x04, 0x04, 0x08, 0x08, 0x08, 0x10, 0x10, |
| 148 | 0xe6, 0xe6, 0xe6, 0xe6, 0xff, 0x8c, 0x52, 0x52, 0x52, 0xde, 0x84, 0x08, 0x84, 0x08, 0x00, 0x00, | 181 | 0x10, 0x1f, 0x1f, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1f, 0x10, 0x20, 0x20, 0x40, |
| 149 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, | 182 | 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x7f, |
| 150 | 0x05, 0x05, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 183 | 0x7f, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x40, 0x40, 0x40, 0x4a, 0x44, 0x4a, 0x40, |
| 151 | 0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0x04, 0x04, 0x07, 0x04, 0x04, 0x08, 0x08, 0x08, 0x10, 0x10, | 184 | 0x4f, 0x40, 0x4f, 0x40, 0x40, 0x40, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x9c, |
| 152 | 0x10, 0x1f, 0x1f, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1f, 0x10, 0x20, 0x20, 0x40, | 185 | 0x9c, 0x9c, 0x9c, 0x1c, 0xff, 0x31, 0x4a, 0x4a, 0x4a, 0x7b, 0x10, 0x21, 0x10, 0x21, 0x00, 0x00, |
| 153 | 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x7f, | 186 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 154 | 0x7f, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x40, 0x40, 0x40, 0x4a, 0x44, 0x4a, 0x40, | 187 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 155 | 0x4f, 0x40, 0x4f, 0x40, 0x40, 0x40, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x9c, | 188 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 156 | 0x9c, 0x9c, 0x9c, 0x1c, 0xff, 0x31, 0x4a, 0x4a, 0x4a, 0x7b, 0x10, 0x21, 0x10, 0x21, 0x00, 0x00, | 189 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 157 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 190 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 158 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 191 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 159 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 192 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 160 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 193 | 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 |
| 161 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 194 | }; |
| 162 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 195 | oled_write_raw_P(rocket_logo, sizeof(rocket_logo)); |
| 163 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 196 | } |
| 164 | 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 | 197 | static void render_nav_logo(void) { |
| 165 | }, | 198 | static const char PROGMEM nav_logo[]={ |
| 166 | { | 199 | // Navigation Screen |
| 167 | // Navigation Screen | 200 | // 'navigation', 128x32px |
| 168 | // 'layer_nav', 128x32px | 201 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 169 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 202 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 170 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 203 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 171 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 204 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 172 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 205 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 173 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 206 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 174 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 207 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x40, |
| 175 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x40, | 208 | 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 176 | 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 209 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x20, 0x50, 0x50, 0x90, |
| 177 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x20, 0x50, 0x50, 0x90, | 210 | 0x10, 0x10, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 178 | 0x10, 0x10, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 211 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0xc8, 0x28, 0x28, 0x28, 0xc8, 0x10, |
| 179 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0xc8, 0x28, 0x28, 0x28, 0xc8, 0x10, | 212 | 0xb0, 0x10, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, |
| 180 | 0xb0, 0x10, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, | 213 | 0x20, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0xa1, 0x09, 0xe1, |
| 181 | 0x20, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0xa1, 0x09, 0xe1, | 214 | 0xf3, 0x29, 0x05, 0x85, 0xe5, 0xe5, 0xc5, 0x89, 0x92, 0xe4, 0x08, 0xf0, 0x00, 0x00, 0x00, 0x00, |
| 182 | 0xf3, 0x29, 0x05, 0x85, 0xe5, 0xe5, 0xc5, 0x89, 0x92, 0xe4, 0x08, 0xf0, 0x00, 0x00, 0x00, 0x00, | 215 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x44, |
| 183 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x44, | 216 | 0x44, 0x22, 0xe2, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 184 | 0x44, 0x22, 0xe2, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 217 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, |
| 185 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, | 218 | 0x05, 0x05, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 186 | 0x05, 0x05, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 219 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x09, 0x0b, 0x0b, 0x0b, 0x09, 0x04, |
| 187 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x09, 0x0b, 0x0b, 0x0b, 0x09, 0x04, | 220 | 0x06, 0x04, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x02, |
| 188 | 0x06, 0x04, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x02, | 221 | 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x42, 0x48, 0x43, |
| 189 | 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x42, 0x48, 0x43, | 222 | 0x66, 0x4e, 0x53, 0x51, 0x51, 0x53, 0x53, 0x49, 0x24, 0x13, 0x08, 0x07, 0x00, 0x00, 0x00, 0x00, |
| 190 | 0x66, 0x4e, 0x53, 0x51, 0x51, 0x53, 0x53, 0x49, 0x24, 0x13, 0x08, 0x07, 0x00, 0x00, 0x00, 0x00, | 223 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x91, |
| 191 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x91, | 224 | 0x91, 0x52, 0x53, 0x34, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 192 | 0x91, 0x52, 0x53, 0x34, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 225 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 193 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 226 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 194 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 227 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 195 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 228 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 196 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 229 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 197 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 230 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 198 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 231 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x02, |
| 199 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x02, | 232 | 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 |
| 200 | 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 | 233 | }; |
| 201 | }, | 234 | oled_write_raw_P(nav_logo, sizeof(nav_logo)); |
| 202 | { | 235 | } |
| 203 | // RGB Screen | 236 | static void render_light_logo(void) { |
| 204 | // 'layer_rgb', 128x32px | 237 | static const char PROGMEM light_logo[]={ |
| 205 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 238 | // RGB Screen |
| 206 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 239 | // 'rgb', 128x32px |
| 207 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 240 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 208 | 0x00, 0x00, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x9c, 0x80, 0x80, | 241 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 209 | 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 242 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 210 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 243 | 0x00, 0x00, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x9c, 0x80, 0x80, |
| 211 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, | 244 | 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 212 | 0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 245 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 213 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x20, 0x50, 0x50, 0x90, | 246 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, |
| 214 | 0x10, 0x10, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 247 | 0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 215 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 248 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x20, 0x50, 0x50, 0x90, |
| 216 | 0x80, 0x80, 0x80, 0x00, 0x00, 0xe0, 0x19, 0x04, 0x62, 0x11, 0x09, 0x04, 0x04, 0x00, 0x00, 0x00, | 249 | 0x10, 0x10, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 217 | 0x00, 0x01, 0x01, 0x02, 0x04, 0x19, 0x10, 0x10, 0xf0, 0x00, 0x00, 0xf0, 0x00, 0xf0, 0xe0, 0xc0, | 250 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 218 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 251 | 0x80, 0x80, 0x80, 0x00, 0x00, 0xe0, 0x19, 0x04, 0x62, 0x11, 0x09, 0x04, 0x04, 0x00, 0x00, 0x00, |
| 219 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0x24, 0x04, | 252 | 0x00, 0x01, 0x01, 0x02, 0x04, 0x19, 0x10, 0x10, 0xf0, 0x00, 0x00, 0xf0, 0x00, 0xf0, 0xe0, 0xc0, |
| 220 | 0x07, 0xe4, 0x24, 0x24, 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 253 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 221 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, | 254 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0x24, 0x04, |
| 222 | 0x05, 0x05, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 255 | 0x07, 0xe4, 0x24, 0x24, 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 223 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 256 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, |
| 224 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x88, 0x30, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, | 257 | 0x05, 0x05, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 225 | 0x80, 0x80, 0x40, 0x60, 0x30, 0x98, 0x08, 0x08, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, 0x07, 0x03, | 258 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 226 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 259 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x88, 0x30, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, |
| 227 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0x22, 0x24, | 260 | 0x80, 0x80, 0x40, 0x60, 0x30, 0x98, 0x08, 0x08, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, 0x07, 0x03, |
| 228 | 0x24, 0xc4, 0x44, 0x22, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 261 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 229 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 262 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0x22, 0x24, |
| 230 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 263 | 0x24, 0xc4, 0x44, 0x22, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 231 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 264 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 232 | 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1d, 0x01, 0x01, | 265 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 233 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 266 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 234 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | 267 | 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1d, 0x01, 0x01, |
| 235 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x02, 0x02, | 268 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 236 | 0x02, 0x03, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 | 269 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 237 | } | 270 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x02, 0x02, |
| 238 | }; | 271 | 0x02, 0x03, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 |
| 272 | }; | ||
| 273 | oled_write_raw_P(light_logo, sizeof(light_logo)); | ||
| 274 | } | ||
| 239 | 275 | ||
| 240 | switch (get_highest_layer(state)) { | 276 | void oled_task_user(void) { |
| 241 | case _BL: | 277 | switch (get_highest_layer(layer_state)) { |
| 242 | oled_write_raw_P(gui_layers[0], sizeof(gui_layers[0]) ); | 278 | case 0: |
| 279 | render_rocket_logo(); | ||
| 243 | break; | 280 | break; |
| 244 | case _NV: | 281 | case 1: |
| 245 | oled_write_raw_P(gui_layers[1], sizeof(gui_layers[1]) ); | 282 | render_nav_logo(); |
| 246 | break; | 283 | break; |
| 247 | case _FN: | 284 | case 2: |
| 248 | oled_write_raw_P(gui_layers[2], sizeof(gui_layers[2]) ); | 285 | render_light_logo(); |
| 249 | break; | 286 | break; |
| 250 | default: | 287 | default: |
| 251 | // Or use the write_ln shortcut over adding '\n' to the end of your string | 288 | // Or use the write_ln shortcut over adding '\n' to the end of your string |
| 252 | oled_write_ln_P(PSTR(" UND"), false); | 289 | oled_write_ln_P(PSTR(" UND"), false); |
| 253 | break; | 290 | break; |
| 254 | } | 291 | } |
| 255 | return state; | ||
| 256 | } | 292 | } |
| 257 | |||
| 258 | #endif | 293 | #endif |
diff --git a/keyboards/ungodly/launch_pad/keymaps/via/keymap.c b/keyboards/ungodly/launch_pad/keymaps/via/keymap.c new file mode 100644 index 000000000..a401be7e8 --- /dev/null +++ b/keyboards/ungodly/launch_pad/keymaps/via/keymap.c | |||
| @@ -0,0 +1,293 @@ | |||
| 1 | /* Copyright 2020 Ungodly Design <hello@ungodly.design> | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #include QMK_KEYBOARD_H | ||
| 17 | #include "analog.h" | ||
| 18 | #include "qmk_midi.h" | ||
| 19 | |||
| 20 | /* Force Numlock on */ | ||
| 21 | void matrix_init_user (void) { | ||
| 22 | if (!host_keyboard_led_state().num_lock) { | ||
| 23 | tap_code(KC_NUMLOCK); | ||
| 24 | } | ||
| 25 | } | ||
| 26 | |||
| 27 | /* Custom Layer Up/Down Keystrokes */ | ||
| 28 | enum custom_keycodes { | ||
| 29 | KC_LUP = SAFE_RANGE, //cycle layers in up direction | ||
| 30 | KC_LDN //cycle layers in down direction | ||
| 31 | }; | ||
| 32 | #define HIGHEST_LAYER 2 //replace X with your highest layer | ||
| 33 | static uint8_t current_layer = 0; | ||
| 34 | |||
| 35 | bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
| 36 | switch (keycode) { | ||
| 37 | case KC_LUP: | ||
| 38 | if(record->event.pressed) { | ||
| 39 | if (current_layer == HIGHEST_LAYER){ | ||
| 40 | current_layer=0; | ||
| 41 | } else { | ||
| 42 | current_layer++; | ||
| 43 | } | ||
| 44 | layer_clear(); | ||
| 45 | layer_on(current_layer); | ||
| 46 | } | ||
| 47 | return false; | ||
| 48 | case KC_LDN: | ||
| 49 | if(record->event.pressed) { | ||
| 50 | if (current_layer == 0){ | ||
| 51 | current_layer=HIGHEST_LAYER; | ||
| 52 | } else { | ||
| 53 | current_layer--; | ||
| 54 | } | ||
| 55 | layer_clear(); | ||
| 56 | layer_on(current_layer); | ||
| 57 | } | ||
| 58 | return false; | ||
| 59 | default: | ||
| 60 | return true; | ||
| 61 | } | ||
| 62 | } | ||
| 63 | |||
| 64 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 65 | /* Keymap _BL: (Base Layer) Default Numpad Layer | ||
| 66 | * ,-------------------. | ||
| 67 | * |LAYR| / | * |BACK | | ||
| 68 | * |----|----|----|-----| | ||
| 69 | * | 7 | 8 | 9 | - | | ||
| 70 | * |----|----|----|-----| | ||
| 71 | * | 4 | 5 | 6 | + | | ||
| 72 | * |----|----|----|-----| | ||
| 73 | * | 1 | 2 | 3 | En | | ||
| 74 | * |----|----|----|-----| | ||
| 75 | * | 0 | 0 | . | En | | ||
| 76 | * `--------------------' | ||
| 77 | */ | ||
| 78 | [0] = LAYOUT_ortho_5x4( | ||
| 79 | KC_LUP, KC_PSLS, KC_PAST, LT(2, KC_BSPC), | ||
| 80 | KC_P7, KC_P8, KC_P9, KC_PMNS, | ||
| 81 | KC_P4, KC_P5, KC_P6, KC_PPLS, | ||
| 82 | KC_P1, KC_P2, KC_P3, KC_PENT, | ||
| 83 | KC_P0, KC_P0, KC_PDOT, KC_PENT | ||
| 84 | ), | ||
| 85 | |||
| 86 | /* Keymap _NV: Navigation layer | ||
| 87 | * ,-------------------. | ||
| 88 | * |LAYR| | |NUM | | ||
| 89 | * |----|----|----|----| | ||
| 90 | * |HOME| UP |PGUP| | | ||
| 91 | * |----|----|----|----| | ||
| 92 | * |LEFT| |RIGH| | | ||
| 93 | * |----|----|----|----| | ||
| 94 | * |END |DOWN|PGDN| En | | ||
| 95 | * |----|----|----|----| | ||
| 96 | * |INS |INS |DEL | En | | ||
| 97 | * `-------------------' | ||
| 98 | */ | ||
| 99 | [1] = LAYOUT_ortho_5x4( | ||
| 100 | KC_LUP, KC_NUMLOCK, XXXXXXX, XXXXXXX, | ||
| 101 | KC_HOME, KC_UP, KC_PGUP, XXXXXXX, | ||
| 102 | KC_LEFT, XXXXXXX, KC_RGHT, XXXXXXX, | ||
| 103 | KC_END, KC_DOWN, KC_PGDN, KC_PENT, | ||
| 104 | KC_INS, KC_INS, KC_DEL, KC_PENT | ||
| 105 | ), | ||
| 106 | |||
| 107 | /* Keymap _FN: RGB Function Layer | ||
| 108 | * ,-------------------. | ||
| 109 | * |LAYR| | |RTOG| | ||
| 110 | * |----|----|----|----| | ||
| 111 | * |HUD |HUI | |RGBP| | ||
| 112 | * |----|----|----|----| | ||
| 113 | * |SAD |SAI | |RMOD| | ||
| 114 | * |----|----|----|----| | ||
| 115 | * |VAD |VAS | | | | ||
| 116 | * |----|----|----|----| | ||
| 117 | * |RST |RST | | | | ||
| 118 | * `-------------------' | ||
| 119 | */ | ||
| 120 | [2] = LAYOUT_ortho_5x4( | ||
| 121 | KC_LUP, XXXXXXX, XXXXXXX, RGB_TOG, | ||
| 122 | RGB_HUD, RGB_HUI, XXXXXXX, RGB_M_P, | ||
| 123 | RGB_SAD, RGB_SAI, XXXXXXX, RGB_MOD, | ||
| 124 | RGB_VAD, RGB_VAI, XXXXXXX, XXXXXXX, | ||
| 125 | RESET, RESET, XXXXXXX, XXXXXXX | ||
| 126 | ), | ||
| 127 | }; | ||
| 128 | |||
| 129 | // (Optional) Rotary Encoder, Volume Control | ||
| 130 | bool encoder_update_user(uint8_t index, bool clockwise) { | ||
| 131 | if (clockwise) { | ||
| 132 | tap_code(KC_VOLU); | ||
| 133 | } else { | ||
| 134 | tap_code(KC_VOLD); | ||
| 135 | } | ||
| 136 | return true; | ||
| 137 | } | ||
| 138 | |||
| 139 | // Potentiometer Slider, MIDI Control | ||
| 140 | uint8_t divisor = 0; | ||
| 141 | void slider(void){ | ||
| 142 | if (divisor++) { // only run the slider function 1/256 times it's called | ||
| 143 | return; | ||
| 144 | } | ||
| 145 | midi_send_cc(&midi_device, 2, 0x3E, 0x7F - (analogReadPin(SLIDER_PIN) >> 3)); | ||
| 146 | } | ||
| 147 | |||
| 148 | void matrix_scan_user(void) { | ||
| 149 | slider(); | ||
| 150 | } | ||
| 151 | |||
| 152 | // 0.91" OLED, 128x32 resolution | ||
| 153 | #ifdef OLED_DRIVER_ENABLE | ||
| 154 | oled_rotation_t oled_init_user(oled_rotation_t rotation) { | ||
| 155 | return OLED_ROTATION_180; | ||
| 156 | } | ||
| 157 | |||
| 158 | static void render_rocket_logo(void) { | ||
| 159 | static const char PROGMEM rocket_logo[]={ | ||
| 160 | // Rocket Screen | ||
| 161 | // 'home', 128x32px | ||
| 162 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 163 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 164 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 165 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 166 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 167 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 168 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, | ||
| 169 | 0x80, 0x80, 0xc0, 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 170 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x20, 0x50, 0x50, 0x90, | ||
| 171 | 0x10, 0x10, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, | ||
| 172 | 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x10, 0x10, 0xf0, 0x10, 0x10, 0x08, 0x08, 0x08, 0x04, 0x04, | ||
| 173 | 0x04, 0xfc, 0xfc, 0xfc, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0xfc, 0x7c, 0x7e, 0x7e, 0x7f, | ||
| 174 | 0x81, 0x81, 0x81, 0x81, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, | ||
| 175 | 0xff, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0x01, 0x01, 0x01, 0xf9, 0x01, 0xf9, 0x01, | ||
| 176 | 0xf9, 0x01, 0xf9, 0x01, 0x01, 0x01, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe6, | ||
| 177 | 0xe6, 0xe6, 0xe6, 0xe6, 0xff, 0x8c, 0x52, 0x52, 0x52, 0xde, 0x84, 0x08, 0x84, 0x08, 0x00, 0x00, | ||
| 178 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, | ||
| 179 | 0x05, 0x05, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 180 | 0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0x04, 0x04, 0x07, 0x04, 0x04, 0x08, 0x08, 0x08, 0x10, 0x10, | ||
| 181 | 0x10, 0x1f, 0x1f, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1f, 0x10, 0x20, 0x20, 0x40, | ||
| 182 | 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x7f, | ||
| 183 | 0x7f, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x40, 0x40, 0x40, 0x4a, 0x44, 0x4a, 0x40, | ||
| 184 | 0x4f, 0x40, 0x4f, 0x40, 0x40, 0x40, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x9c, | ||
| 185 | 0x9c, 0x9c, 0x9c, 0x1c, 0xff, 0x31, 0x4a, 0x4a, 0x4a, 0x7b, 0x10, 0x21, 0x10, 0x21, 0x00, 0x00, | ||
| 186 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 187 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 188 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 189 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 190 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 191 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 192 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 193 | 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 | ||
| 194 | }; | ||
| 195 | oled_write_raw_P(rocket_logo, sizeof(rocket_logo)); | ||
| 196 | } | ||
| 197 | static void render_nav_logo(void) { | ||
| 198 | static const char PROGMEM nav_logo[]={ | ||
| 199 | // Navigation Screen | ||
| 200 | // 'navigation', 128x32px | ||
| 201 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 202 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 203 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 204 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 205 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 206 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 207 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x40, | ||
| 208 | 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 209 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x20, 0x50, 0x50, 0x90, | ||
| 210 | 0x10, 0x10, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 211 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0xc8, 0x28, 0x28, 0x28, 0xc8, 0x10, | ||
| 212 | 0xb0, 0x10, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x80, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, | ||
| 213 | 0x20, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0xa1, 0x09, 0xe1, | ||
| 214 | 0xf3, 0x29, 0x05, 0x85, 0xe5, 0xe5, 0xc5, 0x89, 0x92, 0xe4, 0x08, 0xf0, 0x00, 0x00, 0x00, 0x00, | ||
| 215 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x88, 0x44, | ||
| 216 | 0x44, 0x22, 0xe2, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 217 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, | ||
| 218 | 0x05, 0x05, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 219 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x09, 0x0b, 0x0b, 0x0b, 0x09, 0x04, | ||
| 220 | 0x06, 0x04, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x02, | ||
| 221 | 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x10, 0x10, 0x10, 0x20, 0x20, 0x20, 0x42, 0x48, 0x43, | ||
| 222 | 0x66, 0x4e, 0x53, 0x51, 0x51, 0x53, 0x53, 0x49, 0x24, 0x13, 0x08, 0x07, 0x00, 0x00, 0x00, 0x00, | ||
| 223 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x91, | ||
| 224 | 0x91, 0x52, 0x53, 0x34, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 225 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 226 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 227 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 228 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 229 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 230 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 231 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x02, | ||
| 232 | 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 | ||
| 233 | }; | ||
| 234 | oled_write_raw_P(nav_logo, sizeof(nav_logo)); | ||
| 235 | } | ||
| 236 | static void render_light_logo(void) { | ||
| 237 | static const char PROGMEM light_logo[]={ | ||
| 238 | // RGB Screen | ||
| 239 | // 'rgb', 128x32px | ||
| 240 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 241 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 242 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 243 | 0x00, 0x00, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x9c, 0x80, 0x80, | ||
| 244 | 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 245 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 246 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, | ||
| 247 | 0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 248 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x20, 0x50, 0x50, 0x90, | ||
| 249 | 0x10, 0x10, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 250 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 251 | 0x80, 0x80, 0x80, 0x00, 0x00, 0xe0, 0x19, 0x04, 0x62, 0x11, 0x09, 0x04, 0x04, 0x00, 0x00, 0x00, | ||
| 252 | 0x00, 0x01, 0x01, 0x02, 0x04, 0x19, 0x10, 0x10, 0xf0, 0x00, 0x00, 0xf0, 0x00, 0xf0, 0xe0, 0xc0, | ||
| 253 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 254 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0x24, 0x04, | ||
| 255 | 0x07, 0xe4, 0x24, 0x24, 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 256 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, | ||
| 257 | 0x05, 0x05, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 258 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 259 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x88, 0x30, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, | ||
| 260 | 0x80, 0x80, 0x40, 0x60, 0x30, 0x98, 0x08, 0x08, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, 0x07, 0x03, | ||
| 261 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 262 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0x22, 0x24, | ||
| 263 | 0x24, 0xc4, 0x44, 0x22, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 264 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 265 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 266 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 267 | 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1d, 0x01, 0x01, | ||
| 268 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 269 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 270 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x02, 0x02, | ||
| 271 | 0x02, 0x03, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 | ||
| 272 | }; | ||
| 273 | oled_write_raw_P(light_logo, sizeof(light_logo)); | ||
| 274 | } | ||
| 275 | |||
| 276 | void oled_task_user(void) { | ||
| 277 | switch (get_highest_layer(layer_state)) { | ||
| 278 | case 0: | ||
| 279 | render_rocket_logo(); | ||
| 280 | break; | ||
| 281 | case 1: | ||
| 282 | render_nav_logo(); | ||
| 283 | break; | ||
| 284 | case 2: | ||
| 285 | render_light_logo(); | ||
| 286 | break; | ||
| 287 | default: | ||
| 288 | // Or use the write_ln shortcut over adding '\n' to the end of your string | ||
| 289 | oled_write_ln_P(PSTR(" UND"), false); | ||
| 290 | break; | ||
| 291 | } | ||
| 292 | } | ||
| 293 | #endif | ||
diff --git a/keyboards/ungodly/launch_pad/keymaps/via/rules.mk b/keyboards/ungodly/launch_pad/keymaps/via/rules.mk new file mode 100644 index 000000000..1e5b99807 --- /dev/null +++ b/keyboards/ungodly/launch_pad/keymaps/via/rules.mk | |||
| @@ -0,0 +1 @@ | |||
| VIA_ENABLE = yes | |||
diff --git a/keyboards/ungodly/launch_pad/keymaps/warzone/keymap.c b/keyboards/ungodly/launch_pad/keymaps/warzone/keymap.c new file mode 100644 index 000000000..04270bcf3 --- /dev/null +++ b/keyboards/ungodly/launch_pad/keymaps/warzone/keymap.c | |||
| @@ -0,0 +1,269 @@ | |||
| 1 | /* Copyright 2020 Ungodly Design <hello@ungodly.design> | ||
| 2 | * | ||
| 3 | * This program is free software: you can redistribute it and/or modify | ||
| 4 | * it under the terms of the GNU General Public License as published by | ||
| 5 | * the Free Software Foundation, either version 2 of the License, or | ||
| 6 | * (at your option) any later version. | ||
| 7 | * | ||
| 8 | * This program is distributed in the hope that it will be useful, | ||
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 11 | * GNU General Public License for more details. | ||
| 12 | * | ||
| 13 | * You should have received a copy of the GNU General Public License | ||
| 14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
| 15 | */ | ||
| 16 | #include QMK_KEYBOARD_H | ||
| 17 | #include "analog.h" | ||
| 18 | #include "qmk_midi.h" | ||
| 19 | |||
| 20 | /* Force Numlock on */ | ||
| 21 | void matrix_init_user (void) { | ||
| 22 | if (!host_keyboard_led_state().num_lock) { | ||
| 23 | tap_code(KC_NUMLOCK); | ||
| 24 | } | ||
| 25 | } | ||
| 26 | |||
| 27 | // Tap Dance declarations | ||
| 28 | enum { | ||
| 29 | TD_ESC_TAB, | ||
| 30 | TD_NUMLOCK_L1, | ||
| 31 | TD_3_L0 | ||
| 32 | }; | ||
| 33 | |||
| 34 | // Tap Dance definitions | ||
| 35 | qk_tap_dance_action_t tap_dance_actions[] = { | ||
| 36 | // Tap once for Escape, twice for Number 4 (armor plates in warzone) | ||
| 37 | [TD_ESC_TAB] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, KC_TAB), | ||
| 38 | [TD_3_L0] = ACTION_TAP_DANCE_LAYER_TOGGLE(KC_3, 1), | ||
| 39 | [TD_NUMLOCK_L1] = ACTION_TAP_DANCE_LAYER_TOGGLE(KC_NUMLOCK, 1), | ||
| 40 | }; | ||
| 41 | |||
| 42 | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
| 43 | /* Keymap _BL: (Base Layer) Default Numpad Layer | ||
| 44 | * ,-------------------. | ||
| 45 | * | NV | / | * |BK/FN| | ||
| 46 | * |----|----|----|-----| | ||
| 47 | * | 7 | 8 | 9 | - | | ||
| 48 | * |----|----|----|-----| | ||
| 49 | * | 4 | 5 | 6 | + | | ||
| 50 | * |----|----|----|-----| | ||
| 51 | * | 1 | 2 | 3 | En | | ||
| 52 | * |----|----|----|-----| | ||
| 53 | * | 0 | 0 | . | En | | ||
| 54 | * `--------------------' | ||
| 55 | */ | ||
| 56 | [0] = LAYOUT_ortho_5x4( | ||
| 57 | TD(TD_NUMLOCK_L1), KC_PSLS, KC_PAST, LT(2, KC_BSPC), | ||
| 58 | KC_P7, KC_P8, KC_P9, KC_PMNS, | ||
| 59 | KC_P4, KC_P5, KC_P6, KC_PPLS, | ||
| 60 | KC_P1, KC_P2, KC_P3, KC_PENT, | ||
| 61 | KC_P0, KC_P0, KC_PDOT, KC_PENT | ||
| 62 | ), | ||
| 63 | /* Keymap _WAR: (Warzone Layer) Default Numpad Layer for COD Warzone N00BS | ||
| 64 | * ,-------------------. | ||
| 65 | * | R | F | V | Spc | | ||
| 66 | * |----|----|----|-----| | ||
| 67 | * | E | D | C | Alt | | ||
| 68 | * |----|----|----|-----| | ||
| 69 | * | W | S | X | 4 | | ||
| 70 | * |----|----|----|-----| | ||
| 71 | * | Q | A | Z | 3 | | ||
| 72 | * |----|----|----|-----| | ||
| 73 | * | Esc|Ctrl|Shift| M | | ||
| 74 | * `--------------------' | ||
| 75 | */ | ||
| 76 | [1] = LAYOUT_ortho_5x4( | ||
| 77 | KC_R, KC_F, KC_V, KC_SPACE, | ||
| 78 | KC_E, KC_D, KC_C, KC_LALT, | ||
| 79 | KC_W, KC_S, KC_X, KC_4, | ||
| 80 | KC_Q, KC_A, KC_Z, TD(TD_3_L0), | ||
| 81 | TD(TD_ESC_TAB), KC_LCTRL, KC_LSHIFT, KC_M | ||
| 82 | ), | ||
| 83 | /* Keymap _FN: RGB Function Layer | ||
| 84 | * ,-------------------. | ||
| 85 | * |LAYR| | |RTOG| | ||
| 86 | * |----|----|----|----| | ||
| 87 | * |HUD |HUI | |RGBP| | ||
| 88 | * |----|----|----|----| | ||
| 89 | * |SAD |SAI | |RMOD| | ||
| 90 | * |----|----|----|----| | ||
| 91 | * |VAD |VAS | | | | ||
| 92 | * |----|----|----|----| | ||
| 93 | * |RST |RST | | | | ||
| 94 | * `-------------------' | ||
| 95 | */ | ||
| 96 | [2] = LAYOUT_ortho_5x4( | ||
| 97 | KC_LUP, XXXXXXX, XXXXXXX, RGB_TOG, | ||
| 98 | RGB_HUD, RGB_HUI, XXXXXXX, RGB_M_P, | ||
| 99 | RGB_SAD, RGB_SAI, XXXXXXX, RGB_MOD, | ||
| 100 | RGB_VAD, RGB_VAI, XXXXXXX, XXXXXXX, | ||
| 101 | RESET, RESET, XXXXXXX, XXXXXXX | ||
| 102 | ), | ||
| 103 | }; | ||
| 104 | |||
| 105 | // (Optional) Rotary Encoder, Volume Control | ||
| 106 | bool encoder_update_user(uint8_t index, bool clockwise) { | ||
| 107 | if (clockwise) { | ||
| 108 | tap_code(KC_VOLU); | ||
| 109 | } else { | ||
| 110 | tap_code(KC_VOLD); | ||
| 111 | } | ||
| 112 | return true; | ||
| 113 | } | ||
| 114 | |||
| 115 | // Potentiometer Slider, MIDI Control | ||
| 116 | uint8_t divisor = 0; | ||
| 117 | void slider(void){ | ||
| 118 | if (divisor++) { // only run the slider function 1/256 times it's called | ||
| 119 | return; | ||
| 120 | } | ||
| 121 | midi_send_cc(&midi_device, 2, 0x3E, 0x7F - (analogReadPin(SLIDER_PIN) >> 3)); | ||
| 122 | } | ||
| 123 | |||
| 124 | void matrix_scan_user(void) { | ||
| 125 | slider(); | ||
| 126 | } | ||
| 127 | |||
| 128 | // 0.91" OLED, 128x32 resolution | ||
| 129 | #ifdef OLED_DRIVER_ENABLE | ||
| 130 | oled_rotation_t oled_init_user(oled_rotation_t rotation) { | ||
| 131 | return OLED_ROTATION_180; | ||
| 132 | } | ||
| 133 | |||
| 134 | static void render_rocket_logo(void) { | ||
| 135 | static const char PROGMEM rocket_logo[]={ | ||
| 136 | // Rocket Screen | ||
| 137 | // 'home', 128x32px | ||
| 138 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 139 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 140 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 141 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 142 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 143 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 144 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, | ||
| 145 | 0x80, 0x80, 0xc0, 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 146 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x20, 0x50, 0x50, 0x90, | ||
| 147 | 0x10, 0x10, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, | ||
| 148 | 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x10, 0x10, 0xf0, 0x10, 0x10, 0x08, 0x08, 0x08, 0x04, 0x04, | ||
| 149 | 0x04, 0xfc, 0xfc, 0xfc, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0xfc, 0x7c, 0x7e, 0x7e, 0x7f, | ||
| 150 | 0x81, 0x81, 0x81, 0x81, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, | ||
| 151 | 0xff, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0x01, 0x01, 0x01, 0xf9, 0x01, 0xf9, 0x01, | ||
| 152 | 0xf9, 0x01, 0xf9, 0x01, 0x01, 0x01, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe7, 0xe6, | ||
| 153 | 0xe6, 0xe6, 0xe6, 0xe6, 0xff, 0x8c, 0x52, 0x52, 0x52, 0xde, 0x84, 0x08, 0x84, 0x08, 0x00, 0x00, | ||
| 154 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, | ||
| 155 | 0x05, 0x05, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 156 | 0x00, 0x01, 0x01, 0x01, 0x01, 0x02, 0x04, 0x04, 0x07, 0x04, 0x04, 0x08, 0x08, 0x08, 0x10, 0x10, | ||
| 157 | 0x10, 0x1f, 0x1f, 0x1f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1f, 0x10, 0x20, 0x20, 0x40, | ||
| 158 | 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x7f, | ||
| 159 | 0x7f, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x40, 0x40, 0x40, 0x4a, 0x44, 0x4a, 0x40, | ||
| 160 | 0x4f, 0x40, 0x4f, 0x40, 0x40, 0x40, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x9c, | ||
| 161 | 0x9c, 0x9c, 0x9c, 0x1c, 0xff, 0x31, 0x4a, 0x4a, 0x4a, 0x7b, 0x10, 0x21, 0x10, 0x21, 0x00, 0x00, | ||
| 162 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 163 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 164 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 165 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 166 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 167 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 168 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 169 | 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 | ||
| 170 | }; | ||
| 171 | oled_write_raw_P(rocket_logo, sizeof(rocket_logo)); | ||
| 172 | } | ||
| 173 | static void render_warzone_logo(void) { | ||
| 174 | static const char PROGMEM warzone_logo[]={ | ||
| 175 | // Home Screen | ||
| 176 | // 'warzone_bit', 128x32px | ||
| 177 | 0x00, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, | ||
| 178 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xe0, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
| 179 | 0x00, 0xe0, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x3f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, | ||
| 180 | 0xfc, 0xf0, 0x00, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
| 181 | 0xff, 0xff, 0x7f, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x80, 0x00, 0x00, 0xff, 0xff, | ||
| 182 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, | ||
| 183 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
| 184 | 0xf8, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, | ||
| 185 | 0x00, 0x00, 0xe0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, | ||
| 186 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
| 187 | 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
| 188 | 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0x1f, | ||
| 189 | 0x07, 0x01, 0x00, 0x00, 0x00, 0x03, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf0, 0xff, 0xff, | ||
| 190 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x1f, 0xff, | ||
| 191 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, | ||
| 192 | 0xff, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, | ||
| 193 | 0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, | ||
| 194 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
| 195 | 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, | ||
| 196 | 0xff, 0xff, 0x00, 0x80, 0xe0, 0xf8, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x07, 0x01, 0x00, 0x00, | ||
| 197 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0xff, 0xff, | ||
| 198 | 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xfe, 0xff, | ||
| 199 | 0xff, 0xff, 0xff, 0xff, 0x03, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0xff, 0xff, 0xff, | ||
| 200 | 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, | ||
| 201 | 0x00, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, | ||
| 202 | 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x01, 0x0f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, | ||
| 203 | 0x00, 0x03, 0x1f, 0x3f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, 0x7f, 0x3f, 0x3f, | ||
| 204 | 0x1f, 0x07, 0x00, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, | ||
| 205 | 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x1f, 0x3f, 0x3f, 0x7f, 0x7f, 0x7f, 0x7e, 0x7e, 0x7e, 0x7f, 0x7f, | ||
| 206 | 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x01, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, | ||
| 207 | 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x07, 0x7f, 0x7f, | ||
| 208 | 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x0f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7f, 0x7e, 0x00 | ||
| 209 | }; | ||
| 210 | oled_write_raw_P(warzone_logo, sizeof(warzone_logo)); | ||
| 211 | } | ||
| 212 | static void render_light_logo(void) { | ||
| 213 | static const char PROGMEM light_logo[]={ | ||
| 214 | // RGB Screen | ||
| 215 | // 'rgb', 128x32px | ||
| 216 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 217 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 218 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 219 | 0x00, 0x00, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x9c, 0x80, 0x80, | ||
| 220 | 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 221 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 222 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, | ||
| 223 | 0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 224 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x20, 0x50, 0x50, 0x90, | ||
| 225 | 0x10, 0x10, 0x20, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 226 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 227 | 0x80, 0x80, 0x80, 0x00, 0x00, 0xe0, 0x19, 0x04, 0x62, 0x11, 0x09, 0x04, 0x04, 0x00, 0x00, 0x00, | ||
| 228 | 0x00, 0x01, 0x01, 0x02, 0x04, 0x19, 0x10, 0x10, 0xf0, 0x00, 0x00, 0xf0, 0x00, 0xf0, 0xe0, 0xc0, | ||
| 229 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 230 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0x24, 0x04, | ||
| 231 | 0x07, 0xe4, 0x24, 0x24, 0xc7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 232 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, | ||
| 233 | 0x05, 0x05, 0x02, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 234 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 235 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x88, 0x30, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, | ||
| 236 | 0x80, 0x80, 0x40, 0x60, 0x30, 0x98, 0x08, 0x08, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x0f, 0x07, 0x03, | ||
| 237 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 238 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0x22, 0x24, | ||
| 239 | 0x24, 0xc4, 0x44, 0x22, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 240 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 241 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 242 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 243 | 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1d, 0x01, 0x01, | ||
| 244 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 245 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | ||
| 246 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x02, 0x02, | ||
| 247 | 0x02, 0x03, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 | ||
| 248 | }; | ||
| 249 | oled_write_raw_P(light_logo, sizeof(light_logo)); | ||
| 250 | } | ||
| 251 | |||
| 252 | void oled_task_user(void) { | ||
| 253 | switch (get_highest_layer(layer_state)) { | ||
| 254 | case 0: | ||
| 255 | render_rocket_logo(); | ||
| 256 | break; | ||
| 257 | case 1: | ||
| 258 | render_warzone_logo(); | ||
| 259 | break; | ||
| 260 | case 2: | ||
| 261 | render_light_logo(); | ||
| 262 | break; | ||
| 263 | default: | ||
| 264 | // Or use the write_ln shortcut over adding '\n' to the end of your string | ||
| 265 | oled_write_ln_P(PSTR(" UND"), false); | ||
| 266 | break; | ||
| 267 | } | ||
| 268 | } | ||
| 269 | #endif | ||
diff --git a/keyboards/ungodly/launch_pad/keymaps/warzone/rules.mk b/keyboards/ungodly/launch_pad/keymaps/warzone/rules.mk new file mode 100644 index 000000000..791d5ab50 --- /dev/null +++ b/keyboards/ungodly/launch_pad/keymaps/warzone/rules.mk | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | VIA_ENABLE = yes | ||
| 2 | TAP_DANCE_ENABLE = yes | ||
diff --git a/keyboards/ungodly/launch_pad/launch_pad.c b/keyboards/ungodly/launch_pad/launch_pad.c index fde6ed20a..e5ec112f9 100644 --- a/keyboards/ungodly/launch_pad/launch_pad.c +++ b/keyboards/ungodly/launch_pad/launch_pad.c | |||
| @@ -42,20 +42,3 @@ led_config_t g_led_config = { { | |||
| 42 | 2, 2 | 42 | 2, 2 |
| 43 | } }; | 43 | } }; |
| 44 | #endif | 44 | #endif |
| 45 | |||
| 46 | void eeconfig_init_kb(void) { | ||
| 47 | #ifdef RGBLIGHT_ENABLE | ||
| 48 | rgblight_enable(); // Enable RGB by default | ||
| 49 | rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness | ||
| 50 | # ifdef RGBLIGHT_ANIMATIONS | ||
| 51 | rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default | ||
| 52 | # endif | ||
| 53 | #endif | ||
| 54 | |||
| 55 | #ifdef RGB_MATRIX_ENABLE | ||
| 56 | rgb_matrix_enable(); // Enable RGB by default | ||
| 57 | #endif | ||
| 58 | |||
| 59 | eeconfig_update_kb(0); | ||
| 60 | eeconfig_init_user(); | ||
| 61 | } | ||
diff --git a/keyboards/ungodly/launch_pad/readme.md b/keyboards/ungodly/launch_pad/readme.md index 89e4b6413..5a449bcab 100644 --- a/keyboards/ungodly/launch_pad/readme.md +++ b/keyboards/ungodly/launch_pad/readme.md | |||
| @@ -22,11 +22,9 @@ Numpad Layout | 5x4 Layout | |||
| 22 |  |  | 22 |  |  |
| 23 | 23 | ||
| 24 | 24 | ||
| 25 | |Reset Bootloader| | | ||
| 26 | |---|---| | ||
| 27 | |Use tweezers to short the two bottom pins of the J-Link pinout.|| | ||
| 28 | 25 | ||
| 29 | * Keyboard Maintainer: [Luis Godinez](https://github.com/luis-Godinez) | 26 | |
| 27 | * Keyboard Maintainer: [Luis Godinez](https://github.com/luis-godinez) | ||
| 30 | * Hardware Supported: Launch Pad PCB | 28 | * Hardware Supported: Launch Pad PCB |
| 31 | * Hardware Availability: [Ungodly.Design](https://ungodly.design/products/launch-pad-pcb) | 29 | * Hardware Availability: [Ungodly.Design](https://ungodly.design/products/launch-pad-pcb) |
| 32 | 30 | ||
| @@ -35,3 +33,59 @@ Make example for this keyboard (after setting up your build environment): | |||
| 35 | make ungodly/launch_pad:default | 33 | make ungodly/launch_pad:default |
| 36 | 34 | ||
| 37 | See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). | 35 | See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). |
| 36 | |||
| 37 | # Firmware | ||
| 38 | - [v1.0](https://github.com/luis-godinez/qmk_firmware/releases/tag/launch_pad) | ||
| 39 | |||
| 40 | # Reset Bootloader | ||
| 41 | |||
| 42 | <table> | ||
| 43 | <tr> | ||
| 44 | <td>Use tweezers to short the two bottom pins of the J-Link pinout.</td> | ||
| 45 | <td><img src="https://i.imgur.com/ArSIcK0.pngl" width="300"/></td> | ||
| 46 | </tr> | ||
| 47 | </table> | ||
| 48 | |||
| 49 | # Midi Setup | ||
| 50 | |||
| 51 | <table> | ||
| 52 | <tr> | ||
| 53 | <th>Windows</th> | ||
| 54 | <th>Mac</th> | ||
| 55 | </tr> | ||
| 56 | <tr> | ||
| 57 | <td valign="top"> | ||
| 58 | <ul> | ||
| 59 | <li>Midi Mixer</li> | ||
| 60 | <ul> | ||
| 61 | <li><a href="https://github.com/jpwilliams/midi-mixer-releases/releases">Download the latest version of Midi Mixer</a></li> | ||
| 62 | <li>Run the exe to install the application.</li><li>Launch the MIDI Mixer application.</li> | ||
| 63 | <li>Navigate to the "Profiles" tab and select the "Ungodly Design Launch Pad" preset.</li> | ||
| 64 | <li>Navigate to the "Groups" tab and select the audio source you would like to control. | ||
| 65 | <br><img src="https://imgur.com/MmdDcTm.pngl" alt="Midi Mixer" width="800"></li> | ||
| 66 | <li>Optionally, Navigate to the "Settings" tab and enable/disable "Logarithmic volume curve".</li> | ||
| 67 | </ul> | ||
| 68 | </ul> | ||
| 69 | </td> | ||
| 70 | <td valign="top"> | ||
| 71 | <ul> | ||
| 72 | <li><a href="https://rsjaffe.github.io/MIDI2LR/">Midi2Lightroom</a></li> | ||
| 73 | <li><a href="https://www.orderedbytes.com/controllermate/">ControllerMate</a></li> | ||
| 74 | </ul> | ||
| 75 | </td> | ||
| 76 | </tr> | ||
| 77 | </table> | ||
| 78 | |||
| 79 | # Custom OLED Displays | ||
| 80 | |||
| 81 | Layer | Graphic | ||
| 82 | :----:|:----: | ||
| 83 | home |  | ||
| 84 | nav |  | ||
| 85 | rgb |  | ||
| 86 | |||
| 87 | * These instructions require compiling your own firmware. [Ensure that your build environenment is setup](https://beta.docs.qmk.fm/tutorial/newbs_getting_started). | ||
| 88 | * Use [QMK Logo Editor](https://joric.github.io/qle/) to create your own LCD graphics. | ||
| 89 | * Copy the generated output into your keymap ([sample code](https://github.com/qmk/qmk_firmware/blob/master/keyboards/ungodly/launch_pad/keymaps/default/keymap.c)) | ||
| 90 | * Note: By default, the LCD is configured as a vertical display with a 180 degree rotation. You may need to change the `OLED_ROTATION` value in the `keymap.c` to achieve your desired effect. | ||
| 91 | * Compile the firmware and flash it to your launch pad. | ||
