소스 검색

Fixed initial crash after creation of chain with Subghz element

David Lee 1 년 전
부모
커밋
3087d4b2ad
6개의 변경된 파일6개의 추가작업 그리고 22개의 파일을 삭제
  1. 1 1
      application.fam
  2. 3 0
      docs/changelog.md
  3. 1 7
      models/subghz/xremote_sg_remote.c
  4. 0 3
      scenes/xremote_scene_ir_list.c
  5. 0 4
      scenes/xremote_scene_sg_list.c
  6. 1 7
      xremote_i.h

+ 1 - 1
application.fam

@@ -6,7 +6,7 @@ App(
     stack_size=3 * 1024,
     fap_icon="icons/xremote_10px.png",
     fap_icon_assets="icons",
-    fap_version="2.2",
+    fap_version="2.3",
     fap_category="Infrared",
     fap_author="Leedave",
     fap_description="One-Click, sends multiple commands",

+ 3 - 0
docs/changelog.md

@@ -1,3 +1,6 @@
+## 2.3
+- Fixed Crash after creating chains with SubGhz Items
+
 ## 2.2
 - Fixed incompatibility to Flipper-catalog / uFBT compiler
 

+ 1 - 7
models/subghz/xremote_sg_remote.c

@@ -5,7 +5,6 @@
 struct SubGhzRemote {
     FuriString* name;
     FuriString* filename;
-    FuriString* path;
 };
 
 const char* xremote_sg_remote_get_name(SubGhzRemote* remote) {
@@ -20,13 +19,11 @@ SubGhzRemote* xremote_sg_remote_alloc() {
     SubGhzRemote* remote = malloc(sizeof(SubGhzRemote));
     remote->name = furi_string_alloc();
     remote->filename = furi_string_alloc();
-    remote->path = furi_string_alloc();
-
+    
     return remote;
 }
 
 void xremote_sg_remote_free(SubGhzRemote* remote) {
-    furi_string_free(remote->path);
     furi_string_free(remote->name);
     furi_string_free(remote->filename);
 
@@ -52,10 +49,7 @@ bool xremote_sg_remote_load(SubGhzRemote* remote, FuriString* path) {
         if(dotPosition != NULL) { // check if there is a dot in the file name
             *dotPosition = '\0'; // set the dot position to NULL character to truncate the string
         }
-        //remote->name = fileName;
         furi_string_set_str(remote->name, fileName);
-        //furi_string_set_str(remote->filename, fileName);
-        //free(fileName);
         uint32_t version;
         if(!flipper_format_read_header(ff, buf, &version)) break;
         if(!furi_string_equal(buf, "Flipper SubGhz RAW File") || (version != 1)) break;

+ 0 - 3
scenes/xremote_scene_ir_list.c

@@ -23,11 +23,8 @@ void xremote_scene_ir_list_on_enter(void* context) {
 
     if(success) {
         //Load Remote Button View
-        //scene_manager_next_scene(app->scene_manager, XRemoteSceneCreateAdd);
-        //scene_manager_next_scene(app->scene_manager, XRemoteSceneWip);
         scene_manager_next_scene(app->scene_manager, XRemoteSceneIrRemote);
     } else {
-        //scene_manager_next_scene(app->scene_manager, XRemoteSceneWip);
         scene_manager_previous_scene(app->scene_manager);
     }
 }

+ 0 - 4
scenes/xremote_scene_sg_list.c

@@ -19,16 +19,12 @@ void xremote_scene_sg_list_on_enter(void* context) {
         view_dispatcher_switch_to_view(app->view_dispatcher, XRemoteViewIdStack);
 
         xremote_sg_remote_load(app->sg_remote_buffer, app->file_path);
-        //xremote_ir_remote_load(app->ir_remote_buffer, app->file_path);
         xremote_cross_remote_add_subghz(app->cross_remote, app->sg_remote_buffer);
     }
 
     if(success) {
         //Load Remote Button View
-        //scene_manager_next_scene(app->scene_manager, XRemoteSceneCreateAdd);
-        //scene_manager_next_scene(app->scene_manager, XRemoteSceneWip);
         scene_manager_next_scene(app->scene_manager, XRemoteSceneCreate);
-        //scene_manager_next_scene(app->scene_manager, XRemoteSceneIrRemote);
     } else {
         scene_manager_previous_scene(app->scene_manager);
     }

+ 1 - 7
xremote_i.h

@@ -111,10 +111,4 @@ typedef struct CrossRemote CrossRemote;
 typedef struct CrossRemoteItem CrossRemoteItem;
 
 typedef struct XRemoteTransmit XRemoteTransmit;
-typedef struct XRemotePauseSet XRemotePauseSet;
-//typedef struct XRemoteInfoscreen XRemoteInfoscreen;
-
-//typedef struct InfraredRemote InfraredRemote;
-//typedef struct InfraredRemoteButton InfraredRemoteButton;
-//typedef struct InfraredSignal InfraredSignal;
-//typedef struct InfraredRawSignal InfraredRawSignal;
+typedef struct XRemotePauseSet XRemotePauseSet;