timed-remote

Flipper Zero app for sending delayed IR commands
git clone git://src.adamsgaard.dk/timed-remote # fast
git clone https://src.adamsgaard.dk/timed-remote.git # slow
Log | Files | Refs | README | LICENSE Back to index

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 *);