forked from mirrors/qmk_userspace
		
	Fixed tap/down/up handling in dynamic keymap macros
This commit is contained in:
		
					parent
					
						
							
								ad12acd3c0
							
						
					
				
			
			
				commit
				
					
						92c19dae8c
					
				
			
		
					 1 changed files with 13 additions and 5 deletions
				
			
		| 
						 | 
					@ -210,19 +210,27 @@ void dynamic_keymap_macro_send( uint8_t id )
 | 
				
			||||||
		++p;
 | 
							++p;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Send the macro string one char at a time
 | 
						// Send the macro string one or two chars at a time
 | 
				
			||||||
	// by making temporary 1 char strings
 | 
						// by making temporary 1 or 2 char strings
 | 
				
			||||||
	char data[2] = { 0, 0 };
 | 
						char data[3] = { 0, 0, 0 };
 | 
				
			||||||
	// We already checked there was a null at the end of
 | 
						// We already checked there was a null at the end of
 | 
				
			||||||
	// the buffer, so this cannot go past the end
 | 
						// the buffer, so this cannot go past the end
 | 
				
			||||||
	while ( 1 ) {
 | 
						while ( 1 ) {
 | 
				
			||||||
		data[0] = eeprom_read_byte(p);
 | 
							data[0] = eeprom_read_byte(p++);
 | 
				
			||||||
 | 
							data[1] = 0;
 | 
				
			||||||
		// Stop at the null terminator of this macro string
 | 
							// Stop at the null terminator of this macro string
 | 
				
			||||||
		if ( data[0] == 0 ) {
 | 
							if ( data[0] == 0 ) {
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							// If the char is magic (tap, down, up),
 | 
				
			||||||
 | 
							// add the next char (key to use) and send a 2 char string.
 | 
				
			||||||
 | 
							if ( data[0] == 1 || data[0] == 2 || data[0] == 3 ) {
 | 
				
			||||||
 | 
								data[1] = eeprom_read_byte(p++);
 | 
				
			||||||
 | 
								if ( data[1] == 0 ) {
 | 
				
			||||||
 | 
									break;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
		send_string(data);
 | 
							send_string(data);
 | 
				
			||||||
		++p;
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue