Przeglądaj źródła

Remove wifi features in fap for upgrade.

Cody Tolene 1 rok temu
rodzic
commit
aebc47b763

+ 1 - 8
camera_suite.c

@@ -1,4 +1,5 @@
 #include "camera_suite.h"
 #include "camera_suite.h"
+#include <stdlib.h>
 
 
 bool camera_suite_custom_event_callback(void* context, uint32_t event) {
 bool camera_suite_custom_event_callback(void* context, uint32_t event) {
     furi_assert(context);
     furi_assert(context);
@@ -70,12 +71,6 @@ CameraSuite* camera_suite_app_alloc() {
         CameraSuiteViewIdCamera,
         CameraSuiteViewIdCamera,
         camera_suite_view_camera_get_view(app->camera_suite_view_camera));
         camera_suite_view_camera_get_view(app->camera_suite_view_camera));
 
 
-    app->camera_suite_view_wifi_camera = camera_suite_view_wifi_camera_alloc();
-    view_dispatcher_add_view(
-        app->view_dispatcher,
-        CameraSuiteViewIdWiFiCamera,
-        camera_suite_view_wifi_camera_get_view(app->camera_suite_view_wifi_camera));
-
     app->camera_suite_view_guide = camera_suite_view_guide_alloc();
     app->camera_suite_view_guide = camera_suite_view_guide_alloc();
     view_dispatcher_add_view(
     view_dispatcher_add_view(
         app->view_dispatcher,
         app->view_dispatcher,
@@ -109,7 +104,6 @@ void camera_suite_app_free(CameraSuite* app) {
     view_dispatcher_remove_view(app->view_dispatcher, CameraSuiteViewIdStartscreen);
     view_dispatcher_remove_view(app->view_dispatcher, CameraSuiteViewIdStartscreen);
     view_dispatcher_remove_view(app->view_dispatcher, CameraSuiteViewIdMenu);
     view_dispatcher_remove_view(app->view_dispatcher, CameraSuiteViewIdMenu);
     view_dispatcher_remove_view(app->view_dispatcher, CameraSuiteViewIdCamera);
     view_dispatcher_remove_view(app->view_dispatcher, CameraSuiteViewIdCamera);
-    view_dispatcher_remove_view(app->view_dispatcher, CameraSuiteViewIdWiFiCamera);
     view_dispatcher_remove_view(app->view_dispatcher, CameraSuiteViewIdGuide);
     view_dispatcher_remove_view(app->view_dispatcher, CameraSuiteViewIdGuide);
     view_dispatcher_remove_view(app->view_dispatcher, CameraSuiteViewIdAppSettings);
     view_dispatcher_remove_view(app->view_dispatcher, CameraSuiteViewIdAppSettings);
     view_dispatcher_remove_view(app->view_dispatcher, CameraSuiteViewIdCamSettings);
     view_dispatcher_remove_view(app->view_dispatcher, CameraSuiteViewIdCamSettings);
@@ -121,7 +115,6 @@ void camera_suite_app_free(CameraSuite* app) {
     // Free remaining resources
     // Free remaining resources
     camera_suite_view_start_free(app->camera_suite_view_start);
     camera_suite_view_start_free(app->camera_suite_view_start);
     camera_suite_view_camera_free(app->camera_suite_view_camera);
     camera_suite_view_camera_free(app->camera_suite_view_camera);
-    camera_suite_view_wifi_camera_free(app->camera_suite_view_wifi_camera);
     camera_suite_view_guide_free(app->camera_suite_view_guide);
     camera_suite_view_guide_free(app->camera_suite_view_guide);
 
 
     button_menu_free(app->button_menu);
     button_menu_free(app->button_menu);

+ 0 - 32
camera_suite.h

@@ -2,8 +2,6 @@
 
 
 #include <furi.h>
 #include <furi.h>
 #include <furi_hal.h>
 #include <furi_hal.h>
-#include <furi_hal_serial.h>
-#include <furi_hal_serial_control.h>
 #include <gui/gui.h>
 #include <gui/gui.h>
 #include <gui/modules/button_menu.h>
 #include <gui/modules/button_menu.h>
 #include <gui/modules/submenu.h>
 #include <gui/modules/submenu.h>
@@ -19,26 +17,8 @@
 #include "views/camera_suite_view_camera.h"
 #include "views/camera_suite_view_camera.h"
 #include "views/camera_suite_view_guide.h"
 #include "views/camera_suite_view_guide.h"
 #include "views/camera_suite_view_start.h"
 #include "views/camera_suite_view_start.h"
-#include "views/camera_suite_view_wifi_camera.h"
 
 
 #define TAG "Camera Suite"
 #define TAG "Camera Suite"
-#include <furi.h>
-#define FLIPPER_SCREEN_HEIGHT 64
-#define FLIPPER_SCREEN_WIDTH 128
-
-#define WORKER_EVENTS_MASK (WorkerEventStop | WorkerEventRx)
-
-#ifdef xtreme_settings
-/**
- * Enable the following line for "Xtreme Firmware" & "Xtreme Apps" (Flipper-XFW).
- * 
- * @see https://github.com/Flipper-XFW/Xtreme-Firmware
- * @see https://github.com/Flipper-XFW/Xtreme-Apps
-*/
-#define UART_CH (xtreme_settings.uart_esp_channel)
-#else
-#define UART_CH (FuriHalSerialIdUsart)
-#endif
 
 
 typedef struct {
 typedef struct {
     Gui* gui;
     Gui* gui;
@@ -49,7 +29,6 @@ typedef struct {
     VariableItemList* variable_item_list;
     VariableItemList* variable_item_list;
     CameraSuiteViewStart* camera_suite_view_start;
     CameraSuiteViewStart* camera_suite_view_start;
     CameraSuiteViewCamera* camera_suite_view_camera;
     CameraSuiteViewCamera* camera_suite_view_camera;
-    CameraSuiteViewWiFiCamera* camera_suite_view_wifi_camera;
     CameraSuiteViewGuide* camera_suite_view_guide;
     CameraSuiteViewGuide* camera_suite_view_guide;
     uint32_t orientation;
     uint32_t orientation;
     uint32_t dither;
     uint32_t dither;
@@ -59,16 +38,12 @@ typedef struct {
     uint32_t speaker;
     uint32_t speaker;
     uint32_t led;
     uint32_t led;
     ButtonMenu* button_menu;
     ButtonMenu* button_menu;
-    FuriHalSerialHandle* serial_handle;
-    FuriStreamBuffer* rx_stream;
-    FuriThread* worker_thread;
 } CameraSuite;
 } CameraSuite;
 
 
 typedef enum {
 typedef enum {
     CameraSuiteViewIdStartscreen,
     CameraSuiteViewIdStartscreen,
     CameraSuiteViewIdMenu,
     CameraSuiteViewIdMenu,
     CameraSuiteViewIdCamera,
     CameraSuiteViewIdCamera,
-    CameraSuiteViewIdWiFiCamera,
     CameraSuiteViewIdGuide,
     CameraSuiteViewIdGuide,
     CameraSuiteViewIdAppSettings,
     CameraSuiteViewIdAppSettings,
     CameraSuiteViewIdCamSettings,
     CameraSuiteViewIdCamSettings,
@@ -111,10 +86,3 @@ typedef enum {
     CameraSuiteLedOff,
     CameraSuiteLedOff,
     CameraSuiteLedOn,
     CameraSuiteLedOn,
 } CameraSuiteLedState;
 } CameraSuiteLedState;
-
-typedef enum {
-    // Reserved for StreamBuffer internal event
-    WorkerEventReserved = (1 << 0),
-    WorkerEventStop = (1 << 1),
-    WorkerEventRx = (1 << 2),
-} WorkerEventFlags;

+ 5 - 0
docs/CHANGELOG.md

@@ -5,6 +5,11 @@
 - Full screen 90 degree and 270 degree fill (#6).
 - Full screen 90 degree and 270 degree fill (#6).
 - WiFi streaming/connection support (#35).
 - WiFi streaming/connection support (#35).
 
 
+## v1.7
+
+- Add support for new Flipper Zero Firmware UART updates.
+- Remove staged WiFi streaming/connection support for now. Until I can fully test.
+
 ## v1.6
 ## v1.6
 
 
 - Add new splash/start screen.
 - Add new splash/start screen.

+ 0 - 7
helpers/camera_suite_custom_event.h

@@ -15,13 +15,6 @@ typedef enum {
     CameraSuiteCustomEventSceneCameraRight,
     CameraSuiteCustomEventSceneCameraRight,
     CameraSuiteCustomEventSceneCameraOk,
     CameraSuiteCustomEventSceneCameraOk,
     CameraSuiteCustomEventSceneCameraBack,
     CameraSuiteCustomEventSceneCameraBack,
-    // Scene events: WiFi Camera
-    CameraSuiteCustomEventSceneWiFiCameraUp,
-    CameraSuiteCustomEventSceneWiFiCameraDown,
-    CameraSuiteCustomEventSceneWiFiCameraLeft,
-    CameraSuiteCustomEventSceneWiFiCameraRight,
-    CameraSuiteCustomEventSceneWiFiCameraOk,
-    CameraSuiteCustomEventSceneWiFiCameraBack,
     // Scene events: Guide
     // Scene events: Guide
     CameraSuiteCustomEventSceneGuideUp,
     CameraSuiteCustomEventSceneGuideUp,
     CameraSuiteCustomEventSceneGuideDown,
     CameraSuiteCustomEventSceneGuideDown,

+ 0 - 1
scenes/camera_suite_scene_config.h

@@ -1,7 +1,6 @@
 ADD_SCENE(camera_suite, start, Start)
 ADD_SCENE(camera_suite, start, Start)
 ADD_SCENE(camera_suite, menu, Menu)
 ADD_SCENE(camera_suite, menu, Menu)
 ADD_SCENE(camera_suite, camera, Camera)
 ADD_SCENE(camera_suite, camera, Camera)
-ADD_SCENE(camera_suite, wifi_camera, WiFiCamera)
 ADD_SCENE(camera_suite, guide, Guide)
 ADD_SCENE(camera_suite, guide, Guide)
 ADD_SCENE(camera_suite, app_settings, AppSettings)
 ADD_SCENE(camera_suite, app_settings, AppSettings)
 ADD_SCENE(camera_suite, cam_settings, CamSettings)
 ADD_SCENE(camera_suite, cam_settings, CamSettings)

+ 0 - 14
scenes/camera_suite_scene_menu.c

@@ -3,8 +3,6 @@
 enum SubmenuIndex {
 enum SubmenuIndex {
     /** Camera. */
     /** Camera. */
     SubmenuIndexSceneCamera = 10,
     SubmenuIndexSceneCamera = 10,
-    /** WiFi Camera */
-    SubmenuIndexSceneWiFiCamera,
     /** Cam settings menu. */
     /** Cam settings menu. */
     SubmenuIndexCamSettings,
     SubmenuIndexCamSettings,
     /** App settings menu. */
     /** App settings menu. */
@@ -28,13 +26,6 @@ void camera_suite_scene_menu_on_enter(void* context) {
         camera_suite_scene_menu_submenu_callback,
         camera_suite_scene_menu_submenu_callback,
         app);
         app);
 
 
-    submenu_add_item(
-        app->submenu,
-        "Stream Camera to WiFi",
-        SubmenuIndexSceneWiFiCamera,
-        camera_suite_scene_menu_submenu_callback,
-        app);
-
     submenu_add_item(
     submenu_add_item(
         app->submenu,
         app->submenu,
         "Camera Settings",
         "Camera Settings",
@@ -76,11 +67,6 @@ bool camera_suite_scene_menu_on_event(void* context, SceneManagerEvent event) {
                 app->scene_manager, CameraSuiteSceneMenu, SubmenuIndexSceneCamera);
                 app->scene_manager, CameraSuiteSceneMenu, SubmenuIndexSceneCamera);
             scene_manager_next_scene(app->scene_manager, CameraSuiteSceneCamera);
             scene_manager_next_scene(app->scene_manager, CameraSuiteSceneCamera);
             return true;
             return true;
-        } else if(event.event == SubmenuIndexSceneWiFiCamera) {
-            scene_manager_set_scene_state(
-                app->scene_manager, CameraSuiteSceneMenu, SubmenuIndexSceneWiFiCamera);
-            scene_manager_next_scene(app->scene_manager, CameraSuiteSceneWiFiCamera);
-            return true;
         } else if(event.event == SubmenuIndexAppSettings) {
         } else if(event.event == SubmenuIndexAppSettings) {
             scene_manager_set_scene_state(
             scene_manager_set_scene_state(
                 app->scene_manager, CameraSuiteSceneMenu, SubmenuIndexAppSettings);
                 app->scene_manager, CameraSuiteSceneMenu, SubmenuIndexAppSettings);

+ 0 - 51
scenes/camera_suite_scene_wifi_camera.c

@@ -1,51 +0,0 @@
-#include "../camera_suite.h"
-#include "../helpers/camera_suite_custom_event.h"
-#include "../views/camera_suite_view_wifi_camera.h"
-
-void camera_suite_view_wifi_camera_callback(CameraSuiteCustomEvent event, void* context) {
-    furi_assert(context);
-    CameraSuite* app = context;
-    view_dispatcher_send_custom_event(app->view_dispatcher, event);
-}
-
-void camera_suite_scene_wifi_camera_on_enter(void* context) {
-    furi_assert(context);
-    CameraSuite* app = context;
-    camera_suite_view_wifi_camera_set_callback(
-        app->camera_suite_view_wifi_camera, camera_suite_view_wifi_camera_callback, app);
-    view_dispatcher_switch_to_view(app->view_dispatcher, CameraSuiteViewIdWiFiCamera);
-}
-
-bool camera_suite_scene_wifi_camera_on_event(void* context, SceneManagerEvent event) {
-    CameraSuite* app = context;
-    bool consumed = false;
-
-    if(event.type == SceneManagerEventTypeCustom) {
-        switch(event.event) {
-        case CameraSuiteCustomEventSceneWiFiCameraLeft:
-        case CameraSuiteCustomEventSceneWiFiCameraRight:
-        case CameraSuiteCustomEventSceneWiFiCameraUp:
-        case CameraSuiteCustomEventSceneWiFiCameraDown:
-            // Do nothing.
-            break;
-        case CameraSuiteCustomEventSceneWiFiCameraBack:
-            notification_message(app->notification, &sequence_reset_red);
-            notification_message(app->notification, &sequence_reset_green);
-            notification_message(app->notification, &sequence_reset_blue);
-            if(!scene_manager_search_and_switch_to_previous_scene(
-                   app->scene_manager, CameraSuiteSceneMenu)) {
-                scene_manager_stop(app->scene_manager);
-                view_dispatcher_stop(app->view_dispatcher);
-            }
-            consumed = true;
-            break;
-        }
-    }
-
-    return consumed;
-}
-
-void camera_suite_scene_wifi_camera_on_exit(void* context) {
-    CameraSuite* app = context;
-    UNUSED(app);
-}

+ 2 - 0
views/camera_suite_view_camera.c

@@ -12,6 +12,8 @@
 #define HEADER_LENGTH 3 // 'Y', ':', and row identifier
 #define HEADER_LENGTH 3 // 'Y', ':', and row identifier
 #define LAST_ROW_INDEX 1008
 #define LAST_ROW_INDEX 1008
 #define ROW_BUFFER_LENGTH 16
 #define ROW_BUFFER_LENGTH 16
+#define RING_BUFFER_LENGTH 19
+#define FRAME_BUFFER_LENGTH 1024
 
 
 static const unsigned char bitmap_header[BITMAP_HEADER_LENGTH] = {
 static const unsigned char bitmap_header[BITMAP_HEADER_LENGTH] = {
     0x42, 0x4D, 0x3E, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x28, 0x00,
     0x42, 0x4D, 0x3E, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x00, 0x00, 0x00, 0x28, 0x00,

+ 18 - 2
views/camera_suite_view_camera.h

@@ -1,12 +1,28 @@
 #pragma once
 #pragma once
 
 
-#define RING_BUFFER_LENGTH 19
-#define FRAME_BUFFER_LENGTH 1024
+#include <furi_hal_serial.h>
+#include <furi_hal_serial_control.h>
+
+#define FLIPPER_SCREEN_HEIGHT 64
+#define FLIPPER_SCREEN_WIDTH 128
+
+#define WORKER_EVENTS_MASK (WorkerEventStop | WorkerEventRx)
+#define UART_CH (FuriHalSerialIdUsart)
 
 
 typedef void (*CameraSuiteViewCameraCallback)(CameraSuiteCustomEvent event, void* context);
 typedef void (*CameraSuiteViewCameraCallback)(CameraSuiteCustomEvent event, void* context);
 
 
+typedef enum {
+    // Reserved for StreamBuffer internal event
+    WorkerEventReserved = (1 << 0),
+    WorkerEventStop = (1 << 1),
+    WorkerEventRx = (1 << 2),
+} WorkerEventFlags;
+
 typedef struct CameraSuiteViewCamera {
 typedef struct CameraSuiteViewCamera {
     CameraSuiteViewCameraCallback callback;
     CameraSuiteViewCameraCallback callback;
+    FuriHalSerialHandle* serial_handle;
+    FuriStreamBuffer* rx_stream;
+    FuriThread* worker_thread;
     View* view;
     View* view;
     void* context;
     void* context;
 } CameraSuiteViewCamera;
 } CameraSuiteViewCamera;

+ 0 - 253
views/camera_suite_view_wifi_camera.c

@@ -1,253 +0,0 @@
-#include "../camera_suite.h"
-#include "camera_suite_view_wifi_camera.h"
-
-#include "../helpers/camera_suite_haptic.h"
-#include "../helpers/camera_suite_led.h"
-#include "../helpers/camera_suite_speaker.h"
-#include "../helpers/camera_suite_custom_event.h"
-// #include "../helpers/camera_suite_uart.h"
-
-static void camera_suite_view_wifi_camera_draw(Canvas* canvas, void* wifi_model) {
-    furi_assert(canvas);
-    furi_assert(wifi_model);
-
-    UartDumpModel* model = wifi_model;
-
-    canvas_clear(canvas);
-    canvas_set_color(canvas, ColorBlack);
-    canvas_set_font(canvas, FontSecondary);
-    canvas_draw_frame(canvas, 0, 0, FLIPPER_SCREEN_HEIGHT, FLIPPER_SCREEN_HEIGHT);
-
-    canvas_draw_str_aligned(canvas, 3, 3, AlignLeft, AlignTop, "Starting WiFi Stream at:");
-
-    // Draw log from camera.
-    canvas_draw_str_aligned(canvas, 3, 13, AlignLeft, AlignTop, furi_string_get_cstr(model->log));
-}
-
-static int32_t camera_suite_wifi_camera_worker(void* wifi_view_instance) {
-    furi_assert(wifi_view_instance);
-
-    CameraSuiteViewWiFiCamera* instance = wifi_view_instance;
-    CameraSuite* app_instance = instance->context;
-
-    while(1) {
-        uint32_t events =
-            furi_thread_flags_wait(WORKER_EVENTS_MASK, FuriFlagWaitAny, FuriWaitForever);
-
-        // Check if an error occurred.
-        furi_check((events & FuriFlagError) == 0);
-
-        // Check if the thread should stop.
-        if(events & WorkerEventStop) {
-            break;
-        } else if(events & WorkerEventRx) {
-            size_t length = 0;
-            do {
-                size_t buffer_size = 320;
-                uint8_t data[buffer_size];
-                length = furi_stream_buffer_receive(app_instance->rx_stream, data, buffer_size, 0);
-                if(length > 0) {
-                    data[length] = '\0';
-
-                    with_view_model(
-                        instance->view,
-                        UartDumpModel * model,
-                        {
-                            furi_string_cat_printf(model->log, "%s", data);
-
-                            // Truncate if too long.
-                            model->log_strlen += length;
-                            if(model->log_strlen >= 4096 - 1) {
-                                furi_string_right(model->log, model->log_strlen / 2);
-                                model->log_strlen = furi_string_size(model->log) + length;
-                            }
-                        },
-                        true);
-                }
-            } while(length > 0);
-
-            with_view_model(
-                instance->view, UartDumpModel * model, { UNUSED(model); }, true);
-        }
-    }
-
-    return 0;
-}
-
-static bool
-    camera_suite_view_wifi_camera_input(InputEvent* input_event, void* wifi_view_instance) {
-    furi_assert(wifi_view_instance);
-    furi_assert(input_event);
-
-    CameraSuiteViewWiFiCamera* instance = wifi_view_instance;
-    CameraSuite* app_instance = instance->context;
-    uint8_t data[1];
-
-    if(input_event->type == InputTypeRelease) {
-        switch(input_event->key) {
-        default:
-            with_view_model(
-                instance->view,
-                UartDumpModel * model,
-                {
-                    UNUSED(model);
-                    // Stop all sounds, reset the LED.
-                    camera_suite_play_bad_bump(instance->context);
-                    camera_suite_stop_all_sound(instance->context);
-                    camera_suite_led_set_rgb(instance->context, 0, 0, 0);
-                },
-                true);
-            break;
-        }
-    } else if(input_event->type == InputTypePress) {
-        switch(input_event->key) {
-        case InputKeyBack: {
-            with_view_model(
-                instance->view,
-                UartDumpModel * model,
-                {
-                    UNUSED(model);
-
-                    // Stop camera WiFi stream.
-                    data[0] = 'w';
-                    furi_hal_serial_tx(app_instance->serial_handle, data, 1);
-                    furi_delay_ms(50);
-
-                    // Go back to the main menu.
-                    instance->callback(
-                        CameraSuiteCustomEventSceneWiFiCameraBack, instance->context);
-                },
-                true);
-            break;
-        }
-        case InputKeyLeft:
-        case InputKeyRight:
-        case InputKeyUp:
-        case InputKeyDown:
-        case InputKeyOk:
-        case InputKeyMAX:
-        default: {
-            break;
-        }
-        }
-    }
-
-    return false;
-}
-
-static void camera_suite_view_wifi_camera_exit(void* wifi_view_instance) {
-    UNUSED(wifi_view_instance);
-}
-
-static void camera_suite_view_wifi_camera_model_init(UartDumpModel* const model) {
-    model->log = furi_string_alloc();
-    furi_string_reserve(model->log, 4096);
-}
-
-static void camera_suite_view_wifi_camera_enter(void* wifi_view_instance) {
-    furi_assert(wifi_view_instance);
-
-    CameraSuiteViewWiFiCamera* instance = wifi_view_instance;
-    CameraSuite* app_instance = instance->context;
-
-    // Start wifi camera stream.
-    uint8_t data[1] = {'W'};
-    furi_hal_serial_tx(app_instance->serial_handle, data, 1);
-    furi_delay_ms(50);
-
-    with_view_model(
-        instance->view,
-        UartDumpModel * model,
-        { camera_suite_view_wifi_camera_model_init(model); },
-        true);
-}
-
-static void wifi_camera_callback(
-    FuriHalSerialHandle* handle,
-    FuriHalSerialRxEvent event,
-    void* wifi_view_instance) {
-    furi_assert(handle);
-    furi_assert(wifi_view_instance);
-
-    CameraSuiteViewWiFiCamera* instance = wifi_view_instance;
-    CameraSuite* app_instance = instance->context;
-
-    if(event == FuriHalSerialRxEventData) {
-        uint8_t data = furi_hal_serial_async_rx(handle);
-        furi_stream_buffer_send(app_instance->rx_stream, &data, 1, 0);
-        furi_thread_flags_set(furi_thread_get_id(app_instance->worker_thread), WorkerEventRx);
-    }
-}
-
-CameraSuiteViewWiFiCamera* camera_suite_view_wifi_camera_alloc() {
-    CameraSuiteViewWiFiCamera* instance = malloc(sizeof(CameraSuiteViewWiFiCamera));
-
-    // Allocate the view object
-    instance->view = view_alloc();
-
-    // Allocate model
-    view_allocate_model(instance->view, ViewModelTypeLocking, sizeof(UartDumpModel));
-
-    // Set context for the view
-    view_set_context(instance->view, instance);
-
-    // Set draw callback
-    view_set_draw_callback(instance->view, (ViewDrawCallback)camera_suite_view_wifi_camera_draw);
-
-    // Set input callback
-    view_set_input_callback(instance->view, camera_suite_view_wifi_camera_input);
-
-    // Set enter callback
-    view_set_enter_callback(instance->view, camera_suite_view_wifi_camera_enter);
-
-    // Set exit callback
-    view_set_exit_callback(instance->view, camera_suite_view_wifi_camera_exit);
-
-    // Allocate the UART worker thread for the camera.
-    // CameraSuite* app_instance = instance->context;
-    // camera_suite_uart_alloc(app_instance, wifi_camera_callback);
-
-    with_view_model(
-        instance->view,
-        UartDumpModel * model,
-        { camera_suite_view_wifi_camera_model_init(model); },
-        true);
-
-    return instance;
-}
-
-void camera_suite_view_wifi_camera_free(CameraSuiteViewWiFiCamera* instance) {
-    furi_assert(instance);
-
-    CameraSuite* app_instance = instance->context;
-
-    // Free the worker thread.
-    furi_thread_flags_set(furi_thread_get_id(app_instance->worker_thread), WorkerEventStop);
-    furi_thread_join(app_instance->worker_thread);
-    furi_thread_free(app_instance->worker_thread);
-
-    // Free the allocated stream buffer.
-    furi_stream_buffer_free(app_instance->rx_stream);
-
-    // camera_suite_uart_free(app_instance);
-
-    with_view_model(
-        instance->view, UartDumpModel * model, { furi_string_free(model->log); }, true);
-    view_free(instance->view);
-    free(instance);
-}
-
-View* camera_suite_view_wifi_camera_get_view(CameraSuiteViewWiFiCamera* instance) {
-    furi_assert(instance);
-    return instance->view;
-}
-
-void camera_suite_view_wifi_camera_set_callback(
-    CameraSuiteViewWiFiCamera* instance,
-    CameraSuiteViewWiFiCameraCallback callback,
-    void* context) {
-    furi_assert(instance);
-    furi_assert(callback);
-    instance->callback = callback;
-    instance->context = context;
-}

+ 0 - 25
views/camera_suite_view_wifi_camera.h

@@ -1,25 +0,0 @@
-#pragma once
-
-typedef void (*CameraSuiteViewWiFiCameraCallback)(CameraSuiteCustomEvent event, void* context);
-
-typedef struct CameraSuiteViewWiFiCamera {
-    CameraSuiteViewWiFiCameraCallback callback;
-    View* view;
-    void* context;
-} CameraSuiteViewWiFiCamera;
-
-typedef struct UartWiFiModel {
-    FuriString* log;
-    size_t log_strlen;
-} UartWiFiModel;
-
-void camera_suite_view_wifi_camera_set_callback(
-    CameraSuiteViewWiFiCamera* wifi_view_instance,
-    CameraSuiteViewWiFiCameraCallback callback,
-    void* context);
-
-CameraSuiteViewWiFiCamera* camera_suite_view_wifi_camera_alloc();
-
-void camera_suite_view_wifi_camera_free(CameraSuiteViewWiFiCamera* wifi_view_instance);
-
-View* camera_suite_view_wifi_camera_get_view(CameraSuiteViewWiFiCamera* wifi_view_instance);