scened_app.h 996 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #pragma once
  2. #include <furi.h>
  3. #include <furi_hal.h>
  4. #include <generic_scene.hpp>
  5. #include <scene_controller.hpp>
  6. #include <view_controller.hpp>
  7. #include <record_controller.hpp>
  8. #include <text_store.h>
  9. #include <view_modules/submenu_vm.h>
  10. #include <view_modules/byte_input_vm.h>
  11. #include <notification/notification_messages.h>
  12. class ScenedApp {
  13. public:
  14. enum class EventType : uint8_t {
  15. GENERIC_EVENT_ENUM_VALUES,
  16. MenuSelected,
  17. ByteEditResult,
  18. };
  19. enum class SceneType : uint8_t {
  20. GENERIC_SCENE_ENUM_VALUES,
  21. ByteInputScene,
  22. };
  23. class Event {
  24. public:
  25. union {
  26. int32_t menu_index;
  27. } payload;
  28. EventType type;
  29. };
  30. SceneController<GenericScene<ScenedApp>, ScenedApp> scene_controller;
  31. TextStore text_store;
  32. ViewController<ScenedApp, SubmenuVM, ByteInputVM> view_controller;
  33. RecordController<NotificationApp> notification;
  34. ~ScenedApp();
  35. ScenedApp();
  36. void run();
  37. };