camera_suite.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. #pragma once
  2. #include <furi.h>
  3. #include <furi_hal.h>
  4. #include <gui/gui.h>
  5. #include <gui/modules/button_menu.h>
  6. #include <gui/modules/submenu.h>
  7. #include <gui/modules/variable_item_list.h>
  8. #include <gui/scene_manager.h>
  9. #include <gui/view_dispatcher.h>
  10. #include <input/input.h>
  11. #include <notification/notification_messages.h>
  12. #include <stdlib.h>
  13. #include "scenes/camera_suite_scene.h"
  14. #include "views/camera_suite_view_guide.h"
  15. #include "views/camera_suite_view_start.h"
  16. #include "views/camera_suite_view_camera.h"
  17. #include "helpers/camera_suite_storage.h"
  18. #define TAG "Camera Suite"
  19. #ifdef xtreme_settings
  20. /**
  21. * Enable the following line for "Xtreme Firmware" & "Xtreme Apps" (Flipper-XFW).
  22. *
  23. * @see https://github.com/Flipper-XFW/Xtreme-Firmware
  24. * @see https://github.com/Flipper-XFW/Xtreme-Apps
  25. */
  26. #define UART_CH (xtreme_settings.uart_esp_channel)
  27. #elif momentum_settings
  28. /**
  29. * Enable the following line for "Momentum Firmware" & "Momentum Apps".
  30. *
  31. * @see https://github.com/Next-Flip/Momentum-Firmware
  32. * @see https://github.com/Next-Flip/Momentum-Apps
  33. */
  34. #define UART_CH (momentum_settings.uart_esp_channel)
  35. #else
  36. #define UART_CH (FuriHalSerialIdUsart)
  37. #endif
  38. typedef struct {
  39. Gui* gui;
  40. NotificationApp* notification;
  41. ViewDispatcher* view_dispatcher;
  42. Submenu* submenu;
  43. SceneManager* scene_manager;
  44. VariableItemList* variable_item_list;
  45. CameraSuiteViewStart* camera_suite_view_start;
  46. CameraSuiteViewCamera* camera_suite_view_camera;
  47. CameraSuiteViewGuide* camera_suite_view_guide;
  48. uint32_t orientation;
  49. uint32_t dither;
  50. uint32_t flash;
  51. uint32_t haptic;
  52. uint32_t jpeg;
  53. uint32_t speaker;
  54. uint32_t led;
  55. ButtonMenu* button_menu;
  56. } CameraSuite;
  57. typedef enum {
  58. CameraSuiteViewIdStartscreen,
  59. CameraSuiteViewIdMenu,
  60. CameraSuiteViewIdCamera,
  61. CameraSuiteViewIdGuide,
  62. CameraSuiteViewIdAppSettings,
  63. CameraSuiteViewIdCamSettings,
  64. } CameraSuiteViewId;
  65. typedef enum {
  66. CameraSuiteOrientation0,
  67. CameraSuiteOrientation90,
  68. CameraSuiteOrientation180,
  69. CameraSuiteOrientation270,
  70. } CameraSuiteOrientationState;
  71. typedef enum {
  72. CameraSuiteDitherFloydSteinberg,
  73. CameraSuiteDitherStucki,
  74. CameraSuiteDitherJarvisJudiceNinke,
  75. } CameraSuiteDitherState;
  76. typedef enum {
  77. CameraSuiteFlashOff,
  78. CameraSuiteFlashOn,
  79. } CameraSuiteFlashState;
  80. typedef enum {
  81. CameraSuiteJpegOff,
  82. CameraSuiteJpegOn,
  83. } CameraSuiteJpegState;
  84. typedef enum {
  85. CameraSuiteHapticOff,
  86. CameraSuiteHapticOn,
  87. } CameraSuiteHapticState;
  88. typedef enum {
  89. CameraSuiteSpeakerOff,
  90. CameraSuiteSpeakerOn,
  91. } CameraSuiteSpeakerState;
  92. typedef enum {
  93. CameraSuiteLedOff,
  94. CameraSuiteLedOn,
  95. } CameraSuiteLedState;