aboutsummaryrefslogtreecommitdiff
path: root/tmk_core/protocol/lufa/lufa.c
diff options
context:
space:
mode:
authorTravis La Marr <exiva@exiva.net>2017-03-24 12:53:55 -0400
committerTravis La Marr <exiva@exiva.net>2017-03-24 12:53:55 -0400
commitddc036b69ea508750f5129d9a43fee484148716a (patch)
tree24cb80061dfa59b0fe81a73bd987c228571aad80 /tmk_core/protocol/lufa/lufa.c
parent7a9437a2e3a2597e8eef1ea293bfb3c394f588b9 (diff)
downloadqmk_firmware-ddc036b69ea508750f5129d9a43fee484148716a.tar.gz
qmk_firmware-ddc036b69ea508750f5129d9a43fee484148716a.zip
Refactor Bluetooth Handling
Refactored Bluetooth support to make adding new Bluetooth modules easier in the future. * Remove `OUT_BLE` key from QMK's keymap. `OUT_BT` is all we need now as there's no difference anymore. * Made BLUETOOTH_ENABLE build option legacy as not to break existing keymaps (Falls back to existing EZ Key support if on) * Removed `ADAFRUIT_BLE_ENABLE` build option * Created new build option `BLUETOOTH` with module option (Currently `AdafruitEZKey` & `AdafruitBLE`) * Moved all LUFA bluetooth key/mouse events under `BLUETOOTH_ENABLE` ifdef with selected modules output.
Diffstat (limited to 'tmk_core/protocol/lufa/lufa.c')
-rw-r--r--tmk_core/protocol/lufa/lufa.c77
1 files changed, 35 insertions, 42 deletions
diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c
index ba49284c9..d71748ce3 100644
--- a/tmk_core/protocol/lufa/lufa.c
+++ b/tmk_core/protocol/lufa/lufa.c
@@ -67,10 +67,11 @@
67#endif 67#endif
68 68
69#ifdef BLUETOOTH_ENABLE 69#ifdef BLUETOOTH_ENABLE
70 #include "bluetooth.h" 70 #ifdef MODULE_ADAFRUIT_BLE
71#endif
72#ifdef ADAFRUIT_BLE_ENABLE
73 #include "adafruit_ble.h" 71 #include "adafruit_ble.h"
72 #else
73 #include "bluetooth.h"
74 #endif
74#endif 75#endif
75 76
76#ifdef VIRTSER_ENABLE 77#ifdef VIRTSER_ENABLE
@@ -602,18 +603,14 @@ static void send_keyboard(report_keyboard_t *report)
602 uint8_t where = where_to_send(); 603 uint8_t where = where_to_send();
603 604
604#ifdef BLUETOOTH_ENABLE 605#ifdef BLUETOOTH_ENABLE
605 if (where == OUTPUT_BLUETOOTH || where == OUTPUT_USB_AND_BT) { 606 #ifdef MODULE_ADAFRUIT_BLE
606 bluefruit_serial_send(0xFD); 607 adafruit_ble_send_keys(report->mods, report->keys, sizeof(report->keys));
607 for (uint8_t i = 0; i < KEYBOARD_EPSIZE; i++) { 608 #else
608 bluefruit_serial_send(report->raw[i]); 609 bluefruit_serial_send(0xFD);
609 } 610 for (uint8_t i = 0; i < KEYBOARD_EPSIZE; i++) {
610 } 611 bluefruit_serial_send(report->raw[i]);
611#endif
612
613#ifdef ADAFRUIT_BLE_ENABLE
614 if (where == OUTPUT_ADAFRUIT_BLE) {
615 adafruit_ble_send_keys(report->mods, report->keys, sizeof(report->keys));
616 } 612 }
613 #endif
617#endif 614#endif
618 615
619 if (where != OUTPUT_USB && where != OUTPUT_USB_AND_BT) { 616 if (where != OUTPUT_USB && where != OUTPUT_USB_AND_BT) {
@@ -660,24 +657,22 @@ static void send_mouse(report_mouse_t *report)
660 uint8_t where = where_to_send(); 657 uint8_t where = where_to_send();
661 658
662#ifdef BLUETOOTH_ENABLE 659#ifdef BLUETOOTH_ENABLE
663 if (where == OUTPUT_BLUETOOTH || where == OUTPUT_USB_AND_BT) { 660 if (where == OUTPUT_BLUETOOTH || where == OUTPUT_USB_AND_BT) {
664 bluefruit_serial_send(0xFD); 661 #ifdef MODULE_ADAFRUIT_BLE
665 bluefruit_serial_send(0x00);
666 bluefruit_serial_send(0x03);
667 bluefruit_serial_send(report->buttons);
668 bluefruit_serial_send(report->x);
669 bluefruit_serial_send(report->y);
670 bluefruit_serial_send(report->v); // should try sending the wheel v here
671 bluefruit_serial_send(report->h); // should try sending the wheel h here
672 bluefruit_serial_send(0x00);
673 }
674#endif
675
676#ifdef ADAFRUIT_BLE_ENABLE
677 if (where == OUTPUT_ADAFRUIT_BLE) {
678 // FIXME: mouse buttons 662 // FIXME: mouse buttons
679 adafruit_ble_send_mouse_move(report->x, report->y, report->v, report->h); 663 adafruit_ble_send_mouse_move(report->x, report->y, report->v, report->h);
680 } 664 #else
665 bluefruit_serial_send(0xFD);
666 bluefruit_serial_send(0x00);
667 bluefruit_serial_send(0x03);
668 bluefruit_serial_send(report->buttons);
669 bluefruit_serial_send(report->x);
670 bluefruit_serial_send(report->y);
671 bluefruit_serial_send(report->v); // should try sending the wheel v here
672 bluefruit_serial_send(report->h); // should try sending the wheel h here
673 bluefruit_serial_send(0x00);
674 #endif
675 }
681#endif 676#endif
682 677
683 if (where != OUTPUT_USB && where != OUTPUT_USB_AND_BT) { 678 if (where != OUTPUT_USB && where != OUTPUT_USB_AND_BT) {
@@ -727,6 +722,9 @@ static void send_consumer(uint16_t data)
727 722
728#ifdef BLUETOOTH_ENABLE 723#ifdef BLUETOOTH_ENABLE
729 if (where == OUTPUT_BLUETOOTH || where == OUTPUT_USB_AND_BT) { 724 if (where == OUTPUT_BLUETOOTH || where == OUTPUT_USB_AND_BT) {
725 #ifdef MODULE_ADAFRUIT_BLE
726 adafruit_ble_send_consumer_key(data, 0);
727 #else
730 static uint16_t last_data = 0; 728 static uint16_t last_data = 0;
731 if (data == last_data) return; 729 if (data == last_data) return;
732 last_data = data; 730 last_data = data;
@@ -740,12 +738,7 @@ static void send_consumer(uint16_t data)
740 bluefruit_serial_send(0x00); 738 bluefruit_serial_send(0x00);
741 bluefruit_serial_send(0x00); 739 bluefruit_serial_send(0x00);
742 bluefruit_serial_send(0x00); 740 bluefruit_serial_send(0x00);
743 } 741 #endif
744#endif
745
746#ifdef ADAFRUIT_BLE_ENABLE
747 if (where == OUTPUT_ADAFRUIT_BLE) {
748 adafruit_ble_send_consumer_key(data, 0);
749 } 742 }
750#endif 743#endif
751 744
@@ -1130,10 +1123,6 @@ int main(void)
1130 // midi_send_noteoff(&midi_device, 0, 64, 127); 1123 // midi_send_noteoff(&midi_device, 0, 64, 127);
1131#endif 1124#endif
1132 1125
1133#ifdef BLUETOOTH_ENABLE
1134 serial_init();
1135#endif
1136
1137 /* wait for USB startup & debug output */ 1126 /* wait for USB startup & debug output */
1138 1127
1139#ifdef WAIT_FOR_USB 1128#ifdef WAIT_FOR_USB
@@ -1161,7 +1150,7 @@ int main(void)
1161 1150
1162 print("Keyboard start.\n"); 1151 print("Keyboard start.\n");
1163 while (1) { 1152 while (1) {
1164 #if !defined(BLUETOOTH_ENABLE) && !defined(ADAFRUIT_BLE_ENABLE) 1153 #if !defined(BLUETOOTH_ENABLE)
1165 while (USB_DeviceState == DEVICE_STATE_Suspended) { 1154 while (USB_DeviceState == DEVICE_STATE_Suspended) {
1166 print("[s]"); 1155 print("[s]");
1167 suspend_power_down(); 1156 suspend_power_down();
@@ -1182,7 +1171,11 @@ int main(void)
1182 rgblight_task(); 1171 rgblight_task();
1183#endif 1172#endif
1184 1173
1185#ifdef ADAFRUIT_BLE_ENABLE 1174#ifdef MODULE_ADAFRUIT_EZKEY
1175 serial_init();
1176#endif
1177
1178#ifdef MODULE_ADAFRUIT_BLE
1186 adafruit_ble_task(); 1179 adafruit_ble_task();
1187#endif 1180#endif
1188 1181