diff options
-rw-r--r-- | apps/plugins/mpegplayer/mpeg_settings.c | 80 | ||||
-rw-r--r-- | apps/plugins/mpegplayer/mpeg_settings.h | 21 | ||||
-rw-r--r-- | apps/plugins/mpegplayer/mpegplayer.c | 26 |
3 files changed, 70 insertions, 57 deletions
diff --git a/apps/plugins/mpegplayer/mpeg_settings.c b/apps/plugins/mpegplayer/mpeg_settings.c index 3868d759f6..d361cc818e 100644 --- a/apps/plugins/mpegplayer/mpeg_settings.c +++ b/apps/plugins/mpegplayer/mpeg_settings.c | |||
@@ -259,6 +259,7 @@ static const struct opt_items globaloff[2] = { | |||
259 | #define BACKLIGHT_OPTION_DEFAULT "Use setting" | 259 | #define BACKLIGHT_OPTION_DEFAULT "Use setting" |
260 | #endif | 260 | #endif |
261 | 261 | ||
262 | static void mpeg_settings(void); | ||
262 | static long mpeg_menu_sysevent_id; | 263 | static long mpeg_menu_sysevent_id; |
263 | 264 | ||
264 | void mpeg_menu_sysevent_clear(void) | 265 | void mpeg_menu_sysevent_clear(void) |
@@ -831,9 +832,8 @@ static int show_start_menu(uint32_t duration) | |||
831 | struct hms hms; | 832 | struct hms hms; |
832 | 833 | ||
833 | MENUITEM_STRINGLIST(menu, "Mpegplayer Menu", mpeg_menu_sysevent_callback, | 834 | MENUITEM_STRINGLIST(menu, "Mpegplayer Menu", mpeg_menu_sysevent_callback, |
834 | "Play from beginning", resume_str, | 835 | "Play from beginning", resume_str, "Set start time", |
835 | "Set start time", "Settings", | 836 | "Settings", "Quit mpegplayer"); |
836 | "Quit mpegplayer"); | ||
837 | 837 | ||
838 | ts_to_hms(settings.resume_time, &hms); | 838 | ts_to_hms(settings.resume_time, &hms); |
839 | hms_format(hms_str, sizeof(hms_str), &hms); | 839 | hms_format(hms_str, sizeof(hms_str), &hms); |
@@ -872,9 +872,9 @@ static int show_start_menu(uint32_t duration) | |||
872 | break; | 872 | break; |
873 | 873 | ||
874 | case MPEG_START_SETTINGS: | 874 | case MPEG_START_SETTINGS: |
875 | if (mpeg_menu(MPEG_MENU_HIDE_QUIT_ITEM) != MPEG_MENU_QUIT) | 875 | mpeg_settings(); |
876 | break; | 876 | break; |
877 | /* Fall-through */ | 877 | |
878 | default: | 878 | default: |
879 | result = MPEG_START_QUIT; | 879 | result = MPEG_START_QUIT; |
880 | menu_quit = true; | 880 | menu_quit = true; |
@@ -916,6 +916,44 @@ int mpeg_start_menu(uint32_t duration) | |||
916 | } | 916 | } |
917 | } | 917 | } |
918 | 918 | ||
919 | int mpeg_menu(void) | ||
920 | { | ||
921 | int result; | ||
922 | |||
923 | MENUITEM_STRINGLIST(menu, "Mpegplayer Menu", mpeg_menu_sysevent_callback, | ||
924 | "Settings", "Resume playback", "Quit mpegplayer"); | ||
925 | |||
926 | rb->button_clear_queue(); | ||
927 | |||
928 | mpeg_menu_sysevent_clear(); | ||
929 | |||
930 | result = rb->do_menu(&menu, NULL, NULL, false); | ||
931 | |||
932 | switch (result) | ||
933 | { | ||
934 | case MPEG_MENU_SETTINGS: | ||
935 | mpeg_settings(); | ||
936 | break; | ||
937 | |||
938 | case MPEG_MENU_RESUME: | ||
939 | break; | ||
940 | |||
941 | case MPEG_MENU_QUIT: | ||
942 | break; | ||
943 | |||
944 | default: | ||
945 | break; | ||
946 | } | ||
947 | |||
948 | if (mpeg_menu_sysevent() != 0) | ||
949 | result = MPEG_MENU_QUIT; | ||
950 | |||
951 | rb->lcd_clear_display(); | ||
952 | rb->lcd_update(); | ||
953 | |||
954 | return result; | ||
955 | } | ||
956 | |||
919 | /** MPEG Menu **/ | 957 | /** MPEG Menu **/ |
920 | static void display_options(void) | 958 | static void display_options(void) |
921 | { | 959 | { |
@@ -1078,25 +1116,16 @@ static void clear_resume_count(void) | |||
1078 | configfile_update_entry(SETTINGS_FILENAME, "Resume count", 0); | 1116 | configfile_update_entry(SETTINGS_FILENAME, "Resume count", 0); |
1079 | } | 1117 | } |
1080 | 1118 | ||
1081 | int mpeg_menu(unsigned flags) | 1119 | static void mpeg_settings(void) |
1082 | { | 1120 | { |
1083 | int selected = 0; | 1121 | int selected = 0; |
1084 | int result; | 1122 | int result; |
1085 | bool menu_quit = false; | 1123 | bool menu_quit = false; |
1086 | static char clear_str[32]; | 1124 | static char clear_str[32]; |
1087 | 1125 | ||
1088 | MENUITEM_STRINGLIST(menu_with_quit, "Mpegplayer Menu", | 1126 | MENUITEM_STRINGLIST(menu, "Settings", mpeg_menu_sysevent_callback, |
1089 | mpeg_menu_sysevent_callback, | ||
1090 | "Display Options", "Audio Options", | ||
1091 | "Resume Options", clear_str, "Quit mpegplayer"); | ||
1092 | MENUITEM_STRINGLIST(menu_without_quit, "Settings", | ||
1093 | mpeg_menu_sysevent_callback, | ||
1094 | "Display Options", "Audio Options", | 1127 | "Display Options", "Audio Options", |
1095 | "Resume Options", clear_str); | 1128 | "Resume Options", clear_str); |
1096 | const struct menu_item_ex *menu = &menu_with_quit; | ||
1097 | |||
1098 | if (flags & MPEG_MENU_HIDE_QUIT_ITEM) | ||
1099 | menu = &menu_without_quit; | ||
1100 | 1129 | ||
1101 | rb->button_clear_queue(); | 1130 | rb->button_clear_queue(); |
1102 | 1131 | ||
@@ -1112,39 +1141,30 @@ int mpeg_menu(unsigned flags) | |||
1112 | 1141 | ||
1113 | switch (result) | 1142 | switch (result) |
1114 | { | 1143 | { |
1115 | case MPEG_MENU_DISPLAY_SETTINGS: | 1144 | case MPEG_SETTING_DISPLAY_SETTINGS: |
1116 | display_options(); | 1145 | display_options(); |
1117 | break; | 1146 | break; |
1118 | 1147 | ||
1119 | case MPEG_MENU_AUDIO_SETTINGS: | 1148 | case MPEG_SETTING_AUDIO_SETTINGS: |
1120 | audio_options(); | 1149 | audio_options(); |
1121 | break; | 1150 | break; |
1122 | 1151 | ||
1123 | case MPEG_MENU_ENABLE_START_MENU: | 1152 | case MPEG_SETTING_ENABLE_START_MENU: |
1124 | resume_options(); | 1153 | resume_options(); |
1125 | break; | 1154 | break; |
1126 | 1155 | ||
1127 | case MPEG_MENU_CLEAR_RESUMES: | 1156 | case MPEG_SETTING_CLEAR_RESUMES: |
1128 | clear_resume_count(); | 1157 | clear_resume_count(); |
1129 | break; | 1158 | break; |
1130 | 1159 | ||
1131 | case MPEG_MENU_QUIT: | ||
1132 | default: | 1160 | default: |
1133 | menu_quit = true; | 1161 | menu_quit = true; |
1134 | break; | 1162 | break; |
1135 | } | 1163 | } |
1136 | 1164 | ||
1137 | if (mpeg_menu_sysevent() != 0) | 1165 | if (mpeg_menu_sysevent() != 0) |
1138 | { | ||
1139 | result = MPEG_MENU_QUIT; | ||
1140 | menu_quit = true; | 1166 | menu_quit = true; |
1141 | } | ||
1142 | } | 1167 | } |
1143 | |||
1144 | rb->lcd_clear_display(); | ||
1145 | rb->lcd_update(); | ||
1146 | |||
1147 | return result; | ||
1148 | } | 1168 | } |
1149 | 1169 | ||
1150 | void init_settings(const char* filename) | 1170 | void init_settings(const char* filename) |
diff --git a/apps/plugins/mpegplayer/mpeg_settings.h b/apps/plugins/mpegplayer/mpeg_settings.h index fa50176161..95ecc29546 100644 --- a/apps/plugins/mpegplayer/mpeg_settings.h +++ b/apps/plugins/mpegplayer/mpeg_settings.h | |||
@@ -56,12 +56,18 @@ enum mpeg_start_id | |||
56 | MPEG_START_EXIT, | 56 | MPEG_START_EXIT, |
57 | }; | 57 | }; |
58 | 58 | ||
59 | enum mpeg_setting_id | ||
60 | { | ||
61 | MPEG_SETTING_DISPLAY_SETTINGS, | ||
62 | MPEG_SETTING_AUDIO_SETTINGS, | ||
63 | MPEG_SETTING_ENABLE_START_MENU, | ||
64 | MPEG_SETTING_CLEAR_RESUMES, | ||
65 | }; | ||
66 | |||
59 | enum mpeg_menu_id | 67 | enum mpeg_menu_id |
60 | { | 68 | { |
61 | MPEG_MENU_DISPLAY_SETTINGS, | 69 | MPEG_MENU_SETTINGS, |
62 | MPEG_MENU_AUDIO_SETTINGS, | 70 | MPEG_MENU_RESUME, |
63 | MPEG_MENU_ENABLE_START_MENU, | ||
64 | MPEG_MENU_CLEAR_RESUMES, | ||
65 | MPEG_MENU_QUIT, | 71 | MPEG_MENU_QUIT, |
66 | }; | 72 | }; |
67 | 73 | ||
@@ -91,13 +97,8 @@ struct mpeg_settings { | |||
91 | extern struct mpeg_settings settings; | 97 | extern struct mpeg_settings settings; |
92 | 98 | ||
93 | int mpeg_start_menu(uint32_t duration); | 99 | int mpeg_start_menu(uint32_t duration); |
100 | int mpeg_menu(void); | ||
94 | 101 | ||
95 | enum | ||
96 | { | ||
97 | MPEG_MENU_HIDE_QUIT_ITEM = 0x1, /* Don't show the quit item */ | ||
98 | }; | ||
99 | |||
100 | int mpeg_menu(unsigned flags); | ||
101 | void mpeg_menu_sysevent_clear(void); | 102 | void mpeg_menu_sysevent_clear(void); |
102 | long mpeg_menu_sysevent(void); | 103 | long mpeg_menu_sysevent(void); |
103 | int mpeg_menu_sysevent_callback(int btn, const struct menu_item_ex *menu); | 104 | int mpeg_menu_sysevent_callback(int btn, const struct menu_item_ex *menu); |
diff --git a/apps/plugins/mpegplayer/mpegplayer.c b/apps/plugins/mpegplayer/mpegplayer.c index 47407cca8e..a66a588ace 100644 --- a/apps/plugins/mpegplayer/mpegplayer.c +++ b/apps/plugins/mpegplayer/mpegplayer.c | |||
@@ -1485,10 +1485,8 @@ static void button_loop(void) | |||
1485 | rb->lcd_clear_display(); | 1485 | rb->lcd_clear_display(); |
1486 | rb->lcd_update(); | 1486 | rb->lcd_update(); |
1487 | 1487 | ||
1488 | #if defined(HAVE_LCD_MODES) | 1488 | #if defined(HAVE_LCD_MODES) && (HAVE_LCD_MODES & LCD_MODE_YUV) |
1489 | #if (HAVE_LCD_MODES & LCD_MODE_YUV) | 1489 | rb->lcd_set_mode(LCD_MODE_YUV); |
1490 | rb->lcd_set_mode(LCD_MODE_YUV); | ||
1491 | #endif | ||
1492 | #endif | 1490 | #endif |
1493 | 1491 | ||
1494 | wvs_init(); | 1492 | wvs_init(); |
@@ -1569,13 +1567,11 @@ static void button_loop(void) | |||
1569 | stream_show_vo(false); | 1567 | stream_show_vo(false); |
1570 | wvs_backlight_brightness_video_mode(false); | 1568 | wvs_backlight_brightness_video_mode(false); |
1571 | 1569 | ||
1572 | #if defined(HAVE_LCD_MODES) | 1570 | #if defined(HAVE_LCD_MODES) && (HAVE_LCD_MODES & LCD_MODE_YUV) |
1573 | #if (HAVE_LCD_MODES & LCD_MODE_YUV) | 1571 | rb->lcd_set_mode(LCD_MODE_RGB565); |
1574 | rb->lcd_set_mode(LCD_MODE_RGB565); | ||
1575 | #endif | ||
1576 | #endif | 1572 | #endif |
1577 | 1573 | ||
1578 | result = mpeg_menu(0); | 1574 | result = mpeg_menu(); |
1579 | 1575 | ||
1580 | /* The menu can change the font, so restore */ | 1576 | /* The menu can change the font, so restore */ |
1581 | rb->lcd_setfont(FONT_SYSFIXED); | 1577 | rb->lcd_setfont(FONT_SYSFIXED); |
@@ -1587,10 +1583,8 @@ static void button_loop(void) | |||
1587 | break; | 1583 | break; |
1588 | 1584 | ||
1589 | default: | 1585 | default: |
1590 | #if defined(HAVE_LCD_MODES) | 1586 | #if defined(HAVE_LCD_MODES) && (HAVE_LCD_MODES & LCD_MODE_YUV) |
1591 | #if (HAVE_LCD_MODES & LCD_MODE_YUV) | 1587 | rb->lcd_set_mode(LCD_MODE_YUV); |
1592 | rb->lcd_set_mode(LCD_MODE_YUV); | ||
1593 | #endif | ||
1594 | #endif | 1588 | #endif |
1595 | /* If not stopped, show video again */ | 1589 | /* If not stopped, show video again */ |
1596 | if (state != STREAM_STOPPED) { | 1590 | if (state != STREAM_STOPPED) { |
@@ -1751,10 +1745,8 @@ enum plugin_status plugin_start(const void* parameter) | |||
1751 | } | 1745 | } |
1752 | } | 1746 | } |
1753 | 1747 | ||
1754 | #if defined(HAVE_LCD_MODES) | 1748 | #if defined(HAVE_LCD_MODES) && (HAVE_LCD_MODES & LCD_MODE_YUV) |
1755 | #if (HAVE_LCD_MODES & LCD_MODE_YUV) | 1749 | rb->lcd_set_mode(LCD_MODE_RGB565); |
1756 | rb->lcd_set_mode(LCD_MODE_RGB565); | ||
1757 | #endif | ||
1758 | #endif | 1750 | #endif |
1759 | 1751 | ||
1760 | stream_exit(); | 1752 | stream_exit(); |