|
|
|
@ -14,6 +14,7 @@ |
|
|
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
#include <ctype.h> |
|
|
|
|
#include "quantum.h" |
|
|
|
|
|
|
|
|
|
#ifdef PROTOCOL_LUFA |
|
|
|
@ -374,6 +375,8 @@ void send_string_with_delay(const char *str, uint8_t interval) { |
|
|
|
|
while (1) { |
|
|
|
|
char ascii_code = *str; |
|
|
|
|
if (!ascii_code) break; |
|
|
|
|
if (ascii_code == SS_QMK_PREFIX) { |
|
|
|
|
ascii_code = *(++str); |
|
|
|
|
if (ascii_code == SS_TAP_CODE) { |
|
|
|
|
// tap
|
|
|
|
|
uint8_t keycode = *(++str); |
|
|
|
@ -387,6 +390,17 @@ void send_string_with_delay(const char *str, uint8_t interval) { |
|
|
|
|
// up
|
|
|
|
|
uint8_t keycode = *(++str); |
|
|
|
|
unregister_code(keycode); |
|
|
|
|
} else if (ascii_code == SS_DELAY_CODE) { |
|
|
|
|
// delay
|
|
|
|
|
int ms = 0; |
|
|
|
|
uint8_t keycode = *(++str); |
|
|
|
|
while (isdigit(keycode)) { |
|
|
|
|
ms *= 10; |
|
|
|
|
ms += keycode - '0'; |
|
|
|
|
keycode = *(++str); |
|
|
|
|
} |
|
|
|
|
while (ms--) wait_ms(1); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
send_char(ascii_code); |
|
|
|
|
} |
|
|
|
@ -403,6 +417,8 @@ void send_string_with_delay_P(const char *str, uint8_t interval) { |
|
|
|
|
while (1) { |
|
|
|
|
char ascii_code = pgm_read_byte(str); |
|
|
|
|
if (!ascii_code) break; |
|
|
|
|
if (ascii_code == SS_QMK_PREFIX) { |
|
|
|
|
ascii_code = pgm_read_byte(++str); |
|
|
|
|
if (ascii_code == SS_TAP_CODE) { |
|
|
|
|
// tap
|
|
|
|
|
uint8_t keycode = pgm_read_byte(++str); |
|
|
|
@ -416,6 +432,17 @@ void send_string_with_delay_P(const char *str, uint8_t interval) { |
|
|
|
|
// up
|
|
|
|
|
uint8_t keycode = pgm_read_byte(++str); |
|
|
|
|
unregister_code(keycode); |
|
|
|
|
} else if (ascii_code == SS_DELAY_CODE) { |
|
|
|
|
// delay
|
|
|
|
|
int ms = 0; |
|
|
|
|
uint8_t keycode = pgm_read_byte(++str); |
|
|
|
|
while (isdigit(keycode)) { |
|
|
|
|
ms *= 10; |
|
|
|
|
ms += keycode - '0'; |
|
|
|
|
keycode = pgm_read_byte(++str); |
|
|
|
|
} |
|
|
|
|
while (ms--) wait_ms(1); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
send_char(ascii_code); |
|
|
|
|
} |
|
|
|
|