summaryrefslogtreecommitdiffstats
path: root/keyboards/adafruit/macropad/macropad.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/adafruit/macropad/macropad.c')
-rw-r--r--keyboards/adafruit/macropad/macropad.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/keyboards/adafruit/macropad/macropad.c b/keyboards/adafruit/macropad/macropad.c
index 819b5067d8..6661e43909 100644
--- a/keyboards/adafruit/macropad/macropad.c
+++ b/keyboards/adafruit/macropad/macropad.c
@@ -40,3 +40,28 @@ led_config_t g_led_config = { {
} };
#endif
+
+#ifdef AUDIO_ENABLE
+void keyboard_pre_init_kb(void) {
+ // ensure pin is set and enabled pre-audio init
+ setPinOutput(SPEAKER_SHUTDOWN);
+ writePinHigh(SPEAKER_SHUTDOWN);
+ keyboard_pre_init_user();
+}
+
+void keyboard_post_init_kb(void) {
+ // set pin based on active status
+ writePin(SPEAKER_SHUTDOWN, audio_is_on());
+ keyboard_post_init_user();
+}
+
+void audio_on_user(void) {
+ writePinHigh(SPEAKER_SHUTDOWN);
+}
+
+void audio_off_user(void) {
+ // needs a delay or it runs right after play note.
+ wait_ms(200);
+ writePinLow(SPEAKER_SHUTDOWN);
+}
+#endif