From 033627ca8b2571b232476e6219e78d5af7aed214 Mon Sep 17 00:00:00 2001 From: whowechina Date: Mon, 10 Jun 2024 15:58:28 +0800 Subject: [PATCH] Refactoring "HID lights for turntable" --- Production/Firmware/iidx_pico.uf2 | Bin 125440 -> 112640 bytes firmware/src/main.c | 5 +- firmware/src/rgb.c | 81 ++++++++++++++++++------------ firmware/src/rgb.h | 3 +- 4 files changed, 54 insertions(+), 35 deletions(-) diff --git a/Production/Firmware/iidx_pico.uf2 b/Production/Firmware/iidx_pico.uf2 index d0e3e8779a9376b52c588433421b94a7d24de4a1..4367cad2d761c1f81ab2e1cb27dbdd0e7be60b65 100644 GIT binary patch literal 112640 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≶ztGayU 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%0A0g%8%A)i`P_J%JfwSC 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 literal 125440 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Ž>cPDc7nqC? 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 rgb_button_num() + 3) { - rgb_set_hid_light(buffer, rgb_button_num()); - rgb_set_tt_light(buffer + rgb_button_num(), 3); + if (bufsize >= rgb_hid_light_num()) { + rgb_set_hid_light(buffer, bufsize); } } } diff --git a/firmware/src/rgb.c b/firmware/src/rgb.c index 2d5ad06..7cfe8ad 100644 --- a/firmware/src/rgb.c +++ b/firmware/src/rgb.c @@ -27,7 +27,6 @@ static const uint8_t button_rgb_map[BUTTON_RGB_NUM] = BUTTON_RGB_MAP; static void trap() {} static tt_effect_t effects[10] = { {trap, trap, trap, 0} }; -uint8_t tt_hid[3]; static size_t effect_num = 0; static unsigned current_effect = 0; @@ -40,7 +39,8 @@ static unsigned current_effect = 0; #define REMAP_TT_RGB _MAP_LED(TT_RGB_ORDER) #define HID_EXPIRE_DURATION 1000000ULL -static uint64_t hid_expire_time = 0; +static uint64_t hid_light_button_expire = 0; +static uint64_t hid_light_tt_expire = 0; static inline uint32_t _rgb32(uint32_t c1, uint32_t c2, uint32_t c3, bool gamma_fix) { @@ -80,7 +80,14 @@ uint8_t rgb_button_num() return BUTTON_RGB_NUM; } -uint8_t button_lights[BUTTON_RGB_NUM]; +static uint8_t hid_lights[BUTTON_RGB_NUM + 3]; +static uint8_t *tt_hid = hid_lights + BUTTON_RGB_NUM; + +uint8_t rgb_hid_light_num() +{ + return sizeof(hid_lights); +} + uint32_t tt_led_buf[128] = {0}; uint32_t tt_led_angle = 0; @@ -99,7 +106,7 @@ void set_effect(uint32_t index) void drive_led() { for (int i = 0; i < ARRAY_SIZE(button_led_buf); i++) { - pio_sm_put_blocking(pio0, 0, button_led_buf[i] << 8u); + pio_sm_put_blocking(pio0, 0, button_led_buf[i] << 8); } if (iidx_cfg->tt_led.mode == 2) { @@ -109,18 +116,14 @@ void drive_led() for (int i = 0; i < iidx_cfg->tt_led.start; i++) { pio_sm_put_blocking(pio1, 0, 0); } - if (time_us_64() < hid_expire_time && (tt_hid[0] != 0 || tt_hid[1] != 0 || tt_hid[2] != 0) ) { - for (int i = 0; i < TT_LED_NUM; i++) { - pio_sm_put_blocking(pio1, 0, tt_rgb32(tt_hid[0], tt_hid[1], tt_hid[2], false) << 8u); - } - }else{ - for (int i = 0; i < TT_LED_NUM; i++) { - bool reversed = iidx_cfg->tt_led.mode & 0x01; - uint8_t id = reversed ? TT_LED_NUM - i - 1 : i; - pio_sm_put_blocking(pio1, 0, tt_led_buf[id] << 8u); // - } + + for (int i = 0; i < TT_LED_NUM; i++) { + bool reversed = iidx_cfg->tt_led.mode & 0x01; + uint8_t id = reversed ? TT_LED_NUM - i - 1 : i; + pio_sm_put_blocking(pio1, 0, tt_led_buf[id] << 8); } - for (int i = 0; i < 8; i++) { // a few more to wipe out the last led + + for (int i = 0; i < 8; i++) { // a few more to wipe out the last leds pio_sm_put_blocking(pio1, 0, 0); } } @@ -186,7 +189,7 @@ static void button_lights_update() { for (int i = 0; i < BUTTON_RGB_NUM; i++) { int led = button_rgb_map[i]; - if (button_lights[i] > 0) { + if (hid_lights[i] > 0) { button_led_buf[led] = button_hsv(iidx_cfg->key_on[i]); } else { button_led_buf[led] = button_hsv(iidx_cfg->key_off[i]); @@ -202,37 +205,53 @@ void rgb_set_angle(uint32_t angle) void rgb_set_button_light(uint16_t buttons) { - if (time_us_64() < hid_expire_time) { + if (time_us_64() < hid_light_button_expire) { return; } for (int i = 0; i < BUTTON_RGB_NUM; i++) { uint16_t flag = 1 << i; - button_lights[i] = (buttons & flag) > 0 ? 0xff : 0; + hid_lights[i] = (buttons & flag) > 0 ? 0xff : 0; } } void rgb_set_hid_light(uint8_t const *lights, uint8_t num) { - memcpy(button_lights, lights, num); - hid_expire_time = time_us_64() + HID_EXPIRE_DURATION; + if (num < sizeof(hid_lights)) { + return; + } + + memcpy(hid_lights, lights, sizeof(hid_lights)); + + uint64_t now = time_us_64(); + + hid_light_button_expire = now + HID_EXPIRE_DURATION; + + if (tt_hid[0] || tt_hid[1] || tt_hid[2]) { + hid_light_tt_expire = now + HID_EXPIRE_DURATION; + } } -void rgb_set_tt_light(uint8_t const *lights, uint8_t num) +static void tt_lights_update() { - memcpy(tt_hid, lights, num); -} + if (time_us_64() < hid_light_tt_expire) { + /* Higher priority for the HID lights */ + uint32_t color = tt_rgb32(tt_hid[0], tt_hid[1], tt_hid[2], false); + for (int i = 0; i < TT_LED_NUM; i++) { + tt_led_buf[i] = color; + } + return; + } -static void effect_update() -{ + /* Lower priority for the local effects */ effects[current_effect].update(effects[current_effect].context); } #define FORCE_EXPIRE_DURATION 100000ULL -static uint64_t force_expire_time = 0; +static uint64_t forced_expire_time = 0; uint32_t *force_buttons = NULL; uint32_t *force_tt = NULL; -void force_update() +static void forced_update() { for (int i = 0; i < BUTTON_RGB_NUM; i++) { int led = button_rgb_map[i]; @@ -246,7 +265,7 @@ void rgb_force_display(uint32_t *buttons, uint32_t *tt) { force_buttons = buttons; force_tt = tt; - force_expire_time = time_us_64() + FORCE_EXPIRE_DURATION; + forced_expire_time = time_us_64() + FORCE_EXPIRE_DURATION; } static void wipe_out_tt_led() @@ -314,11 +333,11 @@ void rgb_update() follow_mode_change(); set_effect(iidx_cfg->tt_led.effect); - if (time_us_64() > force_expire_time) { - effect_update(); + if (time_us_64() > forced_expire_time) { + tt_lights_update(); button_lights_update(); } else { - force_update(); + forced_update(); } drive_led(); } diff --git a/firmware/src/rgb.h b/firmware/src/rgb.h index 16f1024..9bb4abd 100644 --- a/firmware/src/rgb.h +++ b/firmware/src/rgb.h @@ -15,6 +15,8 @@ void rgb_init(); void rgb_set_hardware(uint16_t tt_start, uint16_t tt_num, bool tt_reversed); uint8_t rgb_button_num(); +uint8_t rgb_hid_light_num(); + void rgb_update(); void rgb_set_angle(uint32_t angle); @@ -22,7 +24,6 @@ void rgb_set_level(uint8_t level); void rgb_set_button_light(uint16_t buttons); void rgb_set_hid_light(uint8_t const *lights, uint8_t num); -void rgb_set_tt_light(uint8_t const *lights, uint8_t num); void rgb_force_display(uint32_t *keyboard, uint32_t *tt);