David Lee 1 год назад
Родитель
Сommit
dd546b58af

+ 5 - 0
models/cross/xremote_cross_remote.c

@@ -144,6 +144,11 @@ void xremote_cross_remote_rename_item(CrossRemote* remote, size_t index, const c
     xremote_cross_remote_item_set_name(item, name);
 }
 
+int16_t xremote_cross_remote_get_item_type(CrossRemote* remote, size_t index) {
+    CrossRemoteItem* item = xremote_cross_remote_get_item(remote, index);
+    return xremote_cross_remote_item_get_type(item);
+}
+
 static void xremote_cross_remote_set_name(CrossRemote* remote, const char* name) {
     furi_string_set(remote->name, name);
 }

+ 1 - 0
models/cross/xremote_cross_remote.h

@@ -23,6 +23,7 @@ void xremote_cross_remote_remove_item(CrossRemote* remote, size_t index);
 void xremote_cross_remote_rename_item(CrossRemote* remote, size_t index, const char* name);
 size_t xremote_cross_remote_get_item_count(CrossRemote* remote);
 CrossRemoteItem* xremote_cross_remote_get_item(CrossRemote* remote, size_t index);
+int16_t xremote_cross_remote_get_item_type(CrossRemote* remote, size_t index);
 
 bool xremote_cross_remote_save_new(CrossRemote* remote, const char* name);
 bool xremote_cross_remote_delete(CrossRemote* remote);

+ 4 - 0
models/cross/xremote_cross_remote_item.c

@@ -224,6 +224,10 @@ void xremote_cross_remote_item_set_sg_signal(CrossRemoteItem* item, SubGhzRemote
     item->sg_signal = subghz;
 }
 
+int16_t xremote_cross_remote_item_get_type(CrossRemoteItem* item) {
+    return item->type;
+}
+
 const char* xremote_cross_remote_item_get_name(CrossRemoteItem* item) {
     return furi_string_get_cstr(item->name);
 }

+ 1 - 0
models/cross/xremote_cross_remote_item.h

@@ -15,6 +15,7 @@ void xremote_cross_remote_item_set_filename(CrossRemoteItem* item, const char* f
 const char* xremote_cross_remote_item_get_filename(CrossRemoteItem* item);
 
 void xremote_cross_remote_item_set_type(CrossRemoteItem* item, int type);
+int16_t xremote_cross_remote_item_get_type(CrossRemoteItem* item);
 void xremote_cross_remote_item_set_time(CrossRemoteItem* item, uint32_t time);
 uint32_t xremote_cross_remote_item_get_time(CrossRemoteItem* item);
 

+ 7 - 0
scenes/xremote_scene_edit_item.c

@@ -3,6 +3,7 @@
 
 enum SubmenuIndexEdit {
     SubmenuIndexRename = 10,
+    SubmenuIndexTiming,
     SubmenuIndexDelete,
 };
 
@@ -15,6 +16,12 @@ void xremote_scene_edit_item_on_enter(void* context) {
     XRemote* app = context;
     submenu_add_item(
         app->editmenu, "Rename", SubmenuIndexRename, xremote_scene_edit_item_submenu_callback, app);
+    
+    if(xremote_cross_remote_get_item_type(app->cross_remote, app->edit_item) == XRemoteRemoteItemTypeInfrared) {
+        submenu_add_item(
+        app->editmenu, "Set Timing", SubmenuIndexRename, xremote_scene_edit_item_submenu_callback, app);
+    }
+
     submenu_add_item(
         app->editmenu, "Delete", SubmenuIndexDelete, xremote_scene_edit_item_submenu_callback, app);