diff options
Diffstat (limited to 'apps/onplay.c')
-rw-r--r-- | apps/onplay.c | 40 |
1 files changed, 28 insertions, 12 deletions
diff --git a/apps/onplay.c b/apps/onplay.c index a2a3671d3e..da06f937b6 100644 --- a/apps/onplay.c +++ b/apps/onplay.c | |||
@@ -315,7 +315,7 @@ MENUITEM_FUNCTION(view_playlist_item, 0, ID2P(LANG_VIEW), | |||
315 | view_playlist, NULL, | 315 | view_playlist, NULL, |
316 | treeplaylist_callback, Icon_Playlist); | 316 | treeplaylist_callback, Icon_Playlist); |
317 | 317 | ||
318 | MAKE_ONPLAYMENU( tree_playlist_menu, ID2P(LANG_PLAYLIST), | 318 | MAKE_ONPLAYMENU( tree_playlist_menu, ID2P(LANG_CURRENT_PLAYLIST), |
319 | treeplaylist_callback, Icon_Playlist, | 319 | treeplaylist_callback, Icon_Playlist, |
320 | 320 | ||
321 | /* view */ | 321 | /* view */ |
@@ -382,6 +382,12 @@ static int treeplaylist_callback(int action, | |||
382 | return action; | 382 | return action; |
383 | } | 383 | } |
384 | 384 | ||
385 | void onplay_show_playlist_menu(char* track_name) | ||
386 | { | ||
387 | selected_file = track_name; | ||
388 | selected_file_attr = FILE_ATTR_AUDIO; | ||
389 | do_menu(&tree_playlist_menu, NULL, NULL, false); | ||
390 | } | ||
385 | 391 | ||
386 | /* playlist catalog options */ | 392 | /* playlist catalog options */ |
387 | static bool cat_add_to_a_playlist(void) | 393 | static bool cat_add_to_a_playlist(void) |
@@ -395,23 +401,37 @@ static bool cat_add_to_a_new_playlist(void) | |||
395 | return catalog_add_to_a_playlist(selected_file, selected_file_attr, | 401 | return catalog_add_to_a_playlist(selected_file, selected_file_attr, |
396 | true, NULL); | 402 | true, NULL); |
397 | } | 403 | } |
404 | static int clipboard_callback(int action,const struct menu_item_ex *this_item); | ||
405 | static bool set_catalogdir(void) | ||
406 | { | ||
407 | catalog_set_directory(selected_file); | ||
408 | settings_save(); | ||
409 | return false; | ||
410 | } | ||
411 | MENUITEM_FUNCTION(set_catalogdir_item, 0, ID2P(LANG_SET_AS_PLAYLISTCAT_DIR), | ||
412 | set_catalogdir, NULL, clipboard_callback, Icon_Playlist); | ||
398 | 413 | ||
399 | static int cat_playlist_callback(int action, | 414 | static int cat_playlist_callback(int action, |
400 | const struct menu_item_ex *this_item); | 415 | const struct menu_item_ex *this_item); |
401 | MENUITEM_FUNCTION(cat_view_lists, 0, ID2P(LANG_CATALOG_VIEW), | ||
402 | catalog_view_playlists, 0, | ||
403 | cat_playlist_callback, Icon_Playlist); | ||
404 | MENUITEM_FUNCTION(cat_add_to_list, 0, ID2P(LANG_CATALOG_ADD_TO), | 416 | MENUITEM_FUNCTION(cat_add_to_list, 0, ID2P(LANG_CATALOG_ADD_TO), |
405 | cat_add_to_a_playlist, 0, NULL, Icon_Playlist); | 417 | cat_add_to_a_playlist, 0, NULL, Icon_Playlist); |
406 | MENUITEM_FUNCTION(cat_add_to_new, 0, ID2P(LANG_CATALOG_ADD_TO_NEW), | 418 | MENUITEM_FUNCTION(cat_add_to_new, 0, ID2P(LANG_CATALOG_ADD_TO_NEW), |
407 | cat_add_to_a_new_playlist, 0, NULL, Icon_Playlist); | 419 | cat_add_to_a_new_playlist, 0, NULL, Icon_Playlist); |
408 | MAKE_ONPLAYMENU(cat_playlist_menu, ID2P(LANG_CATALOG), | 420 | MAKE_ONPLAYMENU(cat_playlist_menu, ID2P(LANG_CATALOG), |
409 | cat_playlist_callback, Icon_Playlist, | 421 | cat_playlist_callback, Icon_Playlist, |
410 | &cat_view_lists, &cat_add_to_list, &cat_add_to_new); | 422 | &cat_add_to_list, &cat_add_to_new, &set_catalogdir_item); |
423 | |||
424 | void onplay_show_playlist_cat_menu(char* track_name) | ||
425 | { | ||
426 | selected_file = track_name; | ||
427 | selected_file_attr = FILE_ATTR_AUDIO; | ||
428 | do_menu(&cat_playlist_menu, NULL, NULL, false); | ||
429 | } | ||
411 | 430 | ||
412 | static int cat_playlist_callback(int action, | 431 | static int cat_playlist_callback(int action, |
413 | const struct menu_item_ex *this_item) | 432 | const struct menu_item_ex *this_item) |
414 | { | 433 | { |
434 | (void)this_item; | ||
415 | if (!selected_file || | 435 | if (!selected_file || |
416 | (((selected_file_attr & FILE_ATTR_MASK) != FILE_ATTR_AUDIO) && | 436 | (((selected_file_attr & FILE_ATTR_MASK) != FILE_ATTR_AUDIO) && |
417 | ((selected_file_attr & FILE_ATTR_MASK) != FILE_ATTR_M3U) && | 437 | ((selected_file_attr & FILE_ATTR_MASK) != FILE_ATTR_M3U) && |
@@ -430,12 +450,7 @@ static int cat_playlist_callback(int action, | |||
430 | switch (action) | 450 | switch (action) |
431 | { | 451 | { |
432 | case ACTION_REQUEST_MENUITEM: | 452 | case ACTION_REQUEST_MENUITEM: |
433 | if (this_item == &cat_view_lists) | 453 | if ((audio_status() & AUDIO_STATUS_PLAY) || context != CONTEXT_WPS) |
434 | { | ||
435 | return action; | ||
436 | } | ||
437 | else if ((audio_status() & AUDIO_STATUS_PLAY) || | ||
438 | context != CONTEXT_WPS) | ||
439 | { | 454 | { |
440 | return action; | 455 | return action; |
441 | } | 456 | } |
@@ -1100,7 +1115,8 @@ static int clipboard_callback(int action,const struct menu_item_ex *this_item) | |||
1100 | { | 1115 | { |
1101 | /* only for directories */ | 1116 | /* only for directories */ |
1102 | if (this_item == &delete_dir_item || | 1117 | if (this_item == &delete_dir_item || |
1103 | this_item == &set_startdir_item | 1118 | this_item == &set_startdir_item || |
1119 | this_item == &set_catalogdir_item | ||
1104 | #ifdef HAVE_RECORDING | 1120 | #ifdef HAVE_RECORDING |
1105 | || this_item == &set_recdir_item | 1121 | || this_item == &set_recdir_item |
1106 | #endif | 1122 | #endif |