diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/lang/english.lang | 56 | ||||
-rw-r--r-- | apps/menus/playlist_menu.c | 22 | ||||
-rw-r--r-- | apps/onplay.c | 154 | ||||
-rw-r--r-- | apps/settings.h | 8 | ||||
-rw-r--r-- | apps/settings_list.c | 9 |
5 files changed, 194 insertions, 55 deletions
diff --git a/apps/lang/english.lang b/apps/lang/english.lang index 9b3f6712e4..80a29601a0 100644 --- a/apps/lang/english.lang +++ b/apps/lang/english.lang | |||
@@ -15618,3 +15618,59 @@ | |||
15618 | *: "Clear List & Play Next" | 15618 | *: "Clear List & Play Next" |
15619 | </voice> | 15619 | </voice> |
15620 | </phrase> | 15620 | </phrase> |
15621 | <phrase> | ||
15622 | id: LANG_QUEUE_MENU | ||
15623 | desc: in onplay menu | ||
15624 | user: core | ||
15625 | <source> | ||
15626 | *: "Queue..." | ||
15627 | </source> | ||
15628 | <dest> | ||
15629 | *: "Queue..." | ||
15630 | </dest> | ||
15631 | <voice> | ||
15632 | *: "Queue..." | ||
15633 | </voice> | ||
15634 | </phrase> | ||
15635 | <phrase> | ||
15636 | id: LANG_SHOW_QUEUE_OPTIONS | ||
15637 | desc: in Current Playlist settings | ||
15638 | user: core | ||
15639 | <source> | ||
15640 | *: "Show Queue Options" | ||
15641 | </source> | ||
15642 | <dest> | ||
15643 | *: "Show Queue Options" | ||
15644 | </dest> | ||
15645 | <voice> | ||
15646 | *: "Show Queue Options" | ||
15647 | </voice> | ||
15648 | </phrase> | ||
15649 | <phrase> | ||
15650 | id: LANG_SHOW_SHUFFLED_ADDING_OPTIONS | ||
15651 | desc: in Current Playlist settings | ||
15652 | user: core | ||
15653 | <source> | ||
15654 | *: "Show Shuffled Adding Options" | ||
15655 | </source> | ||
15656 | <dest> | ||
15657 | *: "Show Shuffled Adding Options" | ||
15658 | </dest> | ||
15659 | <voice> | ||
15660 | *: "Show Shuffled Adding Options" | ||
15661 | </voice> | ||
15662 | </phrase> | ||
15663 | <phrase> | ||
15664 | id: LANG_IN_SUBMENU | ||
15665 | desc: in Settings | ||
15666 | user: core | ||
15667 | <source> | ||
15668 | *: "In Submenu" | ||
15669 | </source> | ||
15670 | <dest> | ||
15671 | *: "In Submenu" | ||
15672 | </dest> | ||
15673 | <voice> | ||
15674 | *: "In Submenu" | ||
15675 | </voice> | ||
15676 | </phrase> \ No newline at end of file | ||
diff --git a/apps/menus/playlist_menu.c b/apps/menus/playlist_menu.c index b0d9a44a9e..dfb9d73d62 100644 --- a/apps/menus/playlist_menu.c +++ b/apps/menus/playlist_menu.c | |||
@@ -80,15 +80,14 @@ static int playlist_view_(void) | |||
80 | playlist_viewer_ex(NULL); | 80 | playlist_viewer_ex(NULL); |
81 | return 0; | 81 | return 0; |
82 | } | 82 | } |
83 | MENUITEM_FUNCTION(create_playlist_item, 0, ID2P(LANG_CREATE_PLAYLIST), | 83 | MENUITEM_FUNCTION(create_playlist_item, 0, ID2P(LANG_CREATE_PLAYLIST), |
84 | create_playlist, NULL, NULL, Icon_NOICON); | 84 | create_playlist, NULL, NULL, Icon_NOICON); |
85 | MENUITEM_FUNCTION(view_cur_playlist, 0, | 85 | MENUITEM_FUNCTION(view_cur_playlist, 0, |
86 | ID2P(LANG_VIEW_DYNAMIC_PLAYLIST), | 86 | ID2P(LANG_VIEW_DYNAMIC_PLAYLIST), |
87 | playlist_view_, NULL, NULL, Icon_NOICON); | 87 | playlist_view_, NULL, NULL, Icon_NOICON); |
88 | MENUITEM_FUNCTION(save_playlist, MENU_FUNC_USEPARAM, ID2P(LANG_SAVE_DYNAMIC_PLAYLIST), | 88 | MENUITEM_FUNCTION(save_playlist, MENU_FUNC_USEPARAM, ID2P(LANG_SAVE_DYNAMIC_PLAYLIST), |
89 | save_playlist_screen, NULL, NULL, Icon_NOICON); | 89 | save_playlist_screen, NULL, NULL, Icon_NOICON); |
90 | MENUITEM_SETTING(recursive_dir_insert, &global_settings.recursive_dir_insert, NULL); | 90 | MENUITEM_SETTING(recursive_dir_insert, &global_settings.recursive_dir_insert, NULL); |
91 | MENUITEM_SETTING(warn_on_erase, &global_settings.warnon_erase_dynplaylist, NULL); | ||
92 | static int clear_catalog_directory(void) | 91 | static int clear_catalog_directory(void) |
93 | { | 92 | { |
94 | catalog_set_directory(NULL); | 93 | catalog_set_directory(NULL); |
@@ -96,22 +95,29 @@ static int clear_catalog_directory(void) | |||
96 | splash(HZ, ID2P(LANG_RESET_DONE_CLEAR)); | 95 | splash(HZ, ID2P(LANG_RESET_DONE_CLEAR)); |
97 | return false; | 96 | return false; |
98 | } | 97 | } |
99 | MENUITEM_FUNCTION(clear_catalog_directory_item, 0, ID2P(LANG_RESET_PLAYLISTCAT_DIR), | 98 | MENUITEM_FUNCTION(clear_catalog_directory_item, 0, ID2P(LANG_RESET_PLAYLISTCAT_DIR), |
100 | clear_catalog_directory, NULL, NULL, Icon_file_view_menu); | 99 | clear_catalog_directory, NULL, NULL, Icon_file_view_menu); |
101 | 100 | ||
102 | /* Playlist viewer settings submenu */ | 101 | /* Playlist viewer settings submenu */ |
103 | MENUITEM_SETTING(show_icons, &global_settings.playlist_viewer_icons, NULL); | 102 | MENUITEM_SETTING(show_icons, &global_settings.playlist_viewer_icons, NULL); |
104 | MENUITEM_SETTING(show_indices, &global_settings.playlist_viewer_indices, NULL); | 103 | MENUITEM_SETTING(show_indices, &global_settings.playlist_viewer_indices, NULL); |
105 | MENUITEM_SETTING(track_display, | 104 | MENUITEM_SETTING(track_display, |
106 | &global_settings.playlist_viewer_track_display, NULL); | 105 | &global_settings.playlist_viewer_track_display, NULL); |
107 | MAKE_MENU(viewer_settings_menu, ID2P(LANG_PLAYLISTVIEWER_SETTINGS), | 106 | MAKE_MENU(viewer_settings_menu, ID2P(LANG_PLAYLISTVIEWER_SETTINGS), |
108 | NULL, Icon_Playlist, | 107 | NULL, Icon_Playlist, |
109 | &show_icons, &show_indices, &track_display); | 108 | &show_icons, &show_indices, &track_display); |
110 | 109 | ||
110 | /* Current Playlist submenu */ | ||
111 | MENUITEM_SETTING(warn_on_erase, &global_settings.warnon_erase_dynplaylist, NULL); | ||
112 | MENUITEM_SETTING(show_shuffled_adding_options, &global_settings.show_shuffled_adding_options, NULL); | ||
113 | MENUITEM_SETTING(show_queue_options, &global_settings.show_queue_options, NULL); | ||
114 | MAKE_MENU(currentplaylist_settings_menu, ID2P(LANG_CURRENT_PLAYLIST), | ||
115 | NULL, Icon_Playlist, | ||
116 | &warn_on_erase, &show_shuffled_adding_options, &show_queue_options); | ||
111 | 117 | ||
112 | MAKE_MENU(playlist_settings, ID2P(LANG_PLAYLISTS), NULL, | 118 | MAKE_MENU(playlist_settings, ID2P(LANG_PLAYLISTS), NULL, |
113 | Icon_Playlist, | 119 | Icon_Playlist, |
114 | &viewer_settings_menu, &recursive_dir_insert, &warn_on_erase); | 120 | &viewer_settings_menu, &recursive_dir_insert, ¤tplaylist_settings_menu); |
115 | MAKE_MENU(playlist_options, ID2P(LANG_PLAYLISTS), NULL, | 121 | MAKE_MENU(playlist_options, ID2P(LANG_PLAYLISTS), NULL, |
116 | Icon_Playlist, | 122 | Icon_Playlist, |
117 | &create_playlist_item, &view_cur_playlist, | 123 | &create_playlist_item, &view_cur_playlist, |
diff --git a/apps/onplay.c b/apps/onplay.c index 35d9a82bfd..be92a2909a 100644 --- a/apps/onplay.c +++ b/apps/onplay.c | |||
@@ -582,22 +582,8 @@ static int playlist_queue_func(void *param) | |||
582 | } | 582 | } |
583 | 583 | ||
584 | static int treeplaylist_wplayback_callback(int action, | 584 | static int treeplaylist_wplayback_callback(int action, |
585 | const struct menu_item_ex* this_item, | 585 | const struct menu_item_ex* this_item, |
586 | struct gui_synclist *this_list) | 586 | struct gui_synclist *this_list); |
587 | { | ||
588 | (void)this_item; | ||
589 | (void)this_list; | ||
590 | switch (action) | ||
591 | { | ||
592 | case ACTION_REQUEST_MENUITEM: | ||
593 | if (audio_status() & AUDIO_STATUS_PLAY) | ||
594 | return action; | ||
595 | else | ||
596 | return ACTION_EXIT_MENUITEM; | ||
597 | break; | ||
598 | } | ||
599 | return action; | ||
600 | } | ||
601 | 587 | ||
602 | static int treeplaylist_callback(int action, | 588 | static int treeplaylist_callback(int action, |
603 | const struct menu_item_ex *this_item, | 589 | const struct menu_item_ex *this_item, |
@@ -624,40 +610,95 @@ MENUITEM_FUNCTION(i_last_shuf_pl_item, MENU_FUNC_USEPARAM, | |||
624 | /* queue items */ | 610 | /* queue items */ |
625 | MENUITEM_FUNCTION(q_pl_item, MENU_FUNC_USEPARAM, ID2P(LANG_QUEUE), | 611 | MENUITEM_FUNCTION(q_pl_item, MENU_FUNC_USEPARAM, ID2P(LANG_QUEUE), |
626 | playlist_queue_func, (intptr_t*)PLAYLIST_INSERT, | 612 | playlist_queue_func, (intptr_t*)PLAYLIST_INSERT, |
627 | treeplaylist_wplayback_callback, Icon_Playlist); | 613 | treeplaylist_callback, Icon_Playlist); |
628 | MENUITEM_FUNCTION(q_first_pl_item, MENU_FUNC_USEPARAM, ID2P(LANG_QUEUE_FIRST), | 614 | MENUITEM_FUNCTION(q_first_pl_item, MENU_FUNC_USEPARAM, ID2P(LANG_QUEUE_FIRST), |
629 | playlist_queue_func, (intptr_t*)PLAYLIST_INSERT_FIRST, | 615 | playlist_queue_func, (intptr_t*)PLAYLIST_INSERT_FIRST, |
630 | treeplaylist_wplayback_callback, Icon_Playlist); | 616 | treeplaylist_callback, Icon_Playlist); |
631 | MENUITEM_FUNCTION(q_last_pl_item, MENU_FUNC_USEPARAM, ID2P(LANG_QUEUE_LAST), | 617 | MENUITEM_FUNCTION(q_last_pl_item, MENU_FUNC_USEPARAM, ID2P(LANG_QUEUE_LAST), |
632 | playlist_queue_func, (intptr_t*)PLAYLIST_INSERT_LAST, | 618 | playlist_queue_func, (intptr_t*)PLAYLIST_INSERT_LAST, |
633 | treeplaylist_wplayback_callback, Icon_Playlist); | 619 | treeplaylist_callback, Icon_Playlist); |
634 | MENUITEM_FUNCTION(q_shuf_pl_item, MENU_FUNC_USEPARAM, | 620 | MENUITEM_FUNCTION(q_shuf_pl_item, MENU_FUNC_USEPARAM, |
635 | ID2P(LANG_QUEUE_SHUFFLED), playlist_queue_func, | 621 | ID2P(LANG_QUEUE_SHUFFLED), playlist_queue_func, |
636 | (intptr_t*)PLAYLIST_INSERT_SHUFFLED, | 622 | (intptr_t*)PLAYLIST_INSERT_SHUFFLED, |
637 | treeplaylist_wplayback_callback, Icon_Playlist); | 623 | treeplaylist_callback, Icon_Playlist); |
638 | MENUITEM_FUNCTION(q_last_shuf_pl_item, MENU_FUNC_USEPARAM, | 624 | MENUITEM_FUNCTION(q_last_shuf_pl_item, MENU_FUNC_USEPARAM, |
639 | ID2P(LANG_QUEUE_LAST_SHUFFLED), playlist_queue_func, | 625 | ID2P(LANG_QUEUE_LAST_SHUFFLED), playlist_queue_func, |
640 | (intptr_t*)PLAYLIST_INSERT_LAST_SHUFFLED, | 626 | (intptr_t*)PLAYLIST_INSERT_LAST_SHUFFLED, |
641 | treeplaylist_callback, Icon_Playlist); | 627 | treeplaylist_callback, Icon_Playlist); |
628 | |||
629 | /* queue items in submenu */ | ||
630 | MENUITEM_FUNCTION(q_pl_submenu_item, MENU_FUNC_USEPARAM, ID2P(LANG_QUEUE), | ||
631 | playlist_queue_func, (intptr_t*)PLAYLIST_INSERT, | ||
632 | NULL, Icon_Playlist); | ||
633 | MENUITEM_FUNCTION(q_first_pl_submenu_item, MENU_FUNC_USEPARAM, ID2P(LANG_QUEUE_FIRST), | ||
634 | playlist_queue_func, (intptr_t*)PLAYLIST_INSERT_FIRST, | ||
635 | NULL, Icon_Playlist); | ||
636 | MENUITEM_FUNCTION(q_last_pl_submenu_item, MENU_FUNC_USEPARAM, ID2P(LANG_QUEUE_LAST), | ||
637 | playlist_queue_func, (intptr_t*)PLAYLIST_INSERT_LAST, | ||
638 | NULL, Icon_Playlist); | ||
639 | MENUITEM_FUNCTION(q_shuf_pl_submenu_item, MENU_FUNC_USEPARAM, | ||
640 | ID2P(LANG_QUEUE_SHUFFLED), playlist_queue_func, | ||
641 | (intptr_t*)PLAYLIST_INSERT_SHUFFLED, | ||
642 | treeplaylist_callback, Icon_Playlist); | ||
643 | MENUITEM_FUNCTION(q_last_shuf_pl_submenu_item, MENU_FUNC_USEPARAM, | ||
644 | ID2P(LANG_QUEUE_LAST_SHUFFLED), playlist_queue_func, | ||
645 | (intptr_t*)PLAYLIST_INSERT_LAST_SHUFFLED, | ||
646 | treeplaylist_callback, Icon_Playlist); | ||
647 | |||
648 | MAKE_ONPLAYMENU(queue_menu, ID2P(LANG_QUEUE_MENU), | ||
649 | treeplaylist_wplayback_callback, Icon_Playlist, | ||
650 | &q_pl_submenu_item, | ||
651 | &q_first_pl_submenu_item, | ||
652 | &q_last_pl_submenu_item, | ||
653 | &q_shuf_pl_submenu_item, | ||
654 | &q_last_shuf_pl_submenu_item); | ||
655 | |||
656 | static int treeplaylist_wplayback_callback(int action, | ||
657 | const struct menu_item_ex* this_item, | ||
658 | struct gui_synclist *this_list) | ||
659 | { | ||
660 | (void)this_list; | ||
661 | switch (action) | ||
662 | { | ||
663 | case ACTION_REQUEST_MENUITEM: | ||
664 | if ((audio_status() & AUDIO_STATUS_PLAY) && | ||
665 | (this_item != &queue_menu || | ||
666 | global_settings.show_queue_options == QUEUE_SHOW_IN_SUBMENU)) | ||
667 | return action; | ||
668 | else | ||
669 | return ACTION_EXIT_MENUITEM; | ||
670 | break; | ||
671 | } | ||
672 | return action; | ||
673 | } | ||
674 | |||
642 | /* replace playlist */ | 675 | /* replace playlist */ |
643 | MENUITEM_FUNCTION(replace_pl_item, MENU_FUNC_USEPARAM, ID2P(LANG_CLEAR_LIST_AND_PLAY_NEXT), | 676 | MENUITEM_FUNCTION(replace_pl_item, MENU_FUNC_USEPARAM, ID2P(LANG_CLEAR_LIST_AND_PLAY_NEXT), |
644 | playlist_insert_func, (intptr_t*)PLAYLIST_REPLACE, | 677 | playlist_insert_func, (intptr_t*)PLAYLIST_REPLACE, |
645 | NULL, Icon_Playlist); | 678 | NULL, Icon_Playlist); |
646 | 679 | ||
680 | MAKE_ONPLAYMENU(tree_playlist_menu, ID2P(LANG_CURRENT_PLAYLIST), | ||
681 | treeplaylist_callback, Icon_Playlist, | ||
647 | 682 | ||
648 | MAKE_ONPLAYMENU( tree_playlist_menu, ID2P(LANG_CURRENT_PLAYLIST), | 683 | /* insert */ |
649 | treeplaylist_callback, Icon_Playlist, | 684 | &i_pl_item, |
685 | &i_first_pl_item, | ||
686 | &i_last_pl_item, | ||
687 | &i_shuf_pl_item, | ||
688 | &i_last_shuf_pl_item, | ||
650 | 689 | ||
651 | /* insert */ | 690 | /* queue */ |
652 | &i_pl_item, &i_first_pl_item, &i_last_pl_item, | 691 | &q_pl_item, |
653 | &i_shuf_pl_item, &i_last_shuf_pl_item, | 692 | &q_first_pl_item, |
654 | /* queue */ | 693 | &q_last_pl_item, |
694 | &q_shuf_pl_item, | ||
695 | &q_last_shuf_pl_item, | ||
655 | 696 | ||
656 | &q_pl_item, &q_first_pl_item, &q_last_pl_item, | 697 | /* Queue submenu */ |
657 | &q_shuf_pl_item, &q_last_shuf_pl_item, | 698 | &queue_menu, |
658 | 699 | ||
659 | /* replace */ | 700 | /* replace */ |
660 | &replace_pl_item | 701 | &replace_pl_item |
661 | ); | 702 | ); |
662 | static int treeplaylist_callback(int action, | 703 | static int treeplaylist_callback(int action, |
663 | const struct menu_item_ex *this_item, | 704 | const struct menu_item_ex *this_item, |
@@ -669,36 +710,55 @@ static int treeplaylist_callback(int action, | |||
669 | case ACTION_REQUEST_MENUITEM: | 710 | case ACTION_REQUEST_MENUITEM: |
670 | if (this_item == &tree_playlist_menu) | 711 | if (this_item == &tree_playlist_menu) |
671 | { | 712 | { |
672 | if (((selected_file_attr & FILE_ATTR_MASK) == | 713 | if ((selected_file_attr & FILE_ATTR_MASK) == FILE_ATTR_AUDIO || |
673 | FILE_ATTR_AUDIO) || | 714 | (selected_file_attr & FILE_ATTR_MASK) == FILE_ATTR_M3U || |
674 | ((selected_file_attr & FILE_ATTR_MASK) == FILE_ATTR_M3U)|| | 715 | (selected_file_attr & ATTR_DIRECTORY)) |
675 | (selected_file_attr & ATTR_DIRECTORY)) | 716 | return action; |
676 | { | ||
677 | return action; | ||
678 | } | ||
679 | } | 717 | } |
680 | else if (this_item == &i_pl_item) | 718 | else if (this_item == &i_pl_item && |
719 | global_status.resume_index != -1) | ||
681 | { | 720 | { |
682 | if (global_status.resume_index != -1) | 721 | return action; |
683 | return action; | 722 | } |
723 | else if ((this_item == &q_pl_item || | ||
724 | this_item == &q_first_pl_item || | ||
725 | this_item == &q_last_pl_item) && | ||
726 | global_settings.show_queue_options == QUEUE_SHOW_AT_TOPLEVEL && | ||
727 | (audio_status() & AUDIO_STATUS_PLAY)) | ||
728 | { | ||
729 | return action; | ||
684 | } | 730 | } |
685 | else if (this_item == &i_shuf_pl_item) | 731 | else if (this_item == &i_shuf_pl_item) |
686 | { | 732 | { |
687 | if ((global_status.resume_index != -1) && | 733 | if (global_settings.show_shuffled_adding_options && |
688 | ((audio_status() & AUDIO_STATUS_PLAY) || | 734 | (global_status.resume_index != -1) && |
689 | (selected_file_attr & ATTR_DIRECTORY) || | 735 | ((audio_status() & AUDIO_STATUS_PLAY) || |
690 | ((selected_file_attr & FILE_ATTR_MASK) == FILE_ATTR_M3U))) | 736 | (selected_file_attr & ATTR_DIRECTORY) || |
737 | ((selected_file_attr & FILE_ATTR_MASK) == FILE_ATTR_M3U))) | ||
738 | { | ||
739 | return action; | ||
740 | } | ||
741 | } | ||
742 | else if (this_item == &q_shuf_pl_submenu_item || | ||
743 | (this_item == &q_shuf_pl_item && | ||
744 | global_settings.show_queue_options == QUEUE_SHOW_AT_TOPLEVEL)) | ||
745 | { | ||
746 | if (global_settings.show_shuffled_adding_options && | ||
747 | (audio_status() & AUDIO_STATUS_PLAY)) | ||
691 | { | 748 | { |
692 | return action; | 749 | return action; |
693 | } | 750 | } |
694 | } | 751 | } |
695 | else if (this_item == &i_last_shuf_pl_item || | 752 | else if (this_item == &i_last_shuf_pl_item || |
696 | this_item == &q_last_shuf_pl_item) | 753 | this_item == &q_last_shuf_pl_submenu_item || |
754 | (this_item == &q_last_shuf_pl_item && | ||
755 | global_settings.show_queue_options == QUEUE_SHOW_AT_TOPLEVEL)) | ||
697 | { | 756 | { |
698 | if ((playlist_amount() > 0) && | 757 | if (global_settings.show_shuffled_adding_options && |
758 | (playlist_amount() > 0) && | ||
699 | (audio_status() & AUDIO_STATUS_PLAY) && | 759 | (audio_status() & AUDIO_STATUS_PLAY) && |
700 | ((selected_file_attr & ATTR_DIRECTORY) || | 760 | ((selected_file_attr & ATTR_DIRECTORY) || |
701 | ((selected_file_attr & FILE_ATTR_MASK) == FILE_ATTR_M3U))) | 761 | ((selected_file_attr & FILE_ATTR_MASK) == FILE_ATTR_M3U))) |
702 | { | 762 | { |
703 | return action; | 763 | return action; |
704 | } | 764 | } |
diff --git a/apps/settings.h b/apps/settings.h index 60f2b44588..cc60617de4 100644 --- a/apps/settings.h +++ b/apps/settings.h | |||
@@ -109,6 +109,12 @@ enum | |||
109 | NUM_REPEAT_MODES | 109 | NUM_REPEAT_MODES |
110 | }; | 110 | }; |
111 | 111 | ||
112 | enum | ||
113 | { | ||
114 | QUEUE_HIDE = 0, | ||
115 | QUEUE_SHOW_AT_TOPLEVEL, | ||
116 | QUEUE_SHOW_IN_SUBMENU | ||
117 | }; | ||
112 | 118 | ||
113 | /* dir filter options */ | 119 | /* dir filter options */ |
114 | /* Note: Any new filter modes need to be added before NUM_FILTER_MODES. | 120 | /* Note: Any new filter modes need to be added before NUM_FILTER_MODES. |
@@ -574,6 +580,8 @@ struct user_settings | |||
574 | bool fade_on_stop; /* fade on pause/unpause/stop */ | 580 | bool fade_on_stop; /* fade on pause/unpause/stop */ |
575 | bool playlist_shuffle; | 581 | bool playlist_shuffle; |
576 | bool warnon_erase_dynplaylist; /* warn when erasing dynamic playlist */ | 582 | bool warnon_erase_dynplaylist; /* warn when erasing dynamic playlist */ |
583 | bool show_shuffled_adding_options; /* whether to display options for adding shuffled tracks to dynamic playlist */ | ||
584 | int show_queue_options; /* how and whether to display options to queue tracks */ | ||
577 | 585 | ||
578 | /* playlist viewer settings */ | 586 | /* playlist viewer settings */ |
579 | bool playlist_viewer_icons; /* display icons on viewer */ | 587 | bool playlist_viewer_icons; /* display icons on viewer */ |
diff --git a/apps/settings_list.c b/apps/settings_list.c index cf52f26080..e5c02f6bf3 100644 --- a/apps/settings_list.c +++ b/apps/settings_list.c | |||
@@ -1788,6 +1788,15 @@ const struct settings_list settings[] = { | |||
1788 | OFFON_SETTING(0, warnon_erase_dynplaylist, LANG_WARN_ERASEDYNPLAYLIST_MENU, | 1788 | OFFON_SETTING(0, warnon_erase_dynplaylist, LANG_WARN_ERASEDYNPLAYLIST_MENU, |
1789 | true, "warn when erasing dynamic playlist",NULL), | 1789 | true, "warn when erasing dynamic playlist",NULL), |
1790 | 1790 | ||
1791 | OFFON_SETTING(0, show_shuffled_adding_options, LANG_SHOW_SHUFFLED_ADDING_OPTIONS, true, | ||
1792 | "show shuffled adding options", NULL), | ||
1793 | CHOICE_SETTING(0, show_queue_options, LANG_SHOW_QUEUE_OPTIONS, 1, | ||
1794 | "show queue options", "off,on,in submenu", | ||
1795 | NULL, 3, | ||
1796 | ID2P(LANG_SET_BOOL_NO), | ||
1797 | ID2P(LANG_SET_BOOL_YES), | ||
1798 | ID2P(LANG_IN_SUBMENU)), | ||
1799 | |||
1791 | #ifdef HAVE_BACKLIGHT | 1800 | #ifdef HAVE_BACKLIGHT |
1792 | #ifdef HAS_BUTTON_HOLD | 1801 | #ifdef HAS_BUTTON_HOLD |
1793 | CHOICE_SETTING(0, backlight_on_button_hold, LANG_BACKLIGHT_ON_BUTTON_HOLD, | 1802 | CHOICE_SETTING(0, backlight_on_button_hold, LANG_BACKLIGHT_ON_BUTTON_HOLD, |