Ver código fonte

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
Michael Terhar 7 anos atrás
pai
commit
a4316ba486

+ 17 - 0
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

+ 14 - 64
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

+ 19 - 5
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