main_menu.c 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #include "nfc_playlist.h"
  2. #include "scences/main_menu.h"
  3. void nfc_playlist_main_menu_menu_callback(void* context, uint32_t index) {
  4. NfcPlaylist* nfc_playlist = context;
  5. scene_manager_handle_custom_event(nfc_playlist->scene_manager, index);
  6. }
  7. void nfc_playlist_main_menu_scene_on_enter(void* context) {
  8. NfcPlaylist* nfc_playlist = context;
  9. if (!nfc_playlist->settings.file_selected) {
  10. nfc_playlist->settings.file_selected = true;
  11. scene_manager_next_scene(nfc_playlist->scene_manager, NfcPlaylistScene_FileSelect);
  12. return;
  13. }
  14. submenu_set_header(nfc_playlist->submenu, "NFC Playlist");
  15. submenu_add_lockable_item(
  16. nfc_playlist->submenu,
  17. "Start",
  18. NfcPlaylistMenuSelection_Start,
  19. nfc_playlist_main_menu_menu_callback,
  20. nfc_playlist,
  21. !nfc_playlist->settings.file_selected_check,
  22. "No\nplaylist\nselected");
  23. submenu_add_item(
  24. nfc_playlist->submenu,
  25. "Select playlist",
  26. NfcPlaylistMenuSelection_FileSelect,
  27. nfc_playlist_main_menu_menu_callback,
  28. nfc_playlist);
  29. submenu_add_item(
  30. nfc_playlist->submenu,
  31. "Edit playlist",
  32. NfcPlaylistMenuSelection_FileEdit,
  33. nfc_playlist_main_menu_menu_callback,
  34. nfc_playlist);
  35. submenu_add_item(
  36. nfc_playlist->submenu,
  37. "Settings",
  38. NfcPlaylistMenuSelection_Settings,
  39. nfc_playlist_main_menu_menu_callback,
  40. nfc_playlist);
  41. view_dispatcher_switch_to_view(nfc_playlist->view_dispatcher, NfcPlaylistView_Menu);
  42. }
  43. bool nfc_playlist_main_menu_scene_on_event(void* context, SceneManagerEvent event) {
  44. NfcPlaylist* nfc_playlist = context;
  45. bool consumed = false;
  46. if (event.type == SceneManagerEventTypeCustom) {
  47. switch(event.event) {
  48. case NfcPlaylistEvent_ShowEmulatingPopup:
  49. scene_manager_next_scene(nfc_playlist->scene_manager, NfcPlaylistScene_EmulatingPopup);
  50. consumed = true;
  51. break;
  52. case NfcPlaylistEvent_ShowFileSelect:
  53. scene_manager_next_scene(nfc_playlist->scene_manager, NfcPlaylistScene_FileSelect);
  54. consumed = true;
  55. break;
  56. case NfcPlaylistEvent_ShowFileEdit:
  57. scene_manager_next_scene(nfc_playlist->scene_manager, NfcPlaylistScene_FileEdit);
  58. consumed = true;
  59. break;
  60. case NfcPlaylistEvent_ShowSettings:
  61. scene_manager_next_scene(nfc_playlist->scene_manager, NfcPlaylistScene_Settings);
  62. consumed = true;
  63. break;
  64. default:
  65. break;
  66. }
  67. }
  68. return consumed;
  69. }
  70. void nfc_playlist_main_menu_scene_on_exit(void* context) {
  71. NfcPlaylist* nfc_playlist = context;
  72. submenu_reset(nfc_playlist->submenu);
  73. }