summaryrefslogtreecommitdiff
path: root/apps/playlist_menu.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/playlist_menu.c')
-rw-r--r--apps/playlist_menu.c38
1 files changed, 25 insertions, 13 deletions
diff --git a/apps/playlist_menu.c b/apps/playlist_menu.c
index c70a510a6e..c390e8077d 100644
--- a/apps/playlist_menu.c
+++ b/apps/playlist_menu.c
@@ -28,22 +28,11 @@
28#include "playlist_viewer.h" 28#include "playlist_viewer.h"
29#include "talk.h" 29#include "talk.h"
30#include "lang.h" 30#include "lang.h"
31#include "playlist_menu.h"
31 32
32/* FIXME: there is a very similar function in onplay.c */
33static bool save_playlist(void) 33static bool save_playlist(void)
34{ 34{
35 char filename[MAX_PATH+1]; 35 save_playlist_screen(NULL);
36
37 strncpy(filename, DEFAULT_DYNAMIC_PLAYLIST_NAME, sizeof(filename));
38
39 if (!kbd_input(filename, sizeof(filename)))
40 {
41 playlist_save(NULL, filename);
42
43 /* reload in case playlist was saved to cwd */
44 reload_directory();
45 }
46
47 return false; 36 return false;
48} 37}
49 38
@@ -85,3 +74,26 @@ bool playlist_menu(void)
85 menu_exit(m); 74 menu_exit(m);
86 return result; 75 return result;
87} 76}
77
78int save_playlist_screen(struct playlist_info* playlist)
79{
80 char* filename;
81 char temp[MAX_PATH+1];
82 int len;
83
84 filename = playlist_get_name(playlist, temp, sizeof(temp));
85
86 if (!filename || (len=strlen(filename)) <= 4 ||
87 strcasecmp(&filename[len-4], ".m3u"))
88 filename = DEFAULT_DYNAMIC_PLAYLIST_NAME;
89
90 if (!kbd_input(filename, sizeof(filename)))
91 {
92 playlist_save(playlist, filename);
93
94 /* reload in case playlist was saved to cwd */
95 reload_directory();
96 }
97
98 return 0;
99}