소스 검색

Notes Bugfix

IBNobody 9 년 전
부모
커밋
ef73ab6628
2개의 변경된 파일33개의 추가작업 그리고 38개의 파일을 삭제
  1. 29 36
      keyboard/atomic/keymaps/pvc/keymap.c
  2. 4 2
      quantum/audio.c

+ 29 - 36
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;
 }
 
 

+ 4 - 2
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;