From a4316ba486ae25eae93174f5d7e4952811680601 Mon Sep 17 00:00:00 2001 From: Michael Terhar Date: Wed, 30 Aug 2017 11:50:31 -0400 Subject: [PATCH] Fixed mitosis-mjt audio (#1653) * copied mjt keymaps from archive * All mjt boards now compile * fixed jd45-mjt breathing * Updates to fix SpaceFN but not tested yet. * Still missing either spacebar or an adjacent keypress. * Debugging rigged up for use with hid_listen. * Reverted the default keymap to use tap_layer_key rather than custom. Moved custom approach to keymap_debug.c * Fixed the lower-left side of the keymap, which needed more spacers due to the matrix being directly put into the array rather than using the keymap function. * Cleaned up JD45 keymap that uses tapkey. * Redid minivan keymap with numsym rather than raise/lower. Untested. * Created my MJT keymap for HHKB Enabled dynamic macros and moved somoe of the shortcuts around. * Minor keymap fixes to make them compile without errors. * Added home/end to right arrow cluster on DYN layer. * Added more keys to fn and dyn layers. * It wasn't using my custom layer last time somehow...? Now it will. * Compiled and installed at end of day on 8/23 * Moved macros to FKEY layer because Adjust was too hard to get into and out of without some sort of feedback. * Fixed volume controls... were reversed and disabled. * Added F13-F15 back to fkeys layer in Minivan * Created new Planck Keymap that uses the NumSym and FKeys layer approach like the Minivan. * Removed DYN layer. * Fixed diagram in planck numsym. * Cleanup for pull request. * Roadkit flip phone warning. * Replaced PLAY_NOTES_ARRAY to PLAY_SONG * reset the submodules * checked out specific commits for submodules * Removed debugging from JD45 shared config.h * Moved custom rules.mk to apropriate keymap Reset the shared rules.mk file. * Trailing return issue in rules.mk Gotta make for a smooth pull request :-) * Mitosis music troubleshooting Also updated the song playing function. Does not work currently. * Fixed mitosis audio * Put mitosis/rules.mk back to QMK master --- keyboards/mitosis/keymaps/mjt/Makefile | 17 ++++++ keyboards/mitosis/keymaps/mjt/config.h | 78 +++++--------------------- keyboards/mitosis/keymaps/mjt/keymap.c | 24 ++++++-- 3 files changed, 50 insertions(+), 69 deletions(-) create mode 100644 keyboards/mitosis/keymaps/mjt/Makefile diff --git a/keyboards/mitosis/keymaps/mjt/Makefile b/keyboards/mitosis/keymaps/mjt/Makefile new file mode 100644 index 0000000000..a4137ad00e --- /dev/null +++ b/keyboards/mitosis/keymaps/mjt/Makefile @@ -0,0 +1,17 @@ +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = no # Console for debug(+400) +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +MIDI_ENABLE = no # MIDI controls +AUDIO_ENABLE = yes # Audio output on port C6 +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. +API_SYSEX_ENABLE = no + +ifndef QUANTUM_DIR + include ../../../../Makefile +endif diff --git a/keyboards/mitosis/keymaps/mjt/config.h b/keyboards/mitosis/keymaps/mjt/config.h index 2209a9e0d5..71adc5a2df 100644 --- a/keyboards/mitosis/keymaps/mjt/config.h +++ b/keyboards/mitosis/keymaps/mjt/config.h @@ -1,74 +1,24 @@ -#ifndef CONFIG_H -#define CONFIG_H -#include "config_common.h" +#ifndef CONFIG_USER_H +#define CONFIG_USER_H -/* USB Device descriptor parameter */ +#include "../../config.h" -#define VENDOR_ID 0xFEEB -#define PRODUCT_ID 0x6060 -#define DEVICE_VER 0x0001 -#define MANUFACTURER MJT -#define PRODUCT Mitosis -#define DESCRIPTION q.m.k. keyboard firmware for Mitosis +#ifdef AUDIO_ENABLE + #define STARTUP_SONG SONG(PLANCK_SOUND) + // #define STARTUP_SONG SONG(NO_SOUND) -/* key matrix size */ -#define MATRIX_ROWS 5 -#define MATRIX_COLS 10 + #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ + SONG(COLEMAK_SOUND), \ + SONG(DVORAK_SOUND) \ + } +#endif + +#define AUDIO_VOICES +#define C6_AUDIO // fix iPhone power adapter issue #define USB_MAX_POWER_CONSUMPTION 50 -// #define CATERINA_BOOTLOADER -/* define if matrix has ghost */ -//#define MATRIX_HAS_GHOST - -/* number of backlight levels */ -//#define BACKLIGHT_LEVELS 3 - -#define ONESHOT_TIMEOUT 500 - - -/* key combination for command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ -) - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -#define PREVENT_STUCK_MODIFIERS - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION - -//UART settings for communication with the RF microcontroller -#define SERIAL_UART_BAUD 1000000 -#define SERIAL_UART_DATA UDR1 -#define SERIAL_UART_UBRR (F_CPU / (16UL * SERIAL_UART_BAUD) - 1) -#define SERIAL_UART_TXD_READY (UCSR1A & _BV(UDRE1)) -#define SERIAL_UART_RXD_PRESENT (UCSR1A & _BV(RXC1)) -#define SERIAL_UART_INIT() do { \ - /* baud rate */ \ - UBRR1L = SERIAL_UART_UBRR; \ - /* baud rate */ \ - UBRR1H = SERIAL_UART_UBRR >> 8; \ - /* enable TX and RX */ \ - UCSR1B = _BV(TXEN1) | _BV(RXEN1); \ - /* 8-bit data */ \ - UCSR1C = _BV(UCSZ11) | _BV(UCSZ10); \ - } while(0) #endif diff --git a/keyboards/mitosis/keymaps/mjt/keymap.c b/keyboards/mitosis/keymaps/mjt/keymap.c index 01443d5f49..4663c0acf4 100644 --- a/keyboards/mitosis/keymaps/mjt/keymap.c +++ b/keyboards/mitosis/keymaps/mjt/keymap.c @@ -28,6 +28,7 @@ enum mitosis_keycodes MACSLEEP, FNMAC, FNPC, + AUDIOTEST, DYNAMIC_MACRO_RANGE, }; @@ -236,7 +237,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { persistent_function_layer_set(_FUNCTIONPC); #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_fnpc, false, 0); + PLAY_SONG(tone_fnpc); #endif } return false; @@ -245,9 +246,22 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { if (record->event.pressed) { persistent_function_layer_set(_FUNCTIONMAC); #ifdef AUDIO_ENABLE - PLAY_NOTE_ARRAY(tone_fnmac, false, 0); + PLAY_SONG(tone_fnmac); #endif } + return false; + break; + case AUDIOTEST: + if (record->event.pressed) { + #ifdef AUDIO_ENABLE + PLAY_SONG(music_scale); + register_code(KC_M); + unregister_code(KC_M); + #endif + register_code(KC_A); + } else { + unregister_code(KC_A); + } return false; break; //If any other key was pressed during the layer mod hold period, @@ -279,12 +293,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { void startup_user() { _delay_ms(20); // gets rid of tick - PLAY_NOTE_ARRAY(tone_startup, false, 0); + PLAY_SONG(tone_startup); } void shutdown_user() { - PLAY_NOTE_ARRAY(tone_goodbye, false, 0); + PLAY_SONG(tone_goodbye); _delay_ms(150); stop_all_notes(); } @@ -296,7 +310,7 @@ void music_on_user(void) void music_scale_user(void) { - PLAY_NOTE_ARRAY(music_scale, false, 0); + PLAY_SONG(music_scale); } #endif