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.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/apps/playlist_menu.c b/apps/playlist_menu.c
index 444e0ae..c6ccd5a 100644
--- a/apps/playlist_menu.c
+++ b/apps/playlist_menu.c
@@ -20,13 +20,33 @@
#include <string.h>
#include "menu.h"
+#include "file.h"
#include "keyboard.h"
#include "playlist.h"
#include "tree.h"
#include "settings.h"
+#include "playlist_viewer.h"
#include "talk.h"
#include "lang.h"
+/* FIXME: there is a very similar function in onplay.c */
+static bool save_playlist(void)
+{
+ char filename[MAX_PATH+1];
+
+ strncpy(filename, DEFAULT_DYNAMIC_PLAYLIST_NAME, sizeof(filename));
+
+ if (!kbd_input(filename, sizeof(filename)))
+ {
+ playlist_save(NULL, filename);
+
+ /* reload in case playlist was saved to cwd */
+ reload_directory();
+ }
+
+ return false;
+}
+
static bool recurse_directory(void)
{
static const struct opt_items names[] = {
@@ -46,6 +66,9 @@ bool playlist_menu(void)
bool result;
static const struct menu_item items[] = {
+ { ID2P(LANG_CREATE_PLAYLIST), create_playlist },
+ { ID2P(LANG_VIEW_DYNAMIC_PLAYLIST), playlist_viewer },
+ { ID2P(LANG_SAVE_DYNAMIC_PLAYLIST), save_playlist },
{ ID2P(LANG_RECURSE_DIRECTORY), recurse_directory },
};