updater_i.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #pragma once
  2. #include "views/updater_main.h"
  3. #include "util/update_task.h"
  4. #include <furi.h>
  5. #include <gui/gui.h>
  6. #include <gui/view_stack.h>
  7. #include <gui/view_dispatcher.h>
  8. #include <gui/modules/popup.h>
  9. #include <gui/scene_manager.h>
  10. #include <gui/modules/widget.h>
  11. #include <storage/storage.h>
  12. #include <update_util/update_operation.h>
  13. #ifdef __cplusplus
  14. extern "C" {
  15. #endif
  16. #define UPDATER_APP_TICK 500
  17. typedef enum {
  18. UpdaterViewMain,
  19. UpdaterViewWidget,
  20. } UpdaterViewEnum;
  21. typedef enum {
  22. UpdaterCustomEventUnknown,
  23. UpdaterCustomEventStartUpdate,
  24. UpdaterCustomEventRetryUpdate,
  25. UpdaterCustomEventCancelUpdate,
  26. UpdaterCustomEventSdUnmounted,
  27. } UpdaterCustomEvent;
  28. typedef struct UpdaterManifestProcessingState {
  29. UpdateManifest* manifest;
  30. string_t message;
  31. bool ready_to_be_applied;
  32. } UpdaterManifestProcessingState;
  33. typedef struct {
  34. // GUI
  35. Gui* gui;
  36. SceneManager* scene_manager;
  37. ViewDispatcher* view_dispatcher;
  38. Storage* storage;
  39. UpdaterMainView* main_view;
  40. UpdaterManifestProcessingState* pending_update;
  41. UpdatePrepareResult preparation_result;
  42. UpdateTask* update_task;
  43. Widget* widget;
  44. string_t startup_arg;
  45. int32_t idle_ticks;
  46. } Updater;
  47. Updater* updater_alloc(const char* arg);
  48. void updater_free(Updater* updater);
  49. #ifdef __cplusplus
  50. }
  51. #endif