mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-11-03 23:02:34 +01:00 
			
		
		
		
	Working on Morse Code Macros
This commit is contained in:
		
							parent
							
								
									1b8ed53f21
								
							
						
					
					
						commit
						8f80f35186
					
				@ -407,21 +407,36 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Macros
 | 
					// Custom Function - Check if shift is pressed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool check_shift(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool check_shift() {
 | 
				
			||||||
 | 
					  if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT))) {
 | 
				
			||||||
 | 
						return KC_LSHIFT;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  if (keyboard_report->mods & (MOD_BIT(KC_RSHIFT))) {
 | 
				
			||||||
 | 
						return KC_RSHIFT;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  else {
 | 
				
			||||||
 | 
						return false;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Morse Code Macros
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
 | 
					const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
 | 
				
			||||||
 | 
					  uint16_t is_shift = check_shift();
 | 
				
			||||||
  switch(id) {
 | 
					  switch(id) {
 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	// Morse Code Macros
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
  case 0: //Number 0-)
 | 
					  case 0: //Number 0-)
 | 
				
			||||||
	if (record->event.pressed) {
 | 
						if (record->event.pressed) {
 | 
				
			||||||
	  if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) {
 | 
						  if (is_shift == false) {
 | 
				
			||||||
		clear_mods();
 | 
							  return MACRO(T(MINS), T(MINS), T(MINS), T(MINS), T(MINS), T(SPACE), END); //-----
 | 
				
			||||||
		return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //-.--.-
 | 
							}
 | 
				
			||||||
	  }
 | 
					 | 
				
			||||||
	  else {
 | 
						  else {
 | 
				
			||||||
		return MACRO(T(MINS), T(MINS), T(MINS), T(MINS), T(MINS), T(SPACE), END); //-----
 | 
							unregister_mods(MOD_BIT(is_shift));
 | 
				
			||||||
 | 
							return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //-.--.-
 | 
				
			||||||
 | 
							register_code(is_shift);
 | 
				
			||||||
	  }
 | 
						  }
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	break;
 | 
						break;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user