summaryrefslogtreecommitdiffstats
path: root/tmk_core/protocol/arm_atsam
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/arm_atsam
parent5b91c3e0a0dc8152f69130cf047f3df0d0f94421 (diff)
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/arm_atsam')
-rw-r--r--tmk_core/protocol/arm_atsam/main_arm_atsam.c26
1 files changed, 10 insertions, 16 deletions
diff --git a/tmk_core/protocol/arm_atsam/main_arm_atsam.c b/tmk_core/protocol/arm_atsam/main_arm_atsam.c
index a42d9daf38..e15d51a263 100644
--- a/tmk_core/protocol/arm_atsam/main_arm_atsam.c
+++ b/tmk_core/protocol/arm_atsam/main_arm_atsam.c
@@ -110,40 +110,34 @@ void send_mouse(report_mouse_t *report) {
#endif // MOUSEKEY_ENABLE
}
-void send_system(uint16_t data) {
#ifdef EXTRAKEY_ENABLE
+void send_extra(uint8_t report_id, uint16_t data) {
uint32_t irqflags;
irqflags = __get_PRIMASK();
__disable_irq();
__DMB();
- udi_hid_exk_report.desc.report_id = REPORT_ID_SYSTEM;
- if (data != 0) data = data - SYSTEM_POWER_DOWN + 1;
+ udi_hid_exk_report.desc.report_id = report_id;
udi_hid_exk_report.desc.report_data = data;
udi_hid_exk_b_report_valid = 1;
udi_hid_exk_send_report();
__DMB();
__set_PRIMASK(irqflags);
+}
+#endif // EXTRAKEY_ENABLE
+
+void send_system(uint16_t data) {
+#ifdef EXTRAKEY_ENABLE
+ if (data != 0) data = data - SYSTEM_POWER_DOWN + 1;
+ send_extra(REPORT_ID_SYSTEM, data);
#endif // EXTRAKEY_ENABLE
}
void send_consumer(uint16_t data) {
#ifdef EXTRAKEY_ENABLE
- uint32_t irqflags;
-
- irqflags = __get_PRIMASK();
- __disable_irq();
- __DMB();
-
- udi_hid_exk_report.desc.report_id = REPORT_ID_CONSUMER;
- udi_hid_exk_report.desc.report_data = data;
- udi_hid_exk_b_report_valid = 1;
- udi_hid_exk_send_report();
-
- __DMB();
- __set_PRIMASK(irqflags);
+ send_extra(REPORT_ID_CONSUMER, data);
#endif // EXTRAKEY_ENABLE
}