subrem_scene_start.c 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. #include "../subghz_remote_app_i.h"
  2. #include "../helpers/subrem_custom_event.h"
  3. void subrem_scene_start_submenu_callback(void* context, uint32_t index) {
  4. furi_assert(context);
  5. SubGhzRemoteApp* app = context;
  6. view_dispatcher_send_custom_event(app->view_dispatcher, index);
  7. }
  8. void subrem_scene_start_on_enter(void* context) {
  9. furi_assert(context);
  10. SubGhzRemoteApp* app = context;
  11. Submenu* submenu = app->submenu;
  12. submenu_add_item(
  13. submenu,
  14. "Open Map File",
  15. SubmenuIndexSubRemOpenMapFile,
  16. subrem_scene_start_submenu_callback,
  17. app);
  18. #ifdef FURI_DEBUG
  19. submenu_add_item(
  20. submenu,
  21. "Remote_Debug",
  22. SubmenuIndexSubRemRemoteView,
  23. subrem_scene_start_submenu_callback,
  24. app);
  25. #endif
  26. submenu_add_item(
  27. submenu,
  28. "Edit Map File",
  29. SubmenuIndexSubRemEditMapFile,
  30. subrem_scene_start_submenu_callback,
  31. app);
  32. submenu_add_item(
  33. submenu,
  34. "New Map File",
  35. SubmenuIndexSubRemNewMapFile,
  36. subrem_scene_start_submenu_callback,
  37. app);
  38. // submenu_add_item(
  39. // submenu,
  40. // "About",
  41. // SubmenuIndexSubGhzRemoteAbout,
  42. // subrem_scene_start_submenu_callback,
  43. // app);
  44. submenu_set_selected_item(
  45. submenu, scene_manager_get_scene_state(app->scene_manager, SubRemSceneStart));
  46. view_dispatcher_switch_to_view(app->view_dispatcher, SubRemViewIDSubmenu);
  47. }
  48. bool subrem_scene_start_on_event(void* context, SceneManagerEvent event) {
  49. furi_assert(context);
  50. SubGhzRemoteApp* app = context;
  51. bool consumed = false;
  52. if(event.type == SceneManagerEventTypeCustom) {
  53. if(event.event == SubmenuIndexSubRemOpenMapFile) {
  54. scene_manager_set_scene_state(
  55. app->scene_manager, SubRemSceneStart, SubmenuIndexSubRemOpenMapFile);
  56. scene_manager_next_scene(app->scene_manager, SubRemSceneOpenMapFile);
  57. consumed = true;
  58. }
  59. #ifdef FURI_DEBUG
  60. else if(event.event == SubmenuIndexSubRemRemoteView) {
  61. scene_manager_next_scene(app->scene_manager, SubRemSceneRemote);
  62. consumed = true;
  63. }
  64. #endif
  65. else if(event.event == SubmenuIndexSubRemEditMapFile) {
  66. scene_manager_set_scene_state(
  67. app->scene_manager, SubRemSceneStart, SubmenuIndexSubRemEditMapFile);
  68. scene_manager_next_scene(app->scene_manager, SubRemSceneOpenMapFile);
  69. consumed = true;
  70. } else if(event.event == SubmenuIndexSubRemNewMapFile) {
  71. scene_manager_set_scene_state(
  72. app->scene_manager, SubRemSceneStart, SubmenuIndexSubRemNewMapFile);
  73. scene_manager_next_scene(app->scene_manager, SubRemSceneEnterNewName);
  74. consumed = true;
  75. }
  76. // } else if(event.event == SubmenuIndexSubRemAbout) {
  77. // scene_manager_next_scene(app->scene_manager, SubRemSceneAbout);
  78. // consumed = true;
  79. // }
  80. }
  81. return consumed;
  82. }
  83. void subrem_scene_start_on_exit(void* context) {
  84. furi_assert(context);
  85. SubGhzRemoteApp* app = context;
  86. submenu_reset(app->submenu);
  87. }