#pragma once #include <furi.h> #include <gui/gui.h> #include <gui/view.h> #include <gui/scene_manager.h> #include <gui/view_dispatcher.h> #include <gui/modules/widget.h> #include <gui/modules/submenu.h> #include <gui/modules/text_box.h> #include <gui/modules/text_input.h> #include <gui/modules/byte_input.h> #include <rpc/rpc_app.h> #include <notification/notification_messages.h> #include "scenes/rpc_debug_app_scene.h" #define DATA_STORE_SIZE 64U #define TEXT_STORE_SIZE 64U typedef struct { Gui* gui; RpcAppSystem* rpc; SceneManager* scene_manager; ViewDispatcher* view_dispatcher; NotificationApp* notifications; Widget* widget; Submenu* submenu; TextBox* text_box; TextInput* text_input; ByteInput* byte_input; char text_store[TEXT_STORE_SIZE]; uint8_t data_store[DATA_STORE_SIZE]; } RpcDebugApp; typedef enum { RpcDebugAppViewWidget, RpcDebugAppViewSubmenu, RpcDebugAppViewTextBox, RpcDebugAppViewTextInput, RpcDebugAppViewByteInput, } RpcDebugAppView; typedef enum { // Reserve first 100 events for button types and indexes, starting from 0 RpcDebugAppCustomEventInputErrorCode = 100, RpcDebugAppCustomEventInputErrorText, RpcDebugAppCustomEventInputDataExchange, RpcDebugAppCustomEventRpcDataExchange, } RpcDebugAppCustomEvent;