forked from mirrors/qmk_userspace
Various improvements for the AnnePro2 (#16579)
This commit is contained in:
parent
6ab5a7d048
commit
dc67fd9b87
19 changed files with 526 additions and 304 deletions
|
@ -35,47 +35,47 @@ static host_driver_t ap2_ble_driver = {
|
|||
ap2_ble_leds, ap2_ble_keyboard, ap2_ble_mouse, ap2_ble_system, ap2_ble_consumer,
|
||||
};
|
||||
|
||||
static uint8_t bleMcuWakeup[11] = {0x7b, 0x12, 0x53, 0x00, 0x03, 0x00, 0x01, 0x7d, 0x02, 0x01, 0x02};
|
||||
static uint8_t ble_mcu_wakeup[11] = {0x7b, 0x12, 0x53, 0x00, 0x03, 0x00, 0x01, 0x7d, 0x02, 0x01, 0x02};
|
||||
|
||||
static uint8_t bleMcuStartBroadcast[11] = {
|
||||
static uint8_t ble_mcu_start_broadcast[11] = {
|
||||
0x7b, 0x12, 0x53, 0x00, 0x03, 0x00, 0x00, 0x7d, 0x40, 0x01, 0x00 // Broadcast ID[0-3]
|
||||
};
|
||||
|
||||
static uint8_t bleMcuConnect[11] = {
|
||||
static uint8_t ble_mcu_connect[11] = {
|
||||
0x7b, 0x12, 0x53, 0x00, 0x03, 0x00, 0x00, 0x7d, 0x40, 0x04, 0x00 // Connect ID [0-3]
|
||||
};
|
||||
|
||||
static uint8_t bleMcuSendReport[10] = {
|
||||
static uint8_t ble_mcu_send_report[10] = {
|
||||
0x7b, 0x12, 0x53, 0x00, 0x0A, 0x00, 0x00, 0x7d, 0x10, 0x04,
|
||||
};
|
||||
|
||||
static uint8_t bleMcuSendConsumerReport[10] = {
|
||||
static uint8_t ble_mcu_send_consumer_report[10] = {
|
||||
0x7b, 0x12, 0x53, 0x00, 0x06, 0x00, 0x00, 0x7d, 0x10, 0x08,
|
||||
};
|
||||
|
||||
static uint8_t bleMcuUnpair[10] = {
|
||||
static uint8_t ble_mcu_unpair[10] = {
|
||||
0x7b, 0x12, 0x53, 0x00, 0x02, 0x00, 0x00, 0x7d, 0x40, 0x05,
|
||||
};
|
||||
|
||||
static uint8_t bleMcuBootload[11] = {0x7b, 0x10, 0x51, 0x10, 0x03, 0x00, 0x00, 0x7d, 0x02, 0x01, 0x01};
|
||||
static uint8_t ble_mcu_bootload[11] = {0x7b, 0x10, 0x51, 0x10, 0x03, 0x00, 0x00, 0x7d, 0x02, 0x01, 0x01};
|
||||
|
||||
static host_driver_t *lastHostDriver = NULL;
|
||||
static host_driver_t *last_host_driver = NULL;
|
||||
#ifdef NKRO_ENABLE
|
||||
static bool lastNkroStatus = false;
|
||||
#endif // NKRO_ENABLE
|
||||
|
||||
/* -------------------- Public Function Implementation ---------------------- */
|
||||
|
||||
void annepro2_ble_bootload(void) { sdWrite(&SD1, bleMcuBootload, sizeof(bleMcuBootload)); }
|
||||
void annepro2_ble_bootload(void) { sdWrite(&SD1, ble_mcu_bootload, sizeof(ble_mcu_bootload)); }
|
||||
|
||||
void annepro2_ble_startup(void) { sdWrite(&SD1, bleMcuWakeup, sizeof(bleMcuWakeup)); }
|
||||
void annepro2_ble_startup(void) { sdWrite(&SD1, ble_mcu_wakeup, sizeof(ble_mcu_wakeup)); }
|
||||
|
||||
void annepro2_ble_broadcast(uint8_t port) {
|
||||
if (port > 3) {
|
||||
port = 3;
|
||||
}
|
||||
// sdPut(&SD1, 0x00);
|
||||
sdWrite(&SD1, bleMcuStartBroadcast, sizeof(bleMcuStartBroadcast));
|
||||
sdWrite(&SD1, ble_mcu_start_broadcast, sizeof(ble_mcu_start_broadcast));
|
||||
sdPut(&SD1, port);
|
||||
static int lastBroadcast = -1;
|
||||
if (lastBroadcast == port) {
|
||||
|
@ -88,7 +88,7 @@ void annepro2_ble_connect(uint8_t port) {
|
|||
if (port > 3) {
|
||||
port = 3;
|
||||
}
|
||||
sdWrite(&SD1, bleMcuConnect, sizeof(bleMcuConnect));
|
||||
sdWrite(&SD1, ble_mcu_connect, sizeof(ble_mcu_connect));
|
||||
sdPut(&SD1, port);
|
||||
ap2_ble_swtich_ble_driver();
|
||||
}
|
||||
|
@ -103,12 +103,12 @@ void annepro2_ble_disconnect(void) {
|
|||
#ifdef NKRO_ENABLE
|
||||
keymap_config.nkro = lastNkroStatus;
|
||||
#endif
|
||||
host_set_driver(lastHostDriver);
|
||||
host_set_driver(last_host_driver);
|
||||
}
|
||||
|
||||
void annepro2_ble_unpair(void) {
|
||||
// sdPut(&SD1, 0x0);
|
||||
sdWrite(&SD1, bleMcuUnpair, sizeof(bleMcuUnpair));
|
||||
sdWrite(&SD1, ble_mcu_unpair, sizeof(ble_mcu_unpair));
|
||||
}
|
||||
|
||||
/* ------------------- Static Function Implementation ----------------------- */
|
||||
|
@ -117,7 +117,7 @@ static void ap2_ble_swtich_ble_driver(void) {
|
|||
return;
|
||||
}
|
||||
clear_keyboard();
|
||||
lastHostDriver = host_get_driver();
|
||||
last_host_driver = host_get_driver();
|
||||
#ifdef NKRO_ENABLE
|
||||
lastNkroStatus = keymap_config.nkro;
|
||||
#endif
|
||||
|
@ -154,7 +154,7 @@ static inline uint16_t CONSUMER2AP2(uint16_t usage) {
|
|||
|
||||
static void ap2_ble_consumer(uint16_t data) {
|
||||
sdPut(&SD1, 0x0);
|
||||
sdWrite(&SD1, bleMcuSendConsumerReport, sizeof(bleMcuSendConsumerReport));
|
||||
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));
|
||||
|
@ -165,6 +165,6 @@ static void ap2_ble_consumer(uint16_t data) {
|
|||
*/
|
||||
static void ap2_ble_keyboard(report_keyboard_t *report) {
|
||||
sdPut(&SD1, 0x0);
|
||||
sdWrite(&SD1, bleMcuSendReport, sizeof(bleMcuSendReport));
|
||||
sdWrite(&SD1, ble_mcu_send_report, sizeof(ble_mcu_send_report));
|
||||
sdWrite(&SD1, &report->raw[0], KEYBOARD_REPORT_SIZE);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue