summaryrefslogtreecommitdiffstats
path: root/keyboards/clueboard
diff options
context:
space:
mode:
authorskullydazed <skullydazed@users.noreply.github.com>2018-01-14 05:38:25 +0100
committerJack Humbert <jack.humb@gmail.com>2018-01-14 05:38:25 +0100
commit5836d1a06a7265781fa37acf13e3ba9df7224247 (patch)
treefe4161c2cb1dc28b5eab39c5d97caedc92b7efc8 /keyboards/clueboard
parentfd359e23e8b46826f480d1bcf21261c3f777e2f4 (diff)
downloadqmk_firmware-5836d1a06a7265781fa37acf13e3ba9df7224247.tar.gz
qmk_firmware-5836d1a06a7265781fa37acf13e3ba9df7224247.tar.xz
Fix up the ARM audio support (#2136)
* Get audio working on clueboard/60 * add keys for music mode * Change doubles to floats * add keys for all the songs * revert to the default startup sound * Remove music mode until we can figure out why it crashes
Diffstat (limited to 'keyboards/clueboard')
-rw-r--r--keyboards/clueboard/60/keymaps/default/keymap.c94
-rw-r--r--keyboards/clueboard/60/led.c9
-rw-r--r--keyboards/clueboard/60/matrix.c6
-rw-r--r--keyboards/clueboard/60/rules.mk2
4 files changed, 94 insertions, 17 deletions
diff --git a/keyboards/clueboard/60/keymaps/default/keymap.c b/keyboards/clueboard/60/keymaps/default/keymap.c
index 1b0c71264..8397c4bbf 100644
--- a/keyboards/clueboard/60/keymaps/default/keymap.c
+++ b/keyboards/clueboard/60/keymaps/default/keymap.c
@@ -3,11 +3,35 @@
#define _______ KC_TRNS
enum keyboard_layers {
- _BL,
- _FL,
- _CL
+ _BL,
+ _FL,
+ _CL
};
+enum custom_keycodes {
+ S_BSKTC = SAFE_RANGE,
+ S_ODEJY,
+ S_RCKBY,
+ S_DOEDR,
+ S_SCALE,
+ S_ONEUP,
+ S_COIN,
+ S_SONIC,
+ S_ZELDA
+};
+
+#ifdef AUDIO_ENABLE
+ float song_basketcase[][2] = SONG(BASKET_CASE);
+ float song_ode_to_joy[][2] = SONG(ODE_TO_JOY);
+ float song_rock_a_bye_baby[][2] = SONG(ROCK_A_BYE_BABY);
+ float song_doe_a_deer[][2] = SONG(DOE_A_DEER);
+ float song_scale[][2] = SONG(MUSIC_SCALE_SOUND);
+ float song_coin[][2] = SONG(COIN_SOUND);
+ float song_one_up[][2] = SONG(ONE_UP_SOUND);
+ float song_sonic_ring[][2] = SONG(SONIC_RING);
+ float song_zelda_puzzle[][2] = SONG(ZELDA_PUZZLE);
+#endif
+
const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Layer 0: Default Layer
* ,-----------------------------------------------------------.
@@ -33,11 +57,71 @@ const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \
_______, _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
_______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, \
- _______, _______, _______, _______, _______, _______, MO(_FL), _______),
+ _______,_______,_______, _______, _______, _______, MO(_FL), _______),
[_CL] = KEYMAP(
- BL_STEP,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,\
+ BL_STEP,S_BSKTC,S_ODEJY,S_RCKBY,S_DOEDR,S_SCALE,S_ONEUP,S_COIN, S_SONIC,S_ZELDA,_______,_______,_______,_______,_______,\
_______, _______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, \
_______, _______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
_______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
_______, _______, _______, _______, _______, _______, MO(_FL), _______)
};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case S_BSKTC:
+ if (record->event.pressed) {
+ stop_all_notes();
+ PLAY_SONG(song_basketcase);
+ }
+ return false;
+ case S_ODEJY:
+ if (record->event.pressed) {
+ stop_all_notes();
+ PLAY_SONG(song_ode_to_joy);
+ }
+ return false;
+ case S_RCKBY:
+ if (record->event.pressed) {
+ stop_all_notes();
+ PLAY_SONG(song_rock_a_bye_baby);
+ }
+ return false;
+ case S_DOEDR:
+ if (record->event.pressed) {
+ stop_all_notes();
+ PLAY_SONG(song_doe_a_deer);
+ }
+ return false;
+ case S_SCALE:
+ if (record->event.pressed) {
+ stop_all_notes();
+ PLAY_SONG(song_scale);
+ }
+ return false;
+ case S_ONEUP:
+ if (record->event.pressed) {
+ stop_all_notes();
+ PLAY_SONG(song_one_up);
+ }
+ return false;
+ case S_COIN:
+ if (record->event.pressed) {
+ stop_all_notes();
+ PLAY_SONG(song_coin);
+ }
+ return false;
+ case S_SONIC:
+ if (record->event.pressed) {
+ stop_all_notes();
+ PLAY_SONG(song_sonic_ring);
+ }
+ return false;
+ case S_ZELDA:
+ if (record->event.pressed) {
+ stop_all_notes();
+ PLAY_SONG(song_zelda_puzzle);
+ }
+ return false;
+ }
+ return true;
+}
diff --git a/keyboards/clueboard/60/led.c b/keyboards/clueboard/60/led.c
index fdf244ad5..350696736 100644
--- a/keyboards/clueboard/60/led.c
+++ b/keyboards/clueboard/60/led.c
@@ -23,7 +23,7 @@
void backlight_init_ports(void) {
printf("backlight_init_ports()\n");
#ifdef BACKLIGHT_ENABLE
- palSetPadMode(GPIOB, 8, PAL_MODE_OUTPUT_PUSHPULL);
+ palSetPadMode(GPIOB, 8, PAL_MODE_OUTPUT_PUSHPULL);
palSetPad(GPIOB, 8);
#endif
}
@@ -41,13 +41,8 @@ void backlight_set(uint8_t level) {
#endif
}
-void led_init_ports() {
- printf("led_init_ports()\n");
- palSetPadMode(GPIOB, 7, PAL_MODE_OUTPUT_PUSHPULL);
-}
-
void led_set_kb(uint8_t usb_led) {
- printf("led_init_ports()\n");
+ printf("led_set_kb(%d)\n", usb_led);
if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
// Turn capslock on
palSetPad(GPIOB, 7);
diff --git a/keyboards/clueboard/60/matrix.c b/keyboards/clueboard/60/matrix.c
index 4023bc03c..7c38a3bd4 100644
--- a/keyboards/clueboard/60/matrix.c
+++ b/keyboards/clueboard/60/matrix.c
@@ -71,10 +71,7 @@ void matrix_init(void) {
memset(matrix, 0, MATRIX_ROWS * sizeof(matrix_row_t));
memset(matrix_debouncing, 0, MATRIX_COLS * sizeof(matrix_row_t));
- /* Setup capslock */
- // palSetPadMode(GPIOB, 7, PAL_MODE_OUTPUT_PUSHPULL);
- // palClearPad(GPIOB, 7);
-
+ palClearPad(GPIOB, 7); // Turn off capslock
matrix_init_quantum();
}
@@ -138,6 +135,7 @@ uint8_t matrix_scan(void) {
debouncing_time = timer_read();
}
}
+
if (debouncing && timer_elapsed(debouncing_time) > DEBOUNCE) {
for (int row = 0; row < MATRIX_ROWS; row++) {
matrix[row] = 0;
diff --git a/keyboards/clueboard/60/rules.mk b/keyboards/clueboard/60/rules.mk
index 01b7dad9b..93e6019a4 100644
--- a/keyboards/clueboard/60/rules.mk
+++ b/keyboards/clueboard/60/rules.mk
@@ -50,5 +50,5 @@ COMMAND_ENABLE = yes # Commands for debug and configuration
#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
CUSTOM_MATRIX = yes # Custom matrix file
-#AUDIO_ENABLE = yes
+AUDIO_ENABLE = yes
# SERIAL_LINK_ENABLE = yes