71 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #pragma once
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| #include <furi.h>
 | |
| #include <furi_hal.h>
 | |
| #include "ducky_script.h"
 | |
| 
 | |
| #define SCRIPT_STATE_ERROR (-1)
 | |
| #define SCRIPT_STATE_END (-2)
 | |
| #define SCRIPT_STATE_NEXT_LINE (-3)
 | |
| #define SCRIPT_STATE_CMD_UNKNOWN (-4)
 | |
| #define SCRIPT_STATE_STRING_START (-5)
 | |
| #define SCRIPT_STATE_WAIT_FOR_BTN (-6)
 | |
| 
 | |
| #define FILE_BUFFER_LEN 16
 | |
| 
 | |
| struct BadUsbScript {
 | |
|     FuriHalUsbHidConfig hid_cfg;
 | |
|     FuriThread* thread;
 | |
|     BadUsbState st;
 | |
| 
 | |
|     FuriString* file_path;
 | |
|     uint8_t file_buf[FILE_BUFFER_LEN + 1];
 | |
|     uint8_t buf_start;
 | |
|     uint8_t buf_len;
 | |
|     bool file_end;
 | |
| 
 | |
|     uint32_t defdelay;
 | |
|     uint32_t stringdelay;
 | |
|     uint16_t layout[128];
 | |
| 
 | |
|     FuriString* line;
 | |
|     FuriString* line_prev;
 | |
|     uint32_t repeat_cnt;
 | |
|     uint8_t key_hold_nb;
 | |
| 
 | |
|     FuriString* string_print;
 | |
|     size_t string_print_pos;
 | |
| };
 | |
| 
 | |
| 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);
 | |
| 
 | |
| uint16_t ducky_get_keycode_by_name(const char* param);
 | |
| 
 | |
| bool ducky_get_number(const char* param, uint32_t* val);
 | |
| 
 | |
| void ducky_numlock_on(void);
 | |
| 
 | |
| bool ducky_numpad_press(const char num);
 | |
| 
 | |
| bool ducky_altchar(const char* charcode);
 | |
| 
 | |
| bool ducky_altstring(const char* param);
 | |
| 
 | |
| bool ducky_string(BadUsbScript* bad_usb, const char* param);
 | |
| 
 | |
| int32_t ducky_execute_cmd(BadUsbScript* bad_usb, const char* line);
 | |
| 
 | |
| int32_t ducky_error(BadUsbScript* bad_usb, const char* text, ...);
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | 
