Working on Morse Code Macros
This commit is contained in:
		
							parent
							
								
									1b8ed53f21
								
							
						
					
					
						commit
						8f80f35186
					
				
					 1 changed files with 24 additions and 9 deletions
				
			
		| 
						 | 
				
			
			@ -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) {
 | 
			
		||||
  uint16_t is_shift = check_shift();
 | 
			
		||||
  switch(id) {
 | 
			
		||||
	
 | 
			
		||||
	// Morse Code Macros
 | 
			
		||||
	
 | 
			
		||||
  case 0: //Number 0-)
 | 
			
		||||
	if (record->event.pressed) {
 | 
			
		||||
	  if (keyboard_report->mods & (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT))) {
 | 
			
		||||
		clear_mods();
 | 
			
		||||
		return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //-.--.-
 | 
			
		||||
	  }
 | 
			
		||||
	  if (is_shift == false) {
 | 
			
		||||
		  return MACRO(T(MINS), T(MINS), T(MINS), T(MINS), T(MINS), T(SPACE), END); //-----
 | 
			
		||||
		}
 | 
			
		||||
	  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;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue