From 6f611938ae8a11f8bb2726a94150102d8e6c758d Mon Sep 17 00:00:00 2001 From: Florian Didron Date: Mon, 23 Jan 2023 16:22:37 +0900 Subject: feat: adds halfmoon (#367) * feat: adds halfmoon * fix: code review feedback * fix: halfmoon music map --- keyboards/moonlander/matrix.c | 6 +++++- keyboards/moonlander/moonlander.c | 45 ++++++++++++++++++++++++++++----------- keyboards/moonlander/moonlander.h | 26 +++++++++++++++++++++- 3 files changed, 63 insertions(+), 14 deletions(-) (limited to 'keyboards') diff --git a/keyboards/moonlander/matrix.c b/keyboards/moonlander/matrix.c index 2ad4ccc5fd..3907dcb1fa 100644 --- a/keyboards/moonlander/matrix.c +++ b/keyboards/moonlander/matrix.c @@ -87,7 +87,10 @@ void matrix_init_custom(void) { setPinInputLow(A7); setPinInputLow(B0); + is_launching = true; + #ifndef HALFMOON mcp23018_init(); + #endif } bool matrix_scan_custom(matrix_row_t current_matrix[]) { @@ -216,6 +219,7 @@ void matrix_power_up(void) { ML_LED_1(false); ML_LED_2(false); ML_LED_3(false); + ML_LED_4(false); ML_LED_5(false); ML_LED_6(false); @@ -230,4 +234,4 @@ void matrix_power_up(void) { bool is_transport_connected(void) { return mcp23018_initd; -} \ No newline at end of file +} diff --git a/keyboards/moonlander/moonlander.c b/keyboards/moonlander/moonlander.c index c217782d3f..ac03aea7dc 100644 --- a/keyboards/moonlander/moonlander.c +++ b/keyboards/moonlander/moonlander.c @@ -52,24 +52,32 @@ void moonlander_led_task(void) { wait_ms(250); ML_LED_3(true); wait_ms(250); - ML_LED_4(true); - wait_ms(250); - ML_LED_5(true); - wait_ms(250); - ML_LED_6(true); - wait_ms(250); + + if (is_transport_connected()) { + ML_LED_4(true); + wait_ms(250); + ML_LED_5(true); + wait_ms(250); + ML_LED_6(true); + wait_ms(250); + } + ML_LED_1(false); wait_ms(250); ML_LED_2(false); wait_ms(250); ML_LED_3(false); wait_ms(250); - ML_LED_4(false); - wait_ms(250); - ML_LED_5(false); - wait_ms(250); - ML_LED_6(false); - wait_ms(250); + + if (is_transport_connected()) { + ML_LED_4(false); + wait_ms(250); + ML_LED_5(false); + wait_ms(250); + ML_LED_6(false); + wait_ms(250); + } + is_launching = false; layer_state_set_kb(layer_state); } @@ -358,6 +366,16 @@ void keyboard_post_init_kb(void) { #if defined(AUDIO_ENABLE) && defined(MUSIC_MAP) // clang-format off +#ifdef HALFMOON +const uint8_t music_map[MATRIX_ROWS][MATRIX_COLS] = LAYOUT_halfmoon( + 29, 30, 31, 32, 33, 34, 35, + 22, 23, 24, 25, 26, 27, 28, + 15, 16, 17, 18, 19, 20, 21, + 9, 10, 11, 12, 13, 14, + 4, 5, 6, 7, 8, 3, + 0, 1, 2 +); +#else const uint8_t music_map[MATRIX_ROWS][MATRIX_COLS] = LAYOUT_moonlander( 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, @@ -366,6 +384,7 @@ const uint8_t music_map[MATRIX_ROWS][MATRIX_COLS] = LAYOUT_moonlander( 8, 9, 10, 11, 12, 3, 4, 13, 14, 15, 16, 17, 0, 1, 2, 5, 6, 7 ); +#endif // clang-format on #endif @@ -395,9 +414,11 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { ML_LED_1(false); ML_LED_2(false); ML_LED_3(false); + #ifndef HALFMOON ML_LED_4(false); ML_LED_5(false); ML_LED_6(false); + #endif } } break; diff --git a/keyboards/moonlander/moonlander.h b/keyboards/moonlander/moonlander.h index b2e251900e..053ec8ccfb 100644 --- a/keyboards/moonlander/moonlander.h +++ b/keyboards/moonlander/moonlander.h @@ -35,6 +35,30 @@ extern bool mcp23018_leds[]; #define ML_LED_6(status) mcp23018_leds[2] = (bool)status // clang-format off +#define LAYOUT_halfmoon( \ + k00, k01, k02, k03, k04, k05, k06, \ + k07, k08, k09, k10, k11, k12, k13, \ + k14, k15, k16, k17, k18, k19, k20, \ + k21, k22, k23, k24, k25, k26, \ + k27, k28, k29, k30, k31, k32, \ + k33, k34, k35 \ +) \ +{ \ + { k00, k01, k02, k03, k04, k05, k06 }, \ + { k07, k08, k09, k10, k11, k12, k13 }, \ + { k14, k15, k16, k17, k18, k19, k20 }, \ + { k21, k22, k23, k24, k25, k26, KC_NO }, \ + { k27, k28, k29, k30, k31, KC_NO, KC_NO }, \ + { k33, k34, k35, k32, KC_NO, KC_NO, KC_NO }, \ +\ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \ + { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO } \ +} +// clang-format on #define LAYOUT_moonlander( \ k00, k01, k02, k03, k04, k05, k06, k60, k61, k62, k63, k64, k65, k66, \ k10, k11, k12, k13, k14, k15, k16, k70, k71, k72, k73, k74, k75, k76, \ @@ -78,4 +102,4 @@ typedef union { extern keyboard_config_t keyboard_config; -bool is_transport_connected(void); \ No newline at end of file +bool is_transport_connected(void); -- cgit v1.2.3