(Experimental) External CLI plugins -29kb DFU

Idea and plugin loader implementation by @akopachov, thanks!
All commands done except storage and rpc for latency reasons
This commit is contained in:
Willy-JL
2024-03-16 03:36:40 +00:00
parent cdba35a15a
commit 197fef54e2
38 changed files with 429 additions and 110 deletions
+9 -1
View File
@@ -54,6 +54,12 @@ const char* input_get_type_name(InputType type) {
}
}
#include <cli/cli_i.h>
static void input_cli_wrapper(Cli* cli, FuriString* args, void* context) {
cli_plugin_wrapper("input_cli", 1, cli, args, context);
}
int32_t input_srv(void* p) {
UNUSED(p);
input = malloc(sizeof(Input));
@@ -69,7 +75,9 @@ int32_t input_srv(void* p) {
#ifdef SRV_CLI
input->cli = furi_record_open(RECORD_CLI);
cli_add_command(input->cli, "input", CliCommandFlagParallelSafe, input_cli, input);
cli_add_command(input->cli, "input", CliCommandFlagParallelSafe, input_cli_wrapper, input);
#else
UNUSED(input_cli_wrapper);
#endif
input->pin_states = malloc(input_pins_count * sizeof(InputPinState));