1
0
Fork 0

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:
Jack Humbert 2016-05-18 23:14:00 -04:00
parent 465aabe11d
commit 0428214b90
6 changed files with 114 additions and 44 deletions

View file

@ -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() {}