Merge branch 'personal_atomic_planck' of github.com:IBNobody/qmk_firmware
This commit is contained in:
commit
5a15c113d7
12 changed files with 345 additions and 193 deletions
|
@ -351,7 +351,7 @@ void play_notes(float (*np)[][2], uint8_t n_count, bool n_repeat, float n_rest)
|
|||
|
||||
if (audio_config.enable) {
|
||||
|
||||
if (note)
|
||||
if (note || notes)
|
||||
stop_all_notes();
|
||||
notes = true;
|
||||
|
||||
|
@ -406,7 +406,7 @@ void play_note(double freq, int vol) {
|
|||
|
||||
if (audio_config.enable && voices < 8) {
|
||||
|
||||
if (notes)
|
||||
if (note || notes)
|
||||
stop_all_notes();
|
||||
note = true;
|
||||
#ifdef PWM_AUDIO
|
||||
|
@ -471,3 +471,16 @@ void increase_tempo(uint8_t tempo_change)
|
|||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Override these functions in your keymap file to play different tunes on
|
||||
// startup and bootloader jump
|
||||
__attribute__ ((weak))
|
||||
void play_startup_tone()
|
||||
{
|
||||
}
|
||||
|
||||
__attribute__ ((weak))
|
||||
void play_goodbye_tone()
|
||||
{
|
||||
}
|
||||
//------------------------------------------------------------------------------
|
||||
|
|
|
@ -44,5 +44,7 @@ void decrease_tempo(uint8_t tempo_change);
|
|||
#define NOTE_ARRAY_SIZE(x) ((int)(sizeof(x) / (sizeof(x[0]))))
|
||||
#define PLAY_NOTE_ARRAY(note_array, note_repeat, note_rest_style) play_notes(¬e_array, NOTE_ARRAY_SIZE((note_array)), (note_repeat), (note_rest_style));
|
||||
|
||||
void play_goodbye_tone(void);
|
||||
void play_startup_tone(void);
|
||||
|
||||
#endif
|
|
@ -34,12 +34,6 @@ extern keymap_config_t keymap_config;
|
|||
#include <inttypes.h>
|
||||
#ifdef AUDIO_ENABLE
|
||||
#include "audio.h"
|
||||
|
||||
#ifndef TONE_GOODBYE
|
||||
#define TONE_GOODBYE OLKB_GOODBYE
|
||||
#endif /*! TONE_GOODBYE */
|
||||
|
||||
float tone_goodbye[][2] = SONG(TONE_GOODBYE);
|
||||
#endif /* AUDIO_ENABLE */
|
||||
|
||||
static action_t keycode_to_action(uint16_t keycode);
|
||||
|
@ -47,7 +41,7 @@ static action_t keycode_to_action(uint16_t keycode);
|
|||
/* converts key to action */
|
||||
action_t action_for_key(uint8_t layer, keypos_t key)
|
||||
{
|
||||
// 16bit keycodes - important
|
||||
// 16bit keycodes - important
|
||||
uint16_t keycode = keymap_key_to_keycode(layer, key);
|
||||
|
||||
switch (keycode) {
|
||||
|
@ -190,7 +184,7 @@ static action_t keycode_to_action(uint16_t keycode)
|
|||
case RESET: ; // RESET is 0x5000, which is why this is here
|
||||
clear_keyboard();
|
||||
#ifdef AUDIO_ENABLE
|
||||
PLAY_NOTE_ARRAY(tone_goodbye, false, 0);
|
||||
play_goodbye_tone();
|
||||
#endif
|
||||
_delay_ms(250);
|
||||
#ifdef ATREUS_ASTAR
|
||||
|
@ -303,7 +297,7 @@ static action_t keycode_to_action(uint16_t keycode)
|
|||
/* translates key to keycode */
|
||||
uint16_t keymap_key_to_keycode(uint8_t layer, keypos_t key)
|
||||
{
|
||||
// Read entire word (16bits)
|
||||
// Read entire word (16bits)
|
||||
return pgm_read_word(&keymaps[(layer)][(key.row)][(key.col)]);
|
||||
}
|
||||
|
||||
|
@ -315,7 +309,7 @@ action_t keymap_fn_to_action(uint16_t keycode)
|
|||
|
||||
action_t keymap_func_to_action(uint16_t keycode)
|
||||
{
|
||||
// For FUNC without 8bit limit
|
||||
// For FUNC without 8bit limit
|
||||
return (action_t){ .code = pgm_read_word(&fn_actions[(int)keycode]) };
|
||||
}
|
||||
|
||||
|
|
|
@ -51,7 +51,10 @@
|
|||
|
||||
|
||||
// Notes - # = Octave
|
||||
|
||||
#define NOTE_REST 0.00
|
||||
|
||||
/* These notes are currently bugged
|
||||
#define NOTE_C0 16.35
|
||||
#define NOTE_CS0 17.32
|
||||
#define NOTE_D0 18.35
|
||||
|
@ -75,6 +78,8 @@
|
|||
#define NOTE_GS1 51.91
|
||||
#define NOTE_A1 55.00
|
||||
#define NOTE_AS1 58.27
|
||||
*/
|
||||
|
||||
#define NOTE_B1 61.74
|
||||
#define NOTE_C2 65.41
|
||||
#define NOTE_CS2 69.30
|
||||
|
|
|
@ -4,20 +4,98 @@
|
|||
#define SONG_LIST_H
|
||||
|
||||
#define ODE_TO_JOY \
|
||||
Q__NOTE(_E4), Q__NOTE(_E4), Q__NOTE(_F4), Q__NOTE(_G4), \
|
||||
Q__NOTE(_G4), Q__NOTE(_F4), Q__NOTE(_E4), Q__NOTE(_D4), \
|
||||
Q__NOTE(_C4), Q__NOTE(_C4), Q__NOTE(_D4), Q__NOTE(_E4), \
|
||||
QD_NOTE(_E4), E__NOTE(_D4), H__NOTE(_D4),
|
||||
Q__NOTE(_E4), Q__NOTE(_E4), Q__NOTE(_F4), Q__NOTE(_G4), \
|
||||
Q__NOTE(_G4), Q__NOTE(_F4), Q__NOTE(_E4), Q__NOTE(_D4), \
|
||||
Q__NOTE(_C4), Q__NOTE(_C4), Q__NOTE(_D4), Q__NOTE(_E4), \
|
||||
QD_NOTE(_E4), E__NOTE(_D4), H__NOTE(_D4),
|
||||
|
||||
#define ROCK_A_BYE_BABY \
|
||||
QD_NOTE(_B4), E__NOTE(_D4), Q__NOTE(_B5), \
|
||||
H__NOTE(_A5), Q__NOTE(_G5), \
|
||||
QD_NOTE(_B4), E__NOTE(_D5), Q__NOTE(_G5), \
|
||||
H__NOTE(_FS5),
|
||||
QD_NOTE(_B4), E__NOTE(_D4), Q__NOTE(_B5), \
|
||||
H__NOTE(_A5), Q__NOTE(_G5), \
|
||||
QD_NOTE(_B4), E__NOTE(_D5), Q__NOTE(_G5), \
|
||||
H__NOTE(_FS5),
|
||||
|
||||
#define OLKB_GOODBYE \
|
||||
E__NOTE(_E7), \
|
||||
E__NOTE(_A6), \
|
||||
ED_NOTE(_E6),
|
||||
#define CLOSE_ENCOUNTERS_5_NOTE \
|
||||
Q__NOTE(_D5), \
|
||||
Q__NOTE(_E5), \
|
||||
Q__NOTE(_C5), \
|
||||
Q__NOTE(_C4), \
|
||||
Q__NOTE(_G4),
|
||||
|
||||
#define DOE_A_DEER \
|
||||
QD_NOTE(_C4), E__NOTE(_D4), \
|
||||
QD_NOTE(_E4), E__NOTE(_C4), \
|
||||
Q__NOTE(_E4), Q__NOTE(_C4), \
|
||||
Q__NOTE(_E4),
|
||||
|
||||
#define GOODBYE_SOUND \
|
||||
E__NOTE(_E7), \
|
||||
E__NOTE(_A6), \
|
||||
ED_NOTE(_E6),
|
||||
|
||||
#define STARTUP_SOUND \
|
||||
ED_NOTE(_E7 ), \
|
||||
E__NOTE(_CS7), \
|
||||
E__NOTE(_E6 ), \
|
||||
E__NOTE(_A6 ), \
|
||||
M__NOTE(_CS7, 20),
|
||||
|
||||
#define QWERTY_SOUND \
|
||||
E__NOTE(_GS6 ), \
|
||||
E__NOTE(_A6 ), \
|
||||
S__NOTE(_REST), \
|
||||
Q__NOTE(_E7 ),
|
||||
|
||||
#define COLEMAK_SOUND \
|
||||
E__NOTE(_GS6 ), \
|
||||
E__NOTE(_A6 ), \
|
||||
S__NOTE(_REST), \
|
||||
ED_NOTE(_E7 ), \
|
||||
S__NOTE(_REST), \
|
||||
ED_NOTE(_GS7 ),
|
||||
|
||||
#define DVORAK_SOUND \
|
||||
E__NOTE(_GS6 ), \
|
||||
E__NOTE(_A6 ), \
|
||||
S__NOTE(_REST), \
|
||||
E__NOTE(_E7 ), \
|
||||
S__NOTE(_REST), \
|
||||
E__NOTE(_FS7 ), \
|
||||
S__NOTE(_REST), \
|
||||
E__NOTE(_E7 ),
|
||||
|
||||
#define MUSIC_SCALE_SOUND \
|
||||
E__NOTE(_A5 ), \
|
||||
E__NOTE(_B5 ), \
|
||||
E__NOTE(_CS6), \
|
||||
E__NOTE(_D6 ), \
|
||||
E__NOTE(_E6 ), \
|
||||
E__NOTE(_FS6), \
|
||||
E__NOTE(_GS6), \
|
||||
E__NOTE(_A6 ),
|
||||
|
||||
#define CAPS_LOCK_ON_SOUND \
|
||||
E__NOTE(_A3), \
|
||||
E__NOTE(_B3),
|
||||
|
||||
#define CAPS_LOCK_OFF_SOUND \
|
||||
E__NOTE(_B3), \
|
||||
E__NOTE(_A3),
|
||||
|
||||
#define SCROLL_LOCK_ON_SOUND \
|
||||
E__NOTE(_D4), \
|
||||
E__NOTE(_E4),
|
||||
|
||||
#define SCROLL_LOCK_OFF_SOUND \
|
||||
E__NOTE(_E4), \
|
||||
E__NOTE(_D4),
|
||||
|
||||
#define NUM_LOCK_ON_SOUND \
|
||||
E__NOTE(_D5), \
|
||||
E__NOTE(_E5),
|
||||
|
||||
#define NUM_LOCK_OFF_SOUND \
|
||||
E__NOTE(_E5), \
|
||||
E__NOTE(_D5),
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue