[#1989] updated parser and added stringln, hold and release (#2448)

* updated parser and added stringln, hold and release
* removed unused code as requested from PR
* BadUsb: tiny change to trigger rebuild

Co-authored-by: p4p1 <p4p1@vivaldi.net>
Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
Leo Smith
2023-03-09 18:42:34 +01:00
committed by GitHub
parent 780da7d4d5
commit 5b05aeea82
4 changed files with 512 additions and 225 deletions

View File

@@ -5,8 +5,9 @@ extern "C" {
#endif
#include <furi.h>
#include <furi_hal.h>
typedef struct BadUsbScript BadUsbScript;
#define FILE_BUFFER_LEN 16
typedef enum {
BadUsbStateInit,
@@ -29,6 +30,24 @@ typedef struct {
char error[64];
} BadUsbState;
typedef struct BadUsbScript {
FuriHalUsbHidConfig hid_cfg;
BadUsbState st;
FuriString* file_path;
uint32_t defdelay;
uint16_t layout[128];
uint32_t stringdelay;
FuriThread* thread;
uint8_t file_buf[FILE_BUFFER_LEN + 1];
uint8_t buf_start;
uint8_t buf_len;
bool file_end;
FuriString* line;
FuriString* line_prev;
uint32_t repeat_cnt;
} BadUsbScript;
BadUsbScript* bad_usb_script_open(FuriString* file_path);
void bad_usb_script_close(BadUsbScript* bad_usb);
@@ -43,6 +62,12 @@ void bad_usb_script_toggle(BadUsbScript* bad_usb);
BadUsbState* bad_usb_script_get_state(BadUsbScript* bad_usb);
uint16_t ducky_get_keycode(BadUsbScript* bad_usb, const char* param, bool accept_chars);
uint32_t ducky_get_command_len(const char* line);
bool ducky_is_line_end(const char chr);
#ifdef __cplusplus
}
#endif