summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--keyboard/atomic/keymaps/pvc/keymap.c65
-rw-r--r--quantum/audio.c6
2 files changed, 33 insertions, 38 deletions
diff --git a/keyboard/atomic/keymaps/pvc/keymap.c b/keyboard/atomic/keymaps/pvc/keymap.c
index 563519e4c..f88d5117c 100644
--- a/keyboard/atomic/keymaps/pvc/keymap.c
+++ b/keyboard/atomic/keymaps/pvc/keymap.c
@@ -302,45 +302,38 @@ void matrix_init_user(void)
void led_set_user(uint8_t usb_led)
{
static uint8_t old_usb_led = 0;
- static bool first_run = true;
- // Skip first execution to avoid beeps caused by LED states being detected on power-up
- if (!first_run)
+ if ((usb_led & (1<<USB_LED_CAPS_LOCK)) && !(old_usb_led & (1<<USB_LED_CAPS_LOCK)))
{
-
- if ((usb_led & (1<<USB_LED_CAPS_LOCK)) && !(old_usb_led & (1<<USB_LED_CAPS_LOCK)))
- {
- // If CAPS LK LED is turning on...
- PLAY_NOTE_ARRAY(tone_caps_on, false, LEGATO);
- }
- else if (!(usb_led & (1<<USB_LED_CAPS_LOCK)) && (old_usb_led & (1<<USB_LED_CAPS_LOCK)))
- {
- // If CAPS LK LED is turning off...
- PLAY_NOTE_ARRAY(tone_caps_off, false, LEGATO);
- }
- else if ((usb_led & (1<<USB_LED_NUM_LOCK)) && !(old_usb_led & (1<<USB_LED_NUM_LOCK)))
- {
- // If NUM LK LED is turning on...
- PLAY_NOTE_ARRAY(tone_numlk_on, false, LEGATO);
- }
- else if (!(usb_led & (1<<USB_LED_NUM_LOCK)) && (old_usb_led & (1<<USB_LED_NUM_LOCK)))
- {
- // If NUM LED is turning off...
- PLAY_NOTE_ARRAY(tone_numlk_off, false, LEGATO);
- }
- else if ((usb_led & (1<<USB_LED_SCROLL_LOCK)) && !(old_usb_led & (1<<USB_LED_SCROLL_LOCK)))
- {
- // If SCROLL LK LED is turning on...
- PLAY_NOTE_ARRAY(tone_scroll_on, false, LEGATO);
- }
- else if (!(usb_led & (1<<USB_LED_SCROLL_LOCK)) && (old_usb_led & (1<<USB_LED_SCROLL_LOCK)))
- {
- // If SCROLL LED is turning off...
- PLAY_NOTE_ARRAY(tone_scroll_off, false, LEGATO);
- }
- }
+ // If CAPS LK LED is turning on...
+ PLAY_NOTE_ARRAY(tone_caps_on, false, LEGATO);
+ }
+ else if (!(usb_led & (1<<USB_LED_CAPS_LOCK)) && (old_usb_led & (1<<USB_LED_CAPS_LOCK)))
+ {
+ // If CAPS LK LED is turning off...
+ PLAY_NOTE_ARRAY(tone_caps_off, false, LEGATO);
+ }
+ else if ((usb_led & (1<<USB_LED_NUM_LOCK)) && !(old_usb_led & (1<<USB_LED_NUM_LOCK)))
+ {
+ // If NUM LK LED is turning on...
+ PLAY_NOTE_ARRAY(tone_numlk_on, false, LEGATO);
+ }
+ else if (!(usb_led & (1<<USB_LED_NUM_LOCK)) && (old_usb_led & (1<<USB_LED_NUM_LOCK)))
+ {
+ // If NUM LED is turning off...
+ PLAY_NOTE_ARRAY(tone_numlk_off, false, LEGATO);
+ }
+ else if ((usb_led & (1<<USB_LED_SCROLL_LOCK)) && !(old_usb_led & (1<<USB_LED_SCROLL_LOCK)))
+ {
+ // If SCROLL LK LED is turning on...
+ PLAY_NOTE_ARRAY(tone_scroll_on, false, LEGATO);
+ }
+ else if (!(usb_led & (1<<USB_LED_SCROLL_LOCK)) && (old_usb_led & (1<<USB_LED_SCROLL_LOCK)))
+ {
+ // If SCROLL LED is turning off...
+ PLAY_NOTE_ARRAY(tone_scroll_off, false, LEGATO);
+ }
old_usb_led = usb_led;
- first_run = false;
}
diff --git a/quantum/audio.c b/quantum/audio.c
index 602366973..ba85e418e 100644
--- a/quantum/audio.c
+++ b/quantum/audio.c
@@ -351,7 +351,8 @@ void play_notes(float (*np)[][2], uint8_t n_count, bool n_repeat, float n_rest)
if (audio_config.enable) {
- if (note || notes)
+ // Cancel note if a note is playing
+ if (note)
stop_all_notes();
notes_pointer = np;
@@ -406,7 +407,8 @@ void play_note(double freq, int vol) {
if (audio_config.enable && voices < 8) {
- if (note || notes)
+ // Cancel notes if notes are playing
+ if (notes)
stop_all_notes();
#ifdef PWM_AUDIO
freq = freq / SAMPLE_RATE;