#pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include typedef enum { NfcPlaylistView_Menu, NfcPlaylistView_Settings, NfcPlaylistView_Popup, NfcPlaylistView_PlaylistSelect, NfcPlaylistView_FileEdit, NfcPlaylistView_FileRename, NfcPlaylistView_ConfirmDelete } NfcPlayScenesView; typedef enum { NfcPlaylistScene_MainMenu, NfcPlaylistScene_Settings, NfcPlaylistScene_EmulatingPopup, NfcPlaylistScene_PlaylistSelect, NfcPlaylistScene_FileEdit, NfcPlaylistScene_FileRename, NfcPlaylistScene_ConfirmDelete, NfcPlaylistScene_count } NfcPlaylistScene; typedef struct { FuriString* base_file_path; FuriString* file_path; bool playlist_selected; bool playlist_selected_check; uint8_t emulate_timeout; uint8_t emulate_delay; bool emulate_led_indicator; } NfcPlaylistSettings; typedef struct { SceneManager* scene_manager; ViewDispatcher* view_dispatcher; VariableItemList* variable_item_list; FileBrowser* file_browser; FuriString* file_browser_output; TextInput* text_input; Submenu* submenu; Popup* popup; Widget* widget; NotificationApp* notification; FuriThread* thread; NfcPlaylistWorker* nfc_playlist_worker; NfcPlaylistSettings settings; char* playlist_name; } NfcPlaylist; static const int options_emulate_timeout[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; static const int default_emulate_timeout = 4; static const int options_emulate_delay[] = {0, 1, 2, 3, 4, 5, 6}; static const int default_emulate_delay = 0; static const bool default_emulate_led_indicator = true;