diff options
author | Ryan <fauxpark@gmail.com> | 2022-09-03 05:38:27 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-02 20:38:27 +0100 |
commit | 09d668eb0ed3ff6fa48ce1db98910b022bca2d90 (patch) | |
tree | da13eca69e7e24e439c4bccdd1296fc4de212085 /keyboards | |
parent | 0ceaaaae8e71f4713d232ac1b657906f4a45833f (diff) |
Simplify extrakeys sending at the host driver level (#18230)
* Simplify extrakeys sending at the host driver level
* There are two arguments here
* Wrong syntax
* Adjust keyboards which use a custom host driver
Diffstat (limited to 'keyboards')
-rw-r--r-- | keyboards/annepro2/annepro2_ble.c | 21 | ||||
-rw-r--r-- | keyboards/bioi/ble.c | 47 | ||||
-rw-r--r-- | keyboards/hhkb/rn42/rn42.c | 38 |
3 files changed, 47 insertions, 59 deletions
diff --git a/keyboards/annepro2/annepro2_ble.c b/keyboards/annepro2/annepro2_ble.c index 0336d6a76c..c75de6720c 100644 --- a/keyboards/annepro2/annepro2_ble.c +++ b/keyboards/annepro2/annepro2_ble.c @@ -24,15 +24,14 @@ /* -------------------- Static Function Prototypes -------------------------- */ static uint8_t ap2_ble_leds(void); static void ap2_ble_mouse(report_mouse_t *report); -static void ap2_ble_system(uint16_t data); -static void ap2_ble_consumer(uint16_t data); +static void ap2_ble_extra(uint8_t report_id, uint16_t data); static void ap2_ble_keyboard(report_keyboard_t *report); static void ap2_ble_swtich_ble_driver(void); /* -------------------- Static Local Variables ------------------------------ */ static host_driver_t ap2_ble_driver = { - ap2_ble_leds, ap2_ble_keyboard, ap2_ble_mouse, ap2_ble_system, ap2_ble_consumer, + ap2_ble_leds, ap2_ble_keyboard, ap2_ble_mouse, ap2_ble_extra }; static uint8_t ble_mcu_wakeup[11] = {0x7b, 0x12, 0x53, 0x00, 0x03, 0x00, 0x01, 0x7d, 0x02, 0x01, 0x02}; @@ -131,8 +130,6 @@ static uint8_t ap2_ble_leds(void) { static void ap2_ble_mouse(report_mouse_t *report) {} -static void ap2_ble_system(uint16_t data) {} - static inline uint16_t CONSUMER2AP2(uint16_t usage) { switch (usage) { case AUDIO_VOL_DOWN: @@ -152,12 +149,14 @@ static inline uint16_t CONSUMER2AP2(uint16_t usage) { } } -static void ap2_ble_consumer(uint16_t data) { - sdPut(&SD1, 0x0); - sdWrite(&SD1, ble_mcu_send_consumer_report, sizeof(ble_mcu_send_consumer_report)); - sdPut(&SD1, CONSUMER2AP2(data)); - static const uint8_t dummy[3] = {0}; - sdWrite(&SD1, dummy, sizeof(dummy)); +static void ap2_ble_extra(uint8_t report_id, uint16_t data) { + if (report_id == REPORT_ID_CONSUMER) { + sdPut(&SD1, 0x0); + sdWrite(&SD1, ble_mcu_send_consumer_report, sizeof(ble_mcu_send_consumer_report)); + sdPut(&SD1, CONSUMER2AP2(data)); + static const uint8_t dummy[3] = {0}; + sdWrite(&SD1, dummy, sizeof(dummy)); + } } /*! diff --git a/keyboards/bioi/ble.c b/keyboards/bioi/ble.c index d941f7c43d..b050b2f6cb 100644 --- a/keyboards/bioi/ble.c +++ b/keyboards/bioi/ble.c @@ -96,15 +96,14 @@ static void bluefruit_serial_send(uint8_t data) static uint8_t keyboard_leds(void); static void send_keyboard(report_keyboard_t *report); static void send_mouse(report_mouse_t *report); -static void send_system(uint16_t data); -static void send_consumer(uint16_t data); +static void send_extra(uint8_t report_id, uint16_t data); host_driver_t bluefruit_driver = { keyboard_leds, send_keyboard, send_mouse, - send_system, - send_consumer}; + send_extra +}; host_driver_t null_driver = {}; @@ -156,10 +155,6 @@ static void send_mouse(report_mouse_t *report) #endif } -static void send_system(uint16_t data) -{ -} - /* +-----------------+-------------------+-------+ | Consumer Key | Bit Map | Hex | @@ -182,30 +177,32 @@ static void send_system(uint16_t data) #define CONSUMER2BLUEFRUIT(usage) \ (usage == AUDIO_MUTE ? 0x00e2 : (usage == AUDIO_VOL_UP ? 0x00e9 : (usage == AUDIO_VOL_DOWN ? 0x00ea : (usage == TRANSPORT_NEXT_TRACK ? 0x00b5 : (usage == TRANSPORT_PREV_TRACK ? 0x00b6 : (usage == TRANSPORT_STOP ? 0x00b7 : (usage == TRANSPORT_STOP_EJECT ? 0x00b8 : (usage == TRANSPORT_PLAY_PAUSE ? 0x00b1 : (usage == AL_CC_CONFIG ? 0x0183 : (usage == AL_EMAIL ? 0x018c : (usage == AL_CALCULATOR ? 0x0192 : (usage == AL_LOCAL_BROWSER ? 0x0196 : (usage == AC_SEARCH ? 0x021f : (usage == AC_HOME ? 0x0223 : (usage == AC_BACK ? 0x0224 : (usage == AC_FORWARD ? 0x0225 : (usage == AC_STOP ? 0x0226 : (usage == AC_REFRESH ? 0x0227 : (usage == AC_BOOKMARKS ? 0x022a : 0))))))))))))))))))) -static void send_consumer(uint16_t data) +static void send_extra(uint8_t report_id, uint16_t data) { - static uint16_t last_data = 0; - if (data == last_data) - return; - last_data = data; + if (report_id == REPORT_ID_CONSUMER) { + static uint16_t last_data = 0; + if (data == last_data) + return; + last_data = data; - uint16_t bitmap = CONSUMER2BLUEFRUIT(data); + uint16_t bitmap = CONSUMER2BLUEFRUIT(data); #ifdef BLUEFRUIT_TRACE_SERIAL - dprintf("\nData: "); - debug_hex16(data); - dprintf("; bitmap: "); - debug_hex16(bitmap); - dprintf("\n"); - bluefruit_trace_header(); + dprintf("\nData: "); + debug_hex16(data); + dprintf("; bitmap: "); + debug_hex16(bitmap); + dprintf("\n"); + bluefruit_trace_header(); #endif - send_str(PSTR("AT+BLEHIDCONTROLKEY=0x")); - send_bytes((bitmap >> 8) & 0xFF); - send_bytes(bitmap & 0xFF); - send_str(PSTR("\r\n")); + send_str(PSTR("AT+BLEHIDCONTROLKEY=0x")); + send_bytes((bitmap >> 8) & 0xFF); + send_bytes(bitmap & 0xFF); + send_str(PSTR("\r\n")); #ifdef BLUEFRUIT_TRACE_SERIAL - bluefruit_trace_footer(); + bluefruit_trace_footer(); #endif + } } void usart_init(void) diff --git a/keyboards/hhkb/rn42/rn42.c b/keyboards/hhkb/rn42/rn42.c index 06665425ce..b35b319352 100644 --- a/keyboards/hhkb/rn42/rn42.c +++ b/keyboards/hhkb/rn42/rn42.c @@ -12,15 +12,13 @@ static uint8_t keyboard_leds(void); static void send_keyboard(report_keyboard_t *report); static void send_mouse(report_mouse_t *report); -static void send_system(uint16_t data); -static void send_consumer(uint16_t data); +static void send_extra(uint8_t report_id, uint16_t data); host_driver_t rn42_driver = { keyboard_leds, send_keyboard, send_mouse, - send_system, - send_consumer + send_extra }; @@ -198,12 +196,6 @@ static void send_mouse(report_mouse_t *report) serial_send(report->v); } -static void send_system(uint16_t data) -{ - // Table 5-6 of RN-BT-DATA-UB - // 81,82,83 scan codes can be used? -} - static uint16_t usage2bits(uint16_t usage) { @@ -228,14 +220,17 @@ static uint16_t usage2bits(uint16_t usage) return 0; } -static void send_consumer(uint16_t data) + +static void send_extra(uint8_t report_id, uint16_t data) { - uint16_t bits = usage2bits(data); - serial_send(0xFD); // Raw report mode - serial_send(3); // length - serial_send(3); // descriptor type - serial_send(bits&0xFF); - serial_send((bits>>8)&0xFF); + if (report_id == REPORT_ID_CONSUMER) { + uint16_t bits = usage2bits(data); + serial_send(0xFD); // Raw report mode + serial_send(3); // length + serial_send(3); // descriptor type + serial_send(bits&0xFF); + serial_send((bits>>8)&0xFF); + } } @@ -243,19 +238,16 @@ static void send_consumer(uint16_t data) static uint8_t config_keyboard_leds(void); static void config_send_keyboard(report_keyboard_t *report); static void config_send_mouse(report_mouse_t *report); -static void config_send_system(uint16_t data); -static void config_send_consumer(uint16_t data); +static void config_send_extra(uint8_t report_id, uint16_t data); host_driver_t rn42_config_driver = { config_keyboard_leds, config_send_keyboard, config_send_mouse, - config_send_system, - config_send_consumer + config_send_extra }; static uint8_t config_keyboard_leds(void) { return leds; } static void config_send_keyboard(report_keyboard_t *report) {} static void config_send_mouse(report_mouse_t *report) {} -static void config_send_system(uint16_t data) {} -static void config_send_consumer(uint16_t data) {} +static void config_send_extra(uint8_t report_id, uint16_t data) {} |