Skip to content

Commit 6fa0239

Browse files
committed
Tweaks
1 parent 416e22f commit 6fa0239

7 files changed

+42
-31
lines changed

nfc_playlist.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@
2424
#include <toolbox/stream/stream.h>
2525
#include <toolbox/stream/file_stream.h>
2626

27-
#include "lib/worker/nfc_playlist_worker.h"
27+
#include "lib/emulation_worker/nfc_playlist_emulation_worker.h"
2828

2929
#include "scenes/nfc_playlist_scene.h"
3030

3131
#define PLAYLIST_LOCATION "/ext/apps_data/nfc_playlist/"
3232
#define PLAYLIST_DIR "/ext/apps_data/nfc_playlist"
33-
#define PLAYLIST_NAME_LEN 100
33+
#define PLAYLIST_NAME_LEN 50
3434

3535
typedef enum {
3636
NfcPlaylistView_Submenu,
@@ -65,7 +65,7 @@ typedef struct {
6565
NotificationApp* notification;
6666
FuriThread* thread;
6767
FuriString* temp_furi_string;
68-
NfcPlaylistWorker* nfc_playlist_worker;
68+
NfcPlaylistEmulationWorker* nfc_playlist_emulation_worker;
6969
NfcPlaylistSettings settings;
7070
} NfcPlaylist;
7171

scenes/nfc_playlist_scene_confirm_delete.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,8 @@ void nfc_playlist_confirm_delete_menu_callback(GuiButtonType result, InputType t
1010
void nfc_playlist_confirm_delete_scene_on_enter(void* context) {
1111
NfcPlaylist* nfc_playlist = context;
1212

13-
FuriString* temp_str = furi_string_alloc();
1413
char* file_path = (char*)furi_string_get_cstr(nfc_playlist->settings.playlist_path);
15-
furi_string_printf(temp_str, "\e#Delete %s?\e#", strchr(file_path, '/') != NULL ? &strrchr(file_path, '/')[1] : file_path);
14+
FuriString* temp_str = furi_string_alloc_printf("\e#Delete %s?\e#", strchr(file_path, '/') != NULL ? &strrchr(file_path, '/')[1] : file_path);
1615
furi_string_replace(temp_str, ".txt", "");
1716

1817
widget_add_text_box_element(nfc_playlist->widget, 0, 0, 128, 23, AlignCenter, AlignCenter, furi_string_get_cstr(temp_str), false);

scenes/nfc_playlist_scene_emulation.c

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,9 @@ int32_t nfc_playlist_emulation_task(void* context) {
4545
popup_set_text(nfc_playlist->popup, furi_string_get_cstr(tmp_counter_str), 64, 50, AlignCenter, AlignTop);
4646
furi_delay_ms(50);
4747
time_counter_delay_ms -= 50;
48+
furi_string_reset(tmp_counter_str);
4849
};
50+
furi_string_reset(tmp_counter_str);
4951
} else if (nfc_playlist->settings.emulate_delay > 0) {
5052
skip_delay = false;
5153
file_position++;
@@ -70,6 +72,7 @@ int32_t nfc_playlist_emulation_task(void* context) {
7072
popup_set_text(nfc_playlist->popup, furi_string_get_cstr(tmp_counter_str), 64, 50, AlignCenter, AlignTop);
7173
furi_delay_ms(50);
7274
time_counter_ms -= 50;
75+
furi_string_reset(tmp_counter_str);
7376
};
7477
} else if(!storage_file_exists(storage, file_path)) {
7578
if(nfc_playlist->settings.skip_error) {
@@ -84,25 +87,33 @@ int32_t nfc_playlist_emulation_task(void* context) {
8487
popup_set_text(nfc_playlist->popup, furi_string_get_cstr(tmp_counter_str), 64, 50, AlignCenter, AlignTop);
8588
furi_delay_ms(50);
8689
time_counter_ms -= 50;
90+
furi_string_reset(tmp_counter_str);
8791
};
8892
} else {
8993
furi_string_printf(tmp_header_str, "Emulating:\n%s", file_name);
9094
popup_set_header(nfc_playlist->popup, furi_string_get_cstr(tmp_header_str), 64, 10, AlignCenter, AlignTop);
91-
nfc_playlist_worker_set_nfc_data(nfc_playlist->nfc_playlist_worker, file_path);
92-
nfc_playlist_worker_start(nfc_playlist->nfc_playlist_worker);
95+
nfc_playlist_emulation_worker_set_nfc_data(nfc_playlist->nfc_playlist_emulation_worker, file_path);
96+
nfc_playlist_emulation_worker_start(nfc_playlist->nfc_playlist_emulation_worker);
9397
start_blink(nfc_playlist, NfcPlaylistLedState_Normal);
94-
while(nfc_playlist_worker_is_emulating(nfc_playlist->nfc_playlist_worker) && time_counter_ms > 0 && EmulationState == NfcPlaylistEmulationState_Emulating) {
98+
while(nfc_playlist_emulation_worker_is_emulating(nfc_playlist->nfc_playlist_emulation_worker) && time_counter_ms > 0 && EmulationState == NfcPlaylistEmulationState_Emulating) {
9599
furi_string_printf(tmp_counter_str, "%ds", (time_counter_ms/1000));
96100
popup_set_text(nfc_playlist->popup, furi_string_get_cstr(tmp_counter_str), 64, 50, AlignCenter, AlignTop);
97101
furi_delay_ms(50);
98102
time_counter_ms -= 50;
103+
furi_string_reset(tmp_counter_str);
99104
};
100-
nfc_playlist_worker_stop(nfc_playlist->nfc_playlist_worker);
101-
nfc_playlist_worker_clear_nfc_data(nfc_playlist->nfc_playlist_worker);
105+
nfc_playlist_emulation_worker_stop(nfc_playlist->nfc_playlist_emulation_worker);
106+
nfc_playlist_emulation_worker_clear_nfc_data(nfc_playlist->nfc_playlist_emulation_worker);
102107
}
108+
furi_string_reset(tmp_header_str);
109+
furi_string_reset(tmp_counter_str);
103110
}
104111
popup_reset(nfc_playlist->popup);
105-
popup_set_header(nfc_playlist->popup, EmulationState == NfcPlaylistEmulationState_Canceled ? "Emulation stopped" : "Emulation finished", 64, 10, AlignCenter, AlignTop);
112+
if (nfc_playlist->settings.playlist_length == 0) {
113+
popup_set_header(nfc_playlist->popup, "Empty playlist", 64, 10, AlignCenter, AlignTop);
114+
} else {
115+
popup_set_header(nfc_playlist->popup, EmulationState == NfcPlaylistEmulationState_Canceled ? "Emulation stopped" : "Emulation finished", 64, 10, AlignCenter, AlignTop);
116+
}
106117
popup_set_text(nfc_playlist->popup, "Press back", 64, 50, AlignCenter, AlignTop);
107118
stop_blink(nfc_playlist);
108119

@@ -125,15 +136,15 @@ int32_t nfc_playlist_emulation_task(void* context) {
125136
void nfc_playlist_emulation_setup(void* context) {
126137
NfcPlaylist* nfc_playlist = context;
127138
nfc_playlist->thread = furi_thread_alloc_ex("NfcPlaylistEmulationWorker", 8192, nfc_playlist_emulation_task, nfc_playlist);
128-
nfc_playlist->nfc_playlist_worker = nfc_playlist_worker_alloc();
139+
nfc_playlist->nfc_playlist_emulation_worker = nfc_playlist_emulation_worker_alloc();
129140
}
130141

131142
void nfc_playlist_emulation_free(NfcPlaylist* nfc_playlist) {
132143
furi_assert(nfc_playlist);
133144
furi_thread_free(nfc_playlist->thread);
134-
nfc_playlist_worker_free(nfc_playlist->nfc_playlist_worker);
145+
nfc_playlist_emulation_worker_free(nfc_playlist->nfc_playlist_emulation_worker);
135146
nfc_playlist->thread = NULL;
136-
nfc_playlist->nfc_playlist_worker = NULL;
147+
nfc_playlist->nfc_playlist_emulation_worker = NULL;
137148
}
138149

139150
void nfc_playlist_emulation_start(NfcPlaylist* nfc_playlist) {

scenes/nfc_playlist_scene_main_menu.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,9 @@ void nfc_playlist_main_menu_scene_on_enter(void* context) {
2727
return;
2828
}
2929

30-
FuriString* tmp_str = furi_string_alloc();
31-
furi_string_printf(tmp_str, "NFC Playlist v%s", FAP_VERSION);
32-
submenu_set_header(nfc_playlist->submenu, furi_string_get_cstr(tmp_str));
33-
furi_string_free(tmp_str);
30+
FuriString* header = furi_string_alloc_printf("NFC Playlist v%s", FAP_VERSION);
31+
submenu_set_header(nfc_playlist->submenu, furi_string_get_cstr(header));
32+
furi_string_free(header);
3433

3534
submenu_add_lockable_item(
3635
nfc_playlist->submenu,

scenes/nfc_playlist_scene_nfc_remove.c

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ void nfc_playlist_nfc_remove_options_change_callback(VariableItem* item) {
3232

3333
void nfc_playlist_nfc_remove_scene_on_enter(void* context) {
3434
NfcPlaylist* nfc_playlist = context;
35-
FuriString* tmp_str = furi_string_alloc();
3635

3736
selected_line = nfc_playlist->settings.playlist_length;
3837

@@ -45,15 +44,17 @@ void nfc_playlist_nfc_remove_scene_on_enter(void* context) {
4544
nfc_playlist_nfc_remove_options_change_callback,
4645
nfc_playlist);
4746
variable_item_set_current_value_index(Line_selector, nfc_playlist->settings.playlist_length - 1);
48-
furi_string_printf(tmp_str, "%d", selected_line);
47+
48+
FuriString* tmp_str = furi_string_alloc_printf("%d", selected_line);
4949
variable_item_set_current_value_text(Line_selector, furi_string_get_cstr(tmp_str));
50+
furi_string_free(tmp_str);
51+
5052
variable_item_set_locked(Line_selector, nfc_playlist->settings.playlist_length == 0 ? true : false, "Playlist\nis empty");
5153

5254
variable_item_list_add(nfc_playlist->variable_item_list, "Remove Line", 0, NULL, NULL);
5355
variable_item_set_locked(variable_item_list_get(nfc_playlist->variable_item_list, NfcPlaylistSettings_RemoveLine), nfc_playlist->settings.playlist_length == 0 ? true : false, "Playlist\nis empty");
5456

5557
variable_item_list_set_enter_callback(nfc_playlist->variable_item_list, nfc_playlist_nfc_remove_menu_callback, nfc_playlist);
56-
furi_string_free(tmp_str);
5758

5859
view_dispatcher_switch_to_view(nfc_playlist->view_dispatcher, NfcPlaylistView_VariableItemList);
5960
}
@@ -97,14 +98,12 @@ bool nfc_playlist_nfc_remove_scene_on_event(void* context, SceneManagerEvent eve
9798
if (selected_line == 0) {
9899
scene_manager_previous_scene(nfc_playlist->scene_manager);
99100
} else {
100-
FuriString* tmp_str = furi_string_alloc();
101-
102101
VariableItem* Line_selector = variable_item_list_get(nfc_playlist->variable_item_list, NfcPlaylistSettings_LineSelector);
103102
variable_item_set_values_count(Line_selector, nfc_playlist->settings.playlist_length);
104103
variable_item_set_current_value_index(Line_selector, selected_line - 1);
105-
furi_string_printf(tmp_str, "%d", selected_line);
106-
variable_item_set_current_value_text(Line_selector, furi_string_get_cstr(tmp_str));
107104

105+
FuriString* tmp_str = furi_string_alloc_printf("%d", selected_line);
106+
variable_item_set_current_value_text(Line_selector, furi_string_get_cstr(tmp_str));
108107
furi_string_free(tmp_str);
109108
}
110109

scenes/nfc_playlist_scene_playlist_edit.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ void nfc_playlist_playlist_edit_scene_on_enter(void* context) {
1919

2020
submenu_set_header(nfc_playlist->submenu, "Edit Playlist");
2121

22+
bool playlist_path_empty = furi_string_empty(nfc_playlist->settings.playlist_path);
23+
2224
submenu_add_item(
2325
nfc_playlist->submenu,
2426
"Create Playlist",
@@ -32,7 +34,7 @@ void nfc_playlist_playlist_edit_scene_on_enter(void* context) {
3234
NfcPlaylistMenuSelection_DeletePlaylist,
3335
nfc_playlist_playlist_edit_menu_callback,
3436
nfc_playlist,
35-
furi_string_empty(nfc_playlist->settings.playlist_path),
37+
playlist_path_empty,
3638
"No\nplaylist\nselected");
3739

3840
submenu_add_lockable_item(
@@ -41,7 +43,7 @@ void nfc_playlist_playlist_edit_scene_on_enter(void* context) {
4143
NfcPlaylistMenuSelection_RenamePlaylist,
4244
nfc_playlist_playlist_edit_menu_callback,
4345
nfc_playlist,
44-
furi_string_empty(nfc_playlist->settings.playlist_path),
46+
playlist_path_empty,
4547
"No\nplaylist\nselected");
4648

4749
submenu_add_lockable_item(
@@ -50,7 +52,7 @@ void nfc_playlist_playlist_edit_scene_on_enter(void* context) {
5052
NfcPlaylistMenuSelection_AddNfcItem,
5153
nfc_playlist_playlist_edit_menu_callback,
5254
nfc_playlist,
53-
furi_string_empty(nfc_playlist->settings.playlist_path),
55+
playlist_path_empty,
5456
"No\nplaylist\nselected");
5557

5658
submenu_add_lockable_item(
@@ -59,7 +61,7 @@ void nfc_playlist_playlist_edit_scene_on_enter(void* context) {
5961
NfcPlaylistMenuSelection_RemoveNfcItem,
6062
nfc_playlist_playlist_edit_menu_callback,
6163
nfc_playlist,
62-
furi_string_empty(nfc_playlist->settings.playlist_path),
64+
playlist_path_empty,
6365
"No\nplaylist\nselected");
6466

6567
submenu_add_lockable_item(
@@ -68,7 +70,7 @@ void nfc_playlist_playlist_edit_scene_on_enter(void* context) {
6870
NfcPlaylistMenuSelection_ViewPlaylistContent,
6971
nfc_playlist_playlist_edit_menu_callback,
7072
nfc_playlist,
71-
furi_string_empty(nfc_playlist->settings.playlist_path),
73+
playlist_path_empty,
7274
"No\nplaylist\nselected");
7375

7476
view_dispatcher_switch_to_view(nfc_playlist->view_dispatcher, NfcPlaylistView_Submenu);

scenes/nfc_playlist_scene_playlist_rename.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,13 @@ void nfc_playlist_playlist_rename_menu_callback(void* context) {
1111
furi_string_cat_str(new_file_path, ".txt");
1212

1313
Storage* storage = furi_record_open(RECORD_STORAGE);
14+
1415
if (!storage_file_exists(storage, furi_string_get_cstr(new_file_path))) {
1516
storage_common_rename(storage, old_file_path, furi_string_get_cstr(new_file_path));
1617
furi_string_swap(nfc_playlist->settings.playlist_path, new_file_path);
1718
}
18-
furi_record_close(RECORD_STORAGE);
1919

20+
furi_record_close(RECORD_STORAGE);
2021
furi_string_free(new_file_path);
2122

2223
scene_manager_search_and_switch_to_previous_scene(nfc_playlist->scene_manager, NfcPlaylistScene_MainMenu);

0 commit comments

Comments
 (0)