From c6ac21a15b9278a8f8495f63cfee256f734787a1 Mon Sep 17 00:00:00 2001 From: kenji Date: Sat, 23 Aug 2025 21:13:11 -0400 Subject: [PATCH] code cleanup --- build/hyperx_kb_rgb.uf2 | Bin 174592 -> 174592 bytes hyperx_elite2.c | 25 +++++++++++-------------- hyperx_elite2.h | 13 +++++-------- usb_device.c | 2 +- usb_host.c | 4 ++-- usb_host.h | 8 -------- 6 files changed, 19 insertions(+), 33 deletions(-) diff --git a/build/hyperx_kb_rgb.uf2 b/build/hyperx_kb_rgb.uf2 index fce9bd029a1c2060fd61d30964cd0eae791baeb3..ef9e00f29a6109765a7161cb17b36d0054ddad2c 100644 GIT binary patch delta 18772 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 U|G}Bx%00lngO%C$y%F_)0F30fZ~y=R diff --git a/hyperx_elite2.c b/hyperx_elite2.c index 5103cdf..f0cc008 100644 --- a/hyperx_elite2.c +++ b/hyperx_elite2.c @@ -6,7 +6,6 @@ #include "hyperx_elite2.h" -static bool sending = false; static absolute_time_t lastSend; static absolute_time_t lastRead; static bool backlight = false; @@ -42,15 +41,15 @@ void rgb_task(uint8_t dev_addr) { // the RGB protocol used by HyperX sends individual key RGB data in // multiple packets // the code here will determine if we are in the middle of sending - // updated color info (sending==true) and continue to send the next + // updated color info (packets_sent>0) and continue to send the next // packet if so at a rate of one packet every 20ms - // otherwise, wait 1s before sending the next set of color packets - if (sending) { + // otherwise, wait 0.5s before sending the next set of color packets + if (packets_sent>0) { if ( absolute_time_diff_us(lastSend, get_absolute_time()) >= 20000) { - if( backlight) { + if (backlight) { send_color(dev_addr, 0x20, 0x20, 0x20); // send a dim white color (#202020) for all keys - } else{ + } else { send_color(dev_addr, 0x00, 0x00, 0x00); // turn off all lighting by sending (#000000) for all keys } @@ -75,9 +74,8 @@ static void send_color(uint8_t dev_addr, uint8_t red, uint8_t green, uint8_t blu // each key gets 4 bytes - an init byte (0x81) plus 3 bytes for RGB if(color_idx < NUM_KEYS) { - while(color_idx < NUM_KEYS && buf_idx < BUF_SIZE){ - if(*skip_idx == color_idx + skipped) - { + while (color_idx < NUM_KEYS && buf_idx < BUF_SIZE) { + if (*skip_idx == color_idx + skipped) { // keys in skip_idx are not assigned to a key, so send all 0x00 buf[buf_idx] = 0x00; buf[buf_idx + 1] = 0x00; @@ -140,8 +138,8 @@ static void send_color(uint8_t dev_addr, uint8_t red, uint8_t green, uint8_t blu packets_sent++; } } else { - // mark that sending of a full round of color packets completed - sending=false; + // a full round of color packets completed, reset packets to 0 + packets_sent=0; } } } @@ -161,9 +159,8 @@ static void send_initial(uint8_t dev_addr) { if (tuh_hid_set_report(dev_addr, 0, 0, HID_REPORT_TYPE_FEATURE, buf, BUF_SIZE)) { - // we have begun sending packets, so set flag to continue sending - // packets at regular intervals - sending = true; + // we have begun sending packets, so indicate first packet was sent + // remaining packets will be sent at regular intervals packets_sent=1; } } diff --git a/hyperx_elite2.h b/hyperx_elite2.h index f5a30b6..755550b 100644 --- a/hyperx_elite2.h +++ b/hyperx_elite2.h @@ -6,14 +6,11 @@ #define LDR_OFF_THRESHOLD 500 #define LDR_ON_THRESHOLD 400 -enum -{ - HYPERX_KEYBOARD_VID = 0x0951, - HYPERX_ELITE2_PID = 0x1711, - NUM_KEYS = 128, - BUF_SIZE = 64, - NUM_PACKETS = 10, -}; +#define HYPERX_KEYBOARD_VID 0x0951 +#define HYPERX_ELITE2_PID 0x1711 +#define NUM_KEYS 128 +#define BUF_SIZE 64 +#define NUM_PACKETS 10 void get_light(); void rgb_task(uint8_t dev_addr); diff --git a/usb_device.c b/usb_device.c index 0ce47bb..4aa0873 100644 --- a/usb_device.c +++ b/usb_device.c @@ -73,7 +73,7 @@ void usb_device_main(void) { break; case DEVICE_RESTART: if (tud_disconnect()) { - sleep_ms(100); + sleep_ms(10); if (tud_connect()) { if ( host_state == HOST_INACTIVE ) { device_state = DEVICE_INACTIVE; diff --git a/usb_host.c b/usb_host.c index ee005df..4e28179 100644 --- a/usb_host.c +++ b/usb_host.c @@ -16,7 +16,6 @@ host_state_t host_state; struct report_desc *descriptors; uint8_t num_mounted=0; static absolute_time_t request_time; -static struct report_data *report; static bool enabled=false; static uint8_t kb_addr=0; @@ -91,7 +90,7 @@ void tuh_hid_mount_cb(uint8_t dev_addr, uint8_t instance, uint8_t const* desc_re cdc_count = sprintf(cdc_buf, "Mount: [%04x:%04x][%u:%u] Protocol = %u\n", vid, pid, dev_addr, instance, itf_protocol); tud_cdc_write(cdc_buf, cdc_count); - + // enable RGB control if HyperX Elite 2 is mounted if (vid==HYPERX_KEYBOARD_VID && pid==HYPERX_ELITE2_PID) { kb_addr = dev_addr; enabled = true; @@ -119,6 +118,7 @@ void tuh_hid_umount_cb(uint8_t dev_addr, uint8_t instance) remove_instance(dev_addr, instance); if (dev_addr == kb_addr) { enabled = false; + kb_addr=0; } num_mounted--; host_state=HOST_UNMOUNTED; diff --git a/usb_host.h b/usb_host.h index b37dba3..5137902 100644 --- a/usb_host.h +++ b/usb_host.h @@ -23,15 +23,7 @@ struct report_desc { bool listening; }; -struct report_data { - uint8_t dev_addr; - uint8_t instance; - uint8_t report[REPORT_MAX_SIZE]; - uint16_t len; -}; - #define REPORT_DESC_ALLOC() (struct report_desc *)malloc(sizeof(struct report_desc)) -#define REPORT_DATA_ALLOC() (struct report_data *)malloc(sizeof(struct report_data)) extern host_state_t host_state; extern struct report_desc *descriptors;