From d689f76110ee20e45d6531eac31bf72461ed504b Mon Sep 17 00:00:00 2001 From: Anne Demey Date: Fri, 23 Oct 2020 17:14:17 -0500 Subject: [Keyboard] Add Terrazzo Keyboard (#10408) * Ciao Terrazzo! * Keymap updates * Adding info json Cleaning up keymap files Readme updates with template * Coding style updates * Removing vscode files * PR feedback updates * biton32 -> get_highest_layer update Adding license headers --- keyboards/terrazzo/terrazzo_effects/outrun.h | 127 +++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 keyboards/terrazzo/terrazzo_effects/outrun.h (limited to 'keyboards/terrazzo/terrazzo_effects/outrun.h') diff --git a/keyboards/terrazzo/terrazzo_effects/outrun.h b/keyboards/terrazzo/terrazzo_effects/outrun.h new file mode 100644 index 0000000000..b4455ef49f --- /dev/null +++ b/keyboards/terrazzo/terrazzo_effects/outrun.h @@ -0,0 +1,127 @@ +/* Copyright 2020 ademey "MsMustard" + * + * 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 . + */ + +#ifndef DISABLE_TERRAZZO_EFFECT_OUTRUN +TERRAZZO_EFFECT(OUTRUN) +# ifdef TERRAZZO_EFFECT_IMPLS + +static uint8_t outrun_sun[25] = { + 0, 9, 9, 9, 0, + 7, 7, 7, 7, 7, + 4, 4, 4, 4, 4, + 2, 2, 2, 2, 2, + 0, 1, 1, 1, 0 +}; + +static uint8_t outrun_ground[63] = { + 0, 0, 1, 1, 1, 0, 0, + 0, 2, 0, 2, 0, 2, 0, + 0, 2, 0, 2, 0, 2, 0, + 0, 2, 0, 4, 0, 2, 0, + 2, 0, 0, 5, 0, 0, 2, + 2, 0, 0, 5, 0, 0, 2, + 2, 0, 0, 6, 0, 0, 2, + 0, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 8, 0, 0, 0 +}; + +static uint8_t outrun_rows[4][63] = { +{ + 1, 1, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + 4, 4, 4, 4, 4, 4, 4, + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0 +}, +{ + 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + 4, 4, 4, 4, 4, 4, 4, + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0 +}, +{ + 1, 1, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, + 0, 0, 0, 0, 0, 0, 0, + 4, 4, 4, 4, 4, 4, 4, + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 9, 9, 9, 9, + 0, 0, 0, 0, 0, 0, 0 +}, +{ + 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, + 0, 0, 0, 0, 0, 0, 0, + 2, 2, 2, 2, 2, 2, 2, + 0, 0, 0, 0, 0, 0, 0, + 4, 4, 4, 4, 4, 4, 4, + 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, + 9, 9, 9, 9, 9, 9, 9 +} +}; + +bool last_dir; +uint8_t change_index = 0; + +void OUTRUN(uint8_t i, bool dir) { + led_matrix_set_index_value_all(0); + + if(dir != last_dir) { + change_index = i; + } + + uint8_t change_diff = abs(i - change_index); + uint8_t horz_bright = 9; + + if(change_diff < 4) { + if (dir) { + terrazzo_draw_at(1, 4 - change_diff, 5, 1 + change_diff, outrun_sun); + horz_bright = 3 + change_diff; + } else { + terrazzo_draw_at(1, 0 + change_diff, 5, 5 - change_diff, outrun_sun); + horz_bright = 5 - change_diff; + } + } else { + if (dir) { + terrazzo_draw_at(1, 0, 5, 5, outrun_sun); + } else { + horz_bright = 1; + } + } + + for(int x = 0; x < 7; x++){ + terrazzo_set_pixel(x, 5, horz_bright); + } + // Sun is larger but render the top 3 rows only + terrazzo_draw_at(0, 6, 7, 10, outrun_ground); + terrazzo_draw_at(0, 6, 7, 10, outrun_rows[i % 4]); + last_dir = dir; +} + +# endif +#endif \ No newline at end of file -- cgit v1.2.3