timed_remote.h (1015B)
1 #pragma once 2 3 #include <furi.h> 4 #include <gui/gui.h> 5 #include <gui/modules/popup.h> 6 #include <gui/modules/submenu.h> 7 #include <gui/modules/variable_item_list.h> 8 #include <gui/modules/widget.h> 9 #include <gui/scene_manager.h> 10 #include <gui/view_dispatcher.h> 11 #include <lib/infrared/signal/infrared_signal.h> 12 13 typedef enum 14 { 15 MODE_COUNTDOWN, 16 MODE_SCHEDULED, 17 } ModeId; 18 19 typedef enum 20 { 21 VIEW_MENU, 22 VIEW_LIST, 23 VIEW_RUN, 24 VIEW_POP, 25 } ViewId; 26 27 #define SIGNAL_NAME_MAX_LEN 32 28 #define FILE_PATH_MAX_LEN 256 29 30 typedef struct 31 { 32 Gui *gui; 33 ViewDispatcher *vd; 34 SceneManager *sm; 35 36 Submenu *submenu; 37 VariableItemList *vlist; 38 Widget *widget; 39 Popup *popup; 40 41 InfraredSignal *ir; 42 char sig[SIGNAL_NAME_MAX_LEN]; 43 char file[FILE_PATH_MAX_LEN]; 44 45 ModeId mode; 46 uint8_t h; 47 uint8_t m; 48 uint8_t s; 49 50 uint8_t repeat; /* 0 = off, 255 = unlimited, 1-99 = count */ 51 uint8_t repeat_left; 52 53 FuriTimer *timer; 54 uint32_t left; 55 } TimedRemoteApp; 56 57 TimedRemoteApp *timed_remote_app_alloc(void); 58 void timed_remote_app_free(TimedRemoteApp *);