adds music and audio toggles (#337)
* Updated personal layouts * tweaked personal * Nightly - Audio Cleanup Refactored the LUTs. Abstracted some of the registers out of audio to use more functional names. Split audio into audio and audio_pwm. WIP * nightly - collapsed code * Added check for note playing to LEDs * Usability tweaks * TWEAE * nightly added extra kcs to keymap common * turned on Plank audio * Added backlight breathing to atomic * reverted accidental merge * Added music and audio toggles to Quantum.c * Redid the audio callbacks * music/audio_on_user
This commit is contained in:
parent
465aabe11d
commit
0428214b90
6 changed files with 114 additions and 44 deletions
|
@ -1,4 +1,5 @@
|
|||
#include "quantum.h"
|
||||
#include "timer.h"
|
||||
|
||||
__attribute__ ((weak))
|
||||
void matrix_init_kb(void) {}
|
||||
|
@ -17,11 +18,11 @@ void leader_start(void) {}
|
|||
__attribute__ ((weak))
|
||||
void leader_end(void) {}
|
||||
|
||||
uint8_t starting_note = 0x0C;
|
||||
int offset = 7;
|
||||
|
||||
#ifdef AUDIO_ENABLE
|
||||
uint8_t starting_note = 0x0C;
|
||||
int offset = 7;
|
||||
bool music_activated = false;
|
||||
float music_scale[][2] = SONG(MUSIC_SCALE_SOUND);
|
||||
#endif
|
||||
|
||||
#ifdef MIDI_ENABLE
|
||||
|
@ -105,7 +106,7 @@ bool process_record_quantum(keyrecord_t *record) {
|
|||
#ifdef MIDI_ENABLE
|
||||
if (keycode == MI_ON && record->event.pressed) {
|
||||
midi_activated = true;
|
||||
PLAY_NOTE_ARRAY(music_scale, false, 0);
|
||||
play_music_scale();
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -181,7 +182,6 @@ bool process_record_quantum(keyrecord_t *record) {
|
|||
#ifdef AUDIO_ENABLE
|
||||
if (keycode == AU_ON && record->event.pressed) {
|
||||
audio_on();
|
||||
audio_on_callback();
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -190,31 +190,53 @@ bool process_record_quantum(keyrecord_t *record) {
|
|||
return false;
|
||||
}
|
||||
|
||||
if (keycode == AU_TOG && record->event.pressed) {
|
||||
if (is_audio_on())
|
||||
{
|
||||
audio_off();
|
||||
}
|
||||
else
|
||||
{
|
||||
audio_on();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
if (keycode == MU_ON && record->event.pressed) {
|
||||
music_activated = true;
|
||||
PLAY_NOTE_ARRAY(music_scale, false, 0);
|
||||
music_on();
|
||||
return false;
|
||||
}
|
||||
|
||||
if (keycode == MU_OFF && record->event.pressed) {
|
||||
music_activated = false;
|
||||
stop_all_notes();
|
||||
music_off();
|
||||
return false;
|
||||
}
|
||||
|
||||
if (keycode == MU_TOG && record->event.pressed) {
|
||||
if (music_activated)
|
||||
{
|
||||
music_off();
|
||||
}
|
||||
else
|
||||
{
|
||||
music_on();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
if (keycode == MUV_IN && record->event.pressed) {
|
||||
voice_iterate();
|
||||
PLAY_NOTE_ARRAY(music_scale, false, 0);
|
||||
play_music_scale();
|
||||
return false;
|
||||
}
|
||||
|
||||
if (keycode == MUV_DE && record->event.pressed) {
|
||||
voice_deiterate();
|
||||
PLAY_NOTE_ARRAY(music_scale, false, 0);
|
||||
play_music_scale();
|
||||
return false;
|
||||
}
|
||||
|
||||
if (music_activated) {
|
||||
if (music_activated) {
|
||||
|
||||
if (keycode == KC_LCTL && record->event.pressed) { // Start recording
|
||||
stop_all_notes();
|
||||
|
@ -258,7 +280,7 @@ bool process_record_quantum(keyrecord_t *record) {
|
|||
}
|
||||
} else {
|
||||
stop_note(freq);
|
||||
}
|
||||
}
|
||||
|
||||
if (keycode < 0xFF) // ignores all normal keycodes, but lets RAISE, LOWER, etc through
|
||||
return false;
|
||||
|
@ -347,4 +369,29 @@ void matrix_scan_quantum() {
|
|||
#endif
|
||||
|
||||
matrix_scan_kb();
|
||||
}
|
||||
}
|
||||
|
||||
bool is_music_on(void) {
|
||||
return (music_activated != 0);
|
||||
}
|
||||
|
||||
void music_toggle(void) {
|
||||
if (!music_activated) {
|
||||
music_on();
|
||||
} else {
|
||||
music_off();
|
||||
}
|
||||
}
|
||||
|
||||
void music_on(void) {
|
||||
music_activated = 1;
|
||||
music_on_user();
|
||||
}
|
||||
|
||||
void music_off(void) {
|
||||
music_activated = 0;
|
||||
stop_all_notes();
|
||||
}
|
||||
|
||||
__attribute__ ((weak))
|
||||
void music_on_user() {}
|
Loading…
Add table
Add a link
Reference in a new issue