From f23639517683378bed12792903e0d9cc6a1a6794 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 13 Mar 2021 11:38:26 +1100 Subject: LED Matrix: Clean up includes (#12197) --- keyboards/clueboard/66_hotswap/gen1/gen1.c | 2 -- 1 file changed, 2 deletions(-) (limited to 'keyboards/clueboard') diff --git a/keyboards/clueboard/66_hotswap/gen1/gen1.c b/keyboards/clueboard/66_hotswap/gen1/gen1.c index dd399317c1..339bd78d5a 100644 --- a/keyboards/clueboard/66_hotswap/gen1/gen1.c +++ b/keyboards/clueboard/66_hotswap/gen1/gen1.c @@ -16,8 +16,6 @@ #include "gen1.h" #ifdef LED_MATRIX_ENABLE - #include "is31fl3731-simple.h" - const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { /* Refer to IS31 manual for these locations * driver -- cgit v1.2.3 From a0fed0ea176d1c986e40fc4981b900509c90d66e Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Fri, 21 May 2021 23:17:32 -0700 Subject: Convert Encoder callbacks to be boolean functions (#12805) Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com> --- keyboards/clueboard/2x1800/2019/2019.c | 11 +++++------ keyboards/clueboard/2x1800/2019/2019.h | 3 +-- 2 files changed, 6 insertions(+), 8 deletions(-) (limited to 'keyboards/clueboard') diff --git a/keyboards/clueboard/2x1800/2019/2019.c b/keyboards/clueboard/2x1800/2019/2019.c index 29f7a4901c..40032cd669 100644 --- a/keyboards/clueboard/2x1800/2019/2019.c +++ b/keyboards/clueboard/2x1800/2019/2019.c @@ -144,13 +144,11 @@ bool led_update_kb(led_t led_state) { return res; } -__attribute__ ((weak)) -bool encoder_update_keymap(int8_t index, bool clockwise) { - return false; -} +__attribute__((weak)) bool encoder_update_keymap(uint8_t index, bool clockwise) { return true; } +__attribute__((weak)) bool encoder_update_user(uint8_t index, bool clockwise) { return encoder_update_keymap(index, clockwise); } -void encoder_update_kb(int8_t index, bool clockwise) { - if (!encoder_update_keymap(index, clockwise)) { +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { // Encoder 1, outside left if (index == 0 && clockwise) { tap_code(KC_MS_U); // turned right @@ -179,4 +177,5 @@ void encoder_update_kb(int8_t index, bool clockwise) { tap_code(KC_MS_L); // turned left } } + return true; } diff --git a/keyboards/clueboard/2x1800/2019/2019.h b/keyboards/clueboard/2x1800/2019/2019.h index e4738a4b90..5debfacc5d 100644 --- a/keyboards/clueboard/2x1800/2019/2019.h +++ b/keyboards/clueboard/2x1800/2019/2019.h @@ -29,8 +29,7 @@ enum TWOx1800_keycodes { #define SAFE_RANGE NEW_SAFE_RANGE // Encoder update function that returns true/false -__attribute__ ((weak)) -bool encoder_update_keymap(int8_t index, bool clockwise); +bool encoder_update_keymap(uint8_t index, bool clockwise); // Encoder button combo check void check_encoder_buttons(void); -- cgit v1.2.3 From fd8628ccdc97482aae1814cec5c2059c2978daad Mon Sep 17 00:00:00 2001 From: Ryan Date: Thu, 15 Jul 2021 03:52:45 +1000 Subject: Migrate more `fn_actions` stuff (#13502) --- keyboards/clueboard/66/keymaps/magicmonty/keymap.c | 30 +++-- keyboards/clueboard/66/keymaps/tetris/keymap.c | 126 ++++++--------------- 2 files changed, 50 insertions(+), 106 deletions(-) (limited to 'keyboards/clueboard') diff --git a/keyboards/clueboard/66/keymaps/magicmonty/keymap.c b/keyboards/clueboard/66/keymaps/magicmonty/keymap.c index 54420d31b6..56d4c47071 100644 --- a/keyboards/clueboard/66/keymaps/magicmonty/keymap.c +++ b/keyboards/clueboard/66/keymaps/magicmonty/keymap.c @@ -40,8 +40,9 @@ // CTRL when held, ESC when tapped #define CTL_ESC CTL_T(KC_ESC) -// Reset RGB mode to layer signalling -#define RGB_RST F(0) +enum custom_keycodes { + RGB_RST = SAFE_RANGE +}; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap _BL: Base Layer (Default Layer) */ @@ -103,21 +104,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { #endif }; -/* This is a list of user defined functions. F(N) corresponds to item N - of this list. - */ -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_FUNCTION(0), // Calls action_function() -}; - -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { - switch (id) { - case 0: - if (record->event.pressed) { - rgblight_mode(1); - rgblight_sethsv(206, 255, 255); - } - } +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case RGB_RST: + if (record->event.pressed) { + rgblight_mode(1); + rgblight_sethsv(206, 255, 255); + } + return false; + } + return true; } enum layer_id { diff --git a/keyboards/clueboard/66/keymaps/tetris/keymap.c b/keyboards/clueboard/66/keymaps/tetris/keymap.c index ef3abd6672..26dd97feec 100644 --- a/keyboards/clueboard/66/keymaps/tetris/keymap.c +++ b/keyboards/clueboard/66/keymaps/tetris/keymap.c @@ -1,9 +1,6 @@ #include QMK_KEYBOARD_H #include "tetris_text.h" -// Helpful defines -#define GRAVE_MODS (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)|MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)|MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT)) - // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. // Layer names don't all need to be of the same length, obviously, and you can also skip them @@ -12,11 +9,15 @@ #define _FL 1 #define _CL 2 +enum custom_keycodes { + TETRIS_START = SAFE_RANGE +}; + const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Keymap _BL: Base Layer (Default Layer) */ [_BL] = LAYOUT( - F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PGUP, + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, @@ -41,71 +42,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______,_______, RGB_MOD, RGB_MOD, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_HUI), }; -/* This is a list of user defined functions. F(N) corresponds to item N - of this list. - */ -const uint16_t PROGMEM fn_actions[] = { - [0] = ACTION_FUNCTION(0), // Calls action_function() - [1] = ACTION_FUNCTION(1) -}; - static uint8_t tetris_key_presses = 0; static uint16_t tetris_timer = 0; static uint8_t tetris_running = 0; static int tetris_keypress = 0; -void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { - static uint8_t mods_pressed; - static bool mod_flag; - - switch (id) { - case 0: - // clueboard specific hook to make escape quite tetris - if (tetris_running) { - tetris_running = 0; - return; - } - - /* Handle the combined Grave/Esc key - */ - mods_pressed = get_mods()&GRAVE_MODS; // Check to see what mods are pressed - - if (record->event.pressed) { - /* The key is being pressed. - */ - if (mods_pressed) { - mod_flag = true; - add_key(KC_GRV); - send_keyboard_report(); - } else { - add_key(KC_ESC); - send_keyboard_report(); - } - } else { - /* The key is being released. - */ - if (mod_flag) { - mod_flag = false; - del_key(KC_GRV); - send_keyboard_report(); - } else { - del_key(KC_ESC); - send_keyboard_report(); - } - } - break; - case 1: - if (record->event.pressed) { - tetris_running = 1; - tetris_timer = 0; - tetris_keypress = 0; - // set randomness using total number of key presses - tetris_start(tetris_key_presses); - } - break; - } -} - /* * Set up tetris */ @@ -130,6 +71,25 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } } + switch (keycode) { + case KC_GESC: + // clueboard specific hook to make escape quite tetris + if (tetris_running) { + tetris_running = 0; + return false; + } + break; + case TETRIS_START: + if (record->event.pressed) { + tetris_running = 1; + tetris_timer = 0; + tetris_keypress = 0; + // set randomness using total number of key presses + tetris_start(tetris_key_presses); + } + return false; + } + return true; } @@ -148,57 +108,45 @@ void matrix_scan_user(void) { } } -void send_keycode(uint16_t keycode) { - register_code(keycode); - unregister_code(keycode); -} - -void send_keycode_shift(uint16_t keycode) { - register_code(KC_LSFT); - register_code(keycode); - unregister_code(keycode); - unregister_code(KC_LSFT); -} - void tetris_send_up(void) { - send_keycode(KC_UP); + tap_code(KC_UP); } void tetris_send_left(void) { - send_keycode(KC_LEFT); + tap_code(KC_LEFT); } void tetris_send_down(void) { - send_keycode(KC_DOWN); + tap_code(KC_DOWN); } void tetris_send_right(void) { - send_keycode(KC_RGHT); + tap_code(KC_RGHT); } void tetris_send_backspace(void) { - send_keycode(KC_BSPC); + tap_code(KC_BSPC); } void tetris_send_delete(void) { - send_keycode(KC_DEL); + tap_code(KC_DEL); } void tetris_send_string(const char *s) { for (int i = 0; s[i] != 0; i++) { if (s[i] >= 'a' && s[i] <= 'z') { - send_keycode(KC_A + (s[i] - 'a')); + tap_code(KC_A + (s[i] - 'a')); } else if (s[i] >= 'A' && s[i] <= 'Z') { - send_keycode_shift(KC_A + (s[i] - 'A')); + tap_code16(S(KC_A + (s[i] - 'A'))); } else if (s[i] >= '1' && s[i] <= '9') { - send_keycode(KC_1 + (s[i] - '1')); + tap_code(KC_1 + (s[i] - '1')); } else { switch (s[i]) { - case ' ': send_keycode(KC_SPACE); break; - case '.': send_keycode(KC_DOT); break; - case '0': send_keycode(KC_0); break; + case ' ': tap_code(KC_SPACE); break; + case '.': tap_code(KC_DOT); break; + case '0': tap_code(KC_0); break; } } } } void tetris_send_newline(void) { - send_keycode(KC_ENT); + tap_code(KC_ENT); } int tetris_get_keypress(void) { -- cgit v1.2.3 From 70fb3e1aaf406cbbd5137916a93ed814d6891ef2 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sat, 31 Jul 2021 14:35:30 +0100 Subject: __flash? (#13799) --- keyboards/clueboard/66_hotswap/gen1/gen1.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'keyboards/clueboard') diff --git a/keyboards/clueboard/66_hotswap/gen1/gen1.c b/keyboards/clueboard/66_hotswap/gen1/gen1.c index 339bd78d5a..8e3db70d07 100644 --- a/keyboards/clueboard/66_hotswap/gen1/gen1.c +++ b/keyboards/clueboard/66_hotswap/gen1/gen1.c @@ -16,7 +16,7 @@ #include "gen1.h" #ifdef LED_MATRIX_ENABLE -const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { +const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = { /* Refer to IS31 manual for these locations * driver * | LED address -- cgit v1.2.3 From 3f419dc872d3ab61d129c644e114f62fd738e9d6 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 3 Aug 2021 18:34:32 +0100 Subject: Unconditionally call led_init_ports (#12116) * Unconditionally call led_init_ports * Another call to led_init_ports --- keyboards/clueboard/66/rev4/rev4.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) (limited to 'keyboards/clueboard') diff --git a/keyboards/clueboard/66/rev4/rev4.c b/keyboards/clueboard/66/rev4/rev4.c index 00d4f325e5..5101818270 100644 --- a/keyboards/clueboard/66/rev4/rev4.c +++ b/keyboards/clueboard/66/rev4/rev4.c @@ -1,12 +1,6 @@ #include "rev4.h" -void matrix_init_kb(void) { - led_init_ports(); - - matrix_init_user(); -} - -void led_init_ports() { +void led_init_ports(void) { // Set our LED pins as output setPinOutput(B13); // LED1 writePinLow(B13); -- cgit v1.2.3 From a03aa301def77c867ae6c6c840f7fc82b26d91d6 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Fri, 6 Aug 2021 23:59:56 -0700 Subject: Remove Full Bootmagic (#13846) * disambiguate Bootmagic rules in keymaps The files edited by this commit were added at a point in time where `BOOTMAGIC_ENABLE = yes` enabled full Bootmagic. This commit edits the files to specify that full Bootmagic is intended. * remove BOOTMAGIC_ENABLE=full setting * unify commented BOOTMAGIC_ENABLE rules in keyboards Explicitly sets `BOOTMAGIC_ENABLE = no` in keyboards where the rule was commented out. Command: ``` find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;#[ \t]*\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-zA-Z]\+\).*;\1 = no # Virtual DIP switch configuration;g' {} + ``` * remove commented Bootmagic rules from keymap/user level Command: ``` find keyboards/ layouts/ users/ -type f -name 'rules.mk' -exec sed -i -e '/#.*\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-z]\+\).*/d' {} + ``` * update keyboard BOOTMAGIC_ENABLE rule formatting Sets the formatting of BOOTMAGIC_ENABLE rules to `BOOTMAGIC_ENABLE = [value]`, without the inline comments (which will be replaced later). Command: ``` find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-z]\+\).*;\1 = \2;g' '{}' + ``` * update keyboards' BOOTMAGIC_ENABLE settings Updates keyboard `rules.mk` files to use `BOOTMAGIC_ENABLE = lite` where `BOOTMAGIC_ENABLE = full` was being used. Command: ``` find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE = \)full;\1lite;g' '{}' + ``` * update keymap/user BOOTMAGIC_ENABLE settings Updates keymap/user `rules.mk` files to use `BOOTMAGIC_ENABLE = lite` where `BOOTMAGIC_ENABLE = full` was being used. Commands: ``` find keyboards/ -type f -name 'rules.mk' -and -path '*/keymaps/*' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE[ \t=]\+\)full;\1lite;g' '{}' + find layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE[ \t=]\+\)full;\1lite;g' '{}' + ``` * remove and replace inline comments in keyboards and keymap/user files Removes and replaces the inline comments, which have been updated to read `Enable Bootmagic Lite`. Commands: ``` find keyboards/ -type f -name 'rules.mk' -and -path '*/keymaps/*' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-z]\+\).*;\1 = \2;g' '{}' + find layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE\)[ \t=]\+\([a-z]\+\).*;\1 = \2;g' '{}' + find keyboards/ layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE = lite\);\1 # Enable Bootmagic Lite;g' '{}' + find keyboards/ layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE = yes\);\1 # Enable Bootmagic Lite;g' '{}' + find keyboards/ layouts/community/ users/ -type f -name 'rules.mk' -exec sed -i -e 's;\(BOOTMAGIC_ENABLE = no\);\1 # Enable Bootmagic Lite;g' '{}' + ``` * rename improperly named makefiles Some files intended to be used as makefiles had improper names causing them to not be used as intended when building. This commit corrects the filenames of the affected files. * update renamed file with new rule formatting * update QMK's template files Updates QMK's `rules.mk` templates to use the new inline comment. * update QMK Docs - remove documentation of full Bootmagic - update links to Bootmagic Lite doc - add doc for Magic Keycodes * rules.mk patch for coarse/ixora and coarse/vinta --- keyboards/clueboard/card/keymaps/default/rules.mk | 2 +- keyboards/clueboard/card/keymaps/rgb_effects/rules.mk | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'keyboards/clueboard') diff --git a/keyboards/clueboard/card/keymaps/default/rules.mk b/keyboards/clueboard/card/keymaps/default/rules.mk index 82ee482bed..c61fcbef8f 100644 --- a/keyboards/clueboard/card/keymaps/default/rules.mk +++ b/keyboards/clueboard/card/keymaps/default/rules.mk @@ -2,7 +2,7 @@ # change to "no" to disable the options, or define them in the Makefile in # the appropriate keymap folder that will get included automatically # -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite MOUSEKEY_ENABLE = no # Mouse keys EXTRAKEY_ENABLE = no # Audio control and System control CONSOLE_ENABLE = yes # Console for debug diff --git a/keyboards/clueboard/card/keymaps/rgb_effects/rules.mk b/keyboards/clueboard/card/keymaps/rgb_effects/rules.mk index 54d74abbe5..8e5ad40ce4 100644 --- a/keyboards/clueboard/card/keymaps/rgb_effects/rules.mk +++ b/keyboards/clueboard/card/keymaps/rgb_effects/rules.mk @@ -2,7 +2,7 @@ # change to "no" to disable the options, or define them in the Makefile in # the appropriate keymap folder that will get included automatically # -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite MOUSEKEY_ENABLE = no # Mouse keys(+4700) EXTRAKEY_ENABLE = no # Audio control and System control(+450) CONSOLE_ENABLE = yes # Console for debug(+400) -- cgit v1.2.3 From 4b453dca92f87899d98b5340b16677bd78a52beb Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sun, 15 Aug 2021 20:51:13 +0000 Subject: Remove MIDI Configuration boilerplate (#11151) * remove keyboard-level instances of `MIDI_ENABLE = no` Command: ``` find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e '/^[ #]*MIDI_ENABLE[ \t]*=[ \t]*no/d' {} + ``` Co-Authored-By: Nick Brassel * fix case-sensitivity issues on MIDI_ENABLE Change instances of `MIDI_ENABLE = YES` to `MIDI_ENABLE = yes`. Command: ``` find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;MIDI_ENABLE[ \t]*=[ \t]*[Yy][Ee][Ss];MIDI_ENABLE = yes;g' {} + ``` * replace `# MIDI controls` with `# MIDI support` Replace `# MIDI controls` with `# MIDI support` in keyboard-level `rules.mk` files. Command: ``` find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;#[ \t]*MIDI[ \t]*\(controls\|support\).*;# MIDI support;g' {} + ``` * align inline comments Aligns the inline comments to the length used by the QMK AVR rules.mk template. Command: ``` find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;MIDI_ENABLE *= *yes.*;MIDI_ENABLE = yes # MIDI support;g' {} + ``` * remove commented instances of `MIDI_ENABLE` from keyboard `rules.mk` files Commands: ``` find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;#\([ \t]*MIDI_ENABLE\) = yes; \1 = no ;' {} + find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;^\([ \t]*\)\(MIDI_ENABLE = no\);\2\1;' {} + find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e '/^[ #]\+MIDI_ENABLE *= *no/d' {} + ``` * remove MIDI configuration boilerplate from keyboard config.h files Co-authored-by: Nick Brassel --- keyboards/clueboard/66_hotswap/gen1/config.h | 20 -------------------- 1 file changed, 20 deletions(-) (limited to 'keyboards/clueboard') diff --git a/keyboards/clueboard/66_hotswap/gen1/config.h b/keyboards/clueboard/66_hotswap/gen1/config.h index e0e69a2baf..7e53e0a011 100644 --- a/keyboards/clueboard/66_hotswap/gen1/config.h +++ b/keyboards/clueboard/66_hotswap/gen1/config.h @@ -65,26 +65,6 @@ //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION -/* - * MIDI options - */ - -/* enable basic MIDI features: - - MIDI notes can be sent when in Music mode is on -*/ -//#define MIDI_BASIC - -/* enable advanced MIDI features: - - MIDI notes can be added to the keymap - - Octave shift and transpose - - Virtual sustain, portamento, and modulation wheel - - etc. -*/ -//#define MIDI_ADVANCED - -/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */ -//#define MIDI_TONE_KEYCODE_OCTAVES 1 - /* Backlight configuration */ #define BACKLIGHT_LEVELS 10 -- cgit v1.2.3