Notes Bugfix

This commit is contained in:
IBNobody 2016-04-17 22:08:05 -05:00
parent 5c98ad5960
commit ef73ab6628
2 changed files with 33 additions and 38 deletions

View file

@ -302,45 +302,38 @@ void matrix_init_user(void)
void led_set_user(uint8_t usb_led) void led_set_user(uint8_t usb_led)
{ {
static uint8_t old_usb_led = 0; 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 ((usb_led & (1<<USB_LED_CAPS_LOCK)) && !(old_usb_led & (1<<USB_LED_CAPS_LOCK)))
if (!first_run)
{ {
// If CAPS LK LED is turning on...
if ((usb_led & (1<<USB_LED_CAPS_LOCK)) && !(old_usb_led & (1<<USB_LED_CAPS_LOCK))) PLAY_NOTE_ARRAY(tone_caps_on, false, LEGATO);
{ }
// If CAPS LK LED is turning on... else if (!(usb_led & (1<<USB_LED_CAPS_LOCK)) && (old_usb_led & (1<<USB_LED_CAPS_LOCK)))
PLAY_NOTE_ARRAY(tone_caps_on, false, LEGATO); {
} // If CAPS LK LED is turning off...
else if (!(usb_led & (1<<USB_LED_CAPS_LOCK)) && (old_usb_led & (1<<USB_LED_CAPS_LOCK))) PLAY_NOTE_ARRAY(tone_caps_off, false, LEGATO);
{ }
// If CAPS LK LED is turning off... else if ((usb_led & (1<<USB_LED_NUM_LOCK)) && !(old_usb_led & (1<<USB_LED_NUM_LOCK)))
PLAY_NOTE_ARRAY(tone_caps_off, false, LEGATO); {
} // If NUM LK LED is turning on...
else if ((usb_led & (1<<USB_LED_NUM_LOCK)) && !(old_usb_led & (1<<USB_LED_NUM_LOCK))) PLAY_NOTE_ARRAY(tone_numlk_on, false, LEGATO);
{ }
// If NUM LK LED is turning on... else if (!(usb_led & (1<<USB_LED_NUM_LOCK)) && (old_usb_led & (1<<USB_LED_NUM_LOCK)))
PLAY_NOTE_ARRAY(tone_numlk_on, false, LEGATO); {
} // If NUM LED is turning off...
else if (!(usb_led & (1<<USB_LED_NUM_LOCK)) && (old_usb_led & (1<<USB_LED_NUM_LOCK))) PLAY_NOTE_ARRAY(tone_numlk_off, false, LEGATO);
{ }
// If NUM LED is turning off... else if ((usb_led & (1<<USB_LED_SCROLL_LOCK)) && !(old_usb_led & (1<<USB_LED_SCROLL_LOCK)))
PLAY_NOTE_ARRAY(tone_numlk_off, false, LEGATO); {
} // If SCROLL LK LED is turning on...
else if ((usb_led & (1<<USB_LED_SCROLL_LOCK)) && !(old_usb_led & (1<<USB_LED_SCROLL_LOCK))) PLAY_NOTE_ARRAY(tone_scroll_on, false, LEGATO);
{ }
// If SCROLL LK LED is turning on... else if (!(usb_led & (1<<USB_LED_SCROLL_LOCK)) && (old_usb_led & (1<<USB_LED_SCROLL_LOCK)))
PLAY_NOTE_ARRAY(tone_scroll_on, false, LEGATO); {
} // If SCROLL LED is turning off...
else if (!(usb_led & (1<<USB_LED_SCROLL_LOCK)) && (old_usb_led & (1<<USB_LED_SCROLL_LOCK))) PLAY_NOTE_ARRAY(tone_scroll_off, false, LEGATO);
{ }
// If SCROLL LED is turning off...
PLAY_NOTE_ARRAY(tone_scroll_off, false, LEGATO);
}
}
old_usb_led = usb_led; old_usb_led = usb_led;
first_run = false;
} }

View file

@ -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 (audio_config.enable) {
if (note || notes) // Cancel note if a note is playing
if (note)
stop_all_notes(); stop_all_notes();
notes_pointer = np; notes_pointer = np;
@ -406,7 +407,8 @@ void play_note(double freq, int vol) {
if (audio_config.enable && voices < 8) { if (audio_config.enable && voices < 8) {
if (note || notes) // Cancel notes if notes are playing
if (notes)
stop_all_notes(); stop_all_notes();
#ifdef PWM_AUDIO #ifdef PWM_AUDIO
freq = freq / SAMPLE_RATE; freq = freq / SAMPLE_RATE;