aboutsummaryrefslogtreecommitdiff
path: root/tmk_core/protocol/lufa/lufa.c
diff options
context:
space:
mode:
authorfauxpark <fauxpark@gmail.com>2020-02-03 07:17:05 +1100
committerGitHub <noreply@github.com>2020-02-02 12:17:05 -0800
commitb2ce2f8a34fba72e4b4ac2fba0ec11431b0acb0c (patch)
tree58494d6dd519ac3b87b431188bd9b0e1b14befae /tmk_core/protocol/lufa/lufa.c
parent5b91c3e0a0dc8152f69130cf047f3df0d0f94421 (diff)
downloadqmk_firmware-b2ce2f8a34fba72e4b4ac2fba0ec11431b0acb0c.tar.gz
qmk_firmware-b2ce2f8a34fba72e4b4ac2fba0ec11431b0acb0c.zip
Dedupe extrakey report struct, and send functions in V-USB & LUFA (#7993)
* Dedupe extrakey report struct, and send functions in V-USB & LUFA * Doc comment for consistency * Wrap it in ifdef to prevent unused function error * Do the same for ATSAM
Diffstat (limited to 'tmk_core/protocol/lufa/lufa.c')
-rw-r--r--tmk_core/protocol/lufa/lufa.c27
1 files changed, 14 insertions, 13 deletions
diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c
index db66a0722..792db4340 100644
--- a/tmk_core/protocol/lufa/lufa.c
+++ b/tmk_core/protocol/lufa/lufa.c
@@ -662,17 +662,17 @@ static void send_mouse(report_mouse_t *report) {
662#endif 662#endif
663} 663}
664 664
665/** \brief Send System 665/** \brief Send Extra
666 * 666 *
667 * FIXME: Needs doc 667 * FIXME: Needs doc
668 */ 668 */
669static void send_system(uint16_t data) {
670#ifdef EXTRAKEY_ENABLE 669#ifdef EXTRAKEY_ENABLE
670static void send_extra(uint8_t report_id, uint16_t data) {
671 uint8_t timeout = 255; 671 uint8_t timeout = 255;
672 672
673 if (USB_DeviceState != DEVICE_STATE_Configured) return; 673 if (USB_DeviceState != DEVICE_STATE_Configured) return;
674 674
675 report_extra_t r = {.report_id = REPORT_ID_SYSTEM, .usage = data - SYSTEM_POWER_DOWN + 1}; 675 report_extra_t r = {.report_id = report_id, .usage = data};
676 Endpoint_SelectEndpoint(SHARED_IN_EPNUM); 676 Endpoint_SelectEndpoint(SHARED_IN_EPNUM);
677 677
678 /* Check if write ready for a polling interval around 10ms */ 678 /* Check if write ready for a polling interval around 10ms */
@@ -681,6 +681,16 @@ static void send_system(uint16_t data) {
681 681
682 Endpoint_Write_Stream_LE(&r, sizeof(report_extra_t), NULL); 682 Endpoint_Write_Stream_LE(&r, sizeof(report_extra_t), NULL);
683 Endpoint_ClearIN(); 683 Endpoint_ClearIN();
684}
685#endif
686
687/** \brief Send System
688 *
689 * FIXME: Needs doc
690 */
691static void send_system(uint16_t data) {
692#ifdef EXTRAKEY_ENABLE
693 send_extra(REPORT_ID_SYSTEM, data - SYSTEM_POWER_DOWN + 1);
684#endif 694#endif
685} 695}
686 696
@@ -690,7 +700,6 @@ static void send_system(uint16_t data) {
690 */ 700 */
691static void send_consumer(uint16_t data) { 701static void send_consumer(uint16_t data) {
692#ifdef EXTRAKEY_ENABLE 702#ifdef EXTRAKEY_ENABLE
693 uint8_t timeout = 255;
694 uint8_t where = where_to_send(); 703 uint8_t where = where_to_send();
695 704
696# ifdef BLUETOOTH_ENABLE 705# ifdef BLUETOOTH_ENABLE
@@ -729,15 +738,7 @@ static void send_consumer(uint16_t data) {
729 return; 738 return;
730 } 739 }
731 740
732 report_extra_t r = {.report_id = REPORT_ID_CONSUMER, .usage = data}; 741 send_extra(REPORT_ID_CONSUMER, data);
733 Endpoint_SelectEndpoint(SHARED_IN_EPNUM);
734
735 /* Check if write ready for a polling interval around 10ms */
736 while (timeout-- && !Endpoint_IsReadWriteAllowed()) _delay_us(40);
737 if (!Endpoint_IsReadWriteAllowed()) return;
738
739 Endpoint_Write_Stream_LE(&r, sizeof(report_extra_t), NULL);
740 Endpoint_ClearIN();
741#endif 742#endif
742} 743}
743 744