diff --git a/applications/external/cli_bridge/cli_control.c b/applications/external/cli_bridge/cli_control.c index 80a0fd490..d4760275b 100644 --- a/applications/external/cli_bridge/cli_control.c +++ b/applications/external/cli_bridge/cli_control.c @@ -3,6 +3,7 @@ #include #include #include +#include #include "cligui_main_i.h" #include @@ -33,11 +34,10 @@ static size_t real_rx_handler(uint8_t* buffer, size_t size, uint32_t timeout) { return rx_cnt; } -static CliCommand_internal* getInternalCliCommand(Cli* cli, const char* name) { +static CliCommand* getCliCommand(Cli* cli, const char* name) { FuriString* target_command = furi_string_alloc(); furi_string_set_str(target_command, name); - CliCommand_internal* command = - CliCommandTree_internal_get(((Cli_internal*)cli)->commands, target_command); + CliCommand* command = CliCommandTree_get(cli->commands, target_command); furi_string_free(target_command); return command; } @@ -53,12 +53,12 @@ static CliSession session; void latch_tx_handler() { Cli* global_cli = furi_record_open(RECORD_CLI); - CliCommand_internal* help_command = getInternalCliCommand(global_cli, "help"); + CliCommand* help_command = getCliCommand(global_cli, "help"); cliThread = help_command->context; furi_thread_set_stdout_callback(tx_handler_stdout); if(cliThread != NULL) { - ((FuriThread_internal*)cliThread)->output.write_callback = &tx_handler_stdout; + cliThread->output.write_callback = &tx_handler_stdout; } rx_stream = furi_stream_buffer_alloc(128, 1); @@ -78,7 +78,7 @@ void unlatch_tx_handler(bool persist) { Cli* global_cli = furi_record_open(RECORD_CLI); // Stash cliThread if not null if(cliThread != NULL) { - CliCommand_internal* help_command = getInternalCliCommand(global_cli, "help"); + CliCommand* help_command = getCliCommand(global_cli, "help"); help_command->context = cliThread; } // Switch to new session @@ -96,7 +96,7 @@ void unlatch_tx_handler(bool persist) { furi_stream_buffer_send(rx_stream, "_", 1, FuriWaitForever); // Reconfigure stdout_callback to cli_vcp if(cliThread != NULL) { - ((FuriThread_internal*)cliThread)->output.write_callback = cli_vcp.tx_stdout; + cliThread->output.write_callback = cli_vcp.tx_stdout; } // At this point, all cli_vcp functions should be back. furi_stream_buffer_free(rx_stream); diff --git a/applications/external/cli_bridge/cligui_main.c b/applications/external/cli_bridge/cligui_main.c index 60a9b12dd..f275e1d4f 100644 --- a/applications/external/cli_bridge/cligui_main.c +++ b/applications/external/cli_bridge/cligui_main.c @@ -3,6 +3,7 @@ #include "text_input.h" #include "console_output.h" #include +#include static bool cligui_custom_event_cb(void* context, uint32_t event) { UNUSED(event); @@ -83,11 +84,9 @@ int32_t cligui_main(void* p) { cligui->gui = furi_record_open(RECORD_GUI); cligui->view_dispatcher = view_dispatcher_alloc(); - cligui->view_dispatcher_i = (ViewDispatcher_internal*)(cligui->view_dispatcher); - prev_input_callback = - ((ViewPort_internal*)cligui->view_dispatcher_i->view_port)->input_callback; + prev_input_callback = cligui->view_dispatcher->view_port->input_callback; view_port_input_callback_set( - cligui->view_dispatcher_i->view_port, input_callback_wrapper, cligui); + cligui->view_dispatcher->view_port, input_callback_wrapper, cligui); view_dispatcher_enable_queue(cligui->view_dispatcher); view_dispatcher_set_event_callback_context(cligui->view_dispatcher, cligui); view_dispatcher_set_custom_event_callback(cligui->view_dispatcher, cligui_custom_event_cb); diff --git a/applications/external/cli_bridge/cligui_main_i.h b/applications/external/cli_bridge/cligui_main_i.h index b3b5823c9..36e3e156a 100644 --- a/applications/external/cli_bridge/cligui_main_i.h +++ b/applications/external/cli_bridge/cligui_main_i.h @@ -11,7 +11,6 @@ #include #include #include -#include "internal_defs.h" #define TEXT_BOX_STORE_SIZE (4096) #define TEXT_INPUT_STORE_SIZE (512) @@ -37,5 +36,4 @@ typedef struct { char text_input_store[TEXT_INPUT_STORE_SIZE + 1]; TextInput* text_input; ViewDispatcher* view_dispatcher; - ViewDispatcher_internal* view_dispatcher_i; -} CliguiApp; \ No newline at end of file +} CliguiApp; diff --git a/applications/external/cli_bridge/internal_defs.h b/applications/external/cli_bridge/internal_defs.h deleted file mode 100644 index 25b1448aa..000000000 --- a/applications/external/cli_bridge/internal_defs.h +++ /dev/null @@ -1,100 +0,0 @@ -#pragma once -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -typedef struct { - FuriThreadStdoutWriteCallback write_callback; - FuriString* buffer; -} FuriThreadStdout_internal; - -typedef struct { - bool is_service; - FuriThreadState state; - int32_t ret; - - FuriThreadCallback callback; - void* context; - - FuriThreadStateCallback state_callback; - void* state_context; - - char* name; - configSTACK_DEPTH_TYPE stack_size; - FuriThreadPriority priority; - - TaskHandle_t task_handle; - bool heap_trace_enabled; - size_t heap_size; - - FuriThreadStdout_internal output; -} FuriThread_internal; - -DICT_DEF2(ViewDict, uint32_t, M_DEFAULT_OPLIST, View*, M_PTR_OPLIST) -typedef struct { - FuriMessageQueue* queue; - Gui* gui; - ViewPort* view_port; - ViewDict_t views; - - View* current_view; - - View* ongoing_input_view; - uint8_t ongoing_input; - - ViewDispatcherCustomEventCallback custom_event_callback; - ViewDispatcherNavigationEventCallback navigation_event_callback; - ViewDispatcherTickEventCallback tick_event_callback; - uint32_t tick_period; - void* event_context; -} ViewDispatcher_internal; - -typedef struct { - Gui* gui; - bool is_enabled; - ViewPortOrientation orientation; - - uint8_t width; - uint8_t height; - - ViewPortDrawCallback draw_callback; - void* draw_callback_context; - - ViewPortInputCallback input_callback; - void* input_callback_context; -} ViewPort_internal; - -typedef struct { - CliCallback callback; - void* context; - uint32_t flags; -} CliCommand_internal; - -#define CLI_COMMANDS_TREE_RANK 4 -BPTREE_DEF2( - CliCommandTree_internal, - CLI_COMMANDS_TREE_RANK, - FuriString*, - FURI_STRING_OPLIST, - CliCommand_internal, - M_POD_OPLIST) - -#define M_OPL_CliCommandTree_internal_t() BPTREE_OPLIST(CliCommandTree_internal, M_POD_OPLIST) - -typedef struct { - CliCommandTree_internal_t commands; - void* mutex; - void* idle_sem; - void* last_line; - void* line; - void* session; - - size_t cursor_position; -} Cli_internal;