summaryrefslogtreecommitdiff
path: root/apps/plugins/mpegplayer
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2009-06-16 04:25:21 +0000
committerJonathan Gordon <rockbox@jdgordon.info>2009-06-16 04:25:21 +0000
commitaf9f4056510f248c4c9c1335167853bb455e8cc0 (patch)
treeeff7ad7726083ee605d753bd9aa9e22213b1acf0 /apps/plugins/mpegplayer
parentcb57a568e8dc9def607dc9ab27f515309bd13841 (diff)
downloadrockbox-af9f4056510f248c4c9c1335167853bb455e8cc0.zip
rockbox-af9f4056510f248c4c9c1335167853bb455e8cc0.tar.gz
rockbox-af9f4056510f248c4c9c1335167853bb455e8cc0.tar.bz2
rockbox-af9f4056510f248c4c9c1335167853bb455e8cc0.tar.xz
Accept FS#10094 by Teruaki Kawashima:
Replace the old menu API with the "new" one (a very long time overdue so huge thanks for the work.) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21306 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/mpegplayer')
-rw-r--r--apps/plugins/mpegplayer/mpeg_settings.c139
-rw-r--r--apps/plugins/mpegplayer/mpeg_settings.h2
-rw-r--r--apps/plugins/mpegplayer/mpegplayer.c2
3 files changed, 40 insertions, 103 deletions
diff --git a/apps/plugins/mpegplayer/mpeg_settings.c b/apps/plugins/mpegplayer/mpeg_settings.c
index 8aea93b..7ec1157 100644
--- a/apps/plugins/mpegplayer/mpeg_settings.c
+++ b/apps/plugins/mpegplayer/mpeg_settings.c
@@ -1,7 +1,6 @@
#include "plugin.h"
#include "lib/helper.h"
#include "lib/configfile.h"
-#include "lib/oldmenuapi.h"
#include "mpegplayer.h"
#include "mpeg_settings.h"
@@ -257,7 +256,7 @@ void mpeg_menu_sysevent_clear(void)
mpeg_menu_sysevent_id = 0;
}
-int mpeg_menu_sysevent_callback(int btn, int menu)
+int mpeg_menu_sysevent_callback(int btn, const struct menu_item_ex *menu)
{
switch (btn)
{
@@ -283,17 +282,6 @@ void mpeg_menu_sysevent_handle(void)
rb->default_event_handler(id);
}
-static void format_menu_item(struct menu_item *item, int bufsize,
- const char *fmt, ...)
-{
- va_list ap;
- va_start(ap, fmt);
-
- rb->vsnprintf(item->desc, bufsize, fmt, ap);
-
- va_end(ap);
-}
-
static bool mpeg_set_option(const char* string,
void* variable,
enum optiontype type,
@@ -691,7 +679,7 @@ static int get_start_time(uint32_t duration)
button = tmo == TIMEOUT_BLOCK ?
rb->button_get(true) : rb->button_get_w_tmo(tmo);
- button = mpeg_menu_sysevent_callback(button, -1);
+ button = mpeg_menu_sysevent_callback(button, NULL);
switch (button)
{
@@ -822,43 +810,31 @@ static int get_start_time(uint32_t duration)
static int show_start_menu(uint32_t duration)
{
- int menu_id;
+ int selected = 0;
int result = 0;
bool menu_quit = false;
/* add the resume time to the menu display */
- char resume_str[32];
+ static char resume_str[32];
char hms_str[32];
struct hms hms;
- struct menu_item items[] =
- {
- [MPEG_START_RESTART] =
- { "Play from beginning", NULL },
- [MPEG_START_RESUME] =
- { resume_str, NULL },
- [MPEG_START_SEEK] =
- { "Set start time", NULL },
- [MPEG_START_SETTINGS] =
- { "Settings", NULL },
- [MPEG_START_QUIT] =
- { "Quit mpegplayer", NULL },
- };
+ MENUITEM_STRINGLIST(menu, "Mpegplayer Menu", mpeg_menu_sysevent_callback,
+ "Play from beginning", resume_str,
+ "Set start time", "Settings",
+ "Quit mpegplayer");
ts_to_hms(settings.resume_time, &hms);
hms_format(hms_str, sizeof(hms_str), &hms);
- format_menu_item(&items[MPEG_START_RESUME], sizeof (resume_str),
+ rb->snprintf(resume_str, sizeof (resume_str),
"Resume at: %s", hms_str);
- menu_id = menu_init(items, ARRAYLEN(items),
- mpeg_menu_sysevent_callback, NULL, NULL, NULL);
-
rb->button_clear_queue();
while (!menu_quit)
{
mpeg_menu_sysevent_clear();
- result = menu_show(menu_id);
+ result = rb->do_menu(&menu, &selected, NULL, false);
switch (result)
{
@@ -901,8 +877,6 @@ static int show_start_menu(uint32_t duration)
}
}
- menu_exit(menu_id);
-
rb->lcd_clear_display();
rb->lcd_update();
@@ -934,36 +908,26 @@ int mpeg_start_menu(uint32_t duration)
/** MPEG Menu **/
static void display_options(void)
{
+ int selected = 0;
int result;
- int menu_id;
bool menu_quit = false;
- static const struct menu_item items[] = {
+ MENUITEM_STRINGLIST(menu, "Display Options", mpeg_menu_sysevent_callback,
#if MPEG_OPTION_DITHERING_ENABLED
- [MPEG_OPTION_DITHERING] =
- { "Dithering", NULL },
+ "Dithering",
#endif
- [MPEG_OPTION_DISPLAY_FPS] =
- { "Display FPS", NULL },
- [MPEG_OPTION_LIMIT_FPS] =
- { "Limit FPS", NULL },
- [MPEG_OPTION_SKIP_FRAMES] =
- { "Skip frames", NULL },
+ "Display FPS", "Limit FPS", "Skip frames",
#ifdef HAVE_BACKLIGHT_BRIGHTNESS
- [MPEG_OPTION_BACKLIGHT_BRIGHTNESS] =
- { "Backlight brightness", NULL },
+ "Backlight brightness",
#endif
- };
-
- menu_id = menu_init(items, ARRAYLEN(items),
- mpeg_menu_sysevent_callback, NULL, NULL, NULL);
+ );
rb->button_clear_queue();
while (!menu_quit)
{
mpeg_menu_sysevent_clear();
- result = menu_show(menu_id);
+ result = rb->do_menu(&menu, &selected, NULL, false);
switch (result)
{
@@ -1014,38 +978,24 @@ static void display_options(void)
if (mpeg_menu_sysevent() != 0)
menu_quit = true;
}
-
- menu_exit(menu_id);
}
static void audio_options(void)
{
+ int selected = 0;
int result;
- int menu_id;
bool menu_quit = false;
- static const struct menu_item items[] = {
- [MPEG_AUDIO_TONE_CONTROLS] =
- { "Tone Controls", NULL },
- [MPEG_AUDIO_CHANNEL_MODES] =
- { "Channel Modes", NULL },
- [MPEG_AUDIO_CROSSFEED] =
- { "Crossfeed", NULL },
- [MPEG_AUDIO_EQUALIZER] =
- { "Equalizer", NULL },
- [MPEG_AUDIO_DITHERING] =
- { "Dithering", NULL },
- };
-
- menu_id = menu_init(items, ARRAYLEN(items),
- mpeg_menu_sysevent_callback, NULL, NULL, NULL);
+ MENUITEM_STRINGLIST(menu, "Audio Options", mpeg_menu_sysevent_callback,
+ "Tone Controls", "Channel Modes", "Crossfeed",
+ "Equalizer", "Dithering");
rb->button_clear_queue();
while (!menu_quit)
{
mpeg_menu_sysevent_clear();
- result = menu_show(menu_id);
+ result = rb->do_menu(&menu, &selected, NULL, false);
switch (result)
{
@@ -1087,8 +1037,6 @@ static void audio_options(void)
if (mpeg_menu_sysevent() != 0)
menu_quit = true;
}
-
- menu_exit(menu_id);
}
static void resume_options(void)
@@ -1121,32 +1069,23 @@ static void clear_resume_count(void)
int mpeg_menu(unsigned flags)
{
- int menu_id;
+ int selected = 0;
int result;
bool menu_quit = false;
- int item_count;
- char clear_str[32];
-
- struct menu_item items[] = {
- [MPEG_MENU_DISPLAY_SETTINGS] =
- { "Display Options", NULL },
- [MPEG_MENU_AUDIO_SETTINGS] =
- { "Audio Options", NULL },
- [MPEG_MENU_ENABLE_START_MENU] =
- { "Resume Options", NULL },
- [MPEG_MENU_CLEAR_RESUMES] =
- { clear_str, NULL },
- [MPEG_MENU_QUIT] =
- { "Quit mpegplayer", NULL },
- };
-
- item_count = ARRAYLEN(items);
+ static char clear_str[32];
+
+ MENUITEM_STRINGLIST(menu_with_quit, "Mpegplayer Menu",
+ mpeg_menu_sysevent_callback,
+ "Display Options", "Audio Options",
+ "Resume Options", clear_str, "Quit mpegplayer");
+ MENUITEM_STRINGLIST(menu_without_quit, "Settings",
+ mpeg_menu_sysevent_callback,
+ "Display Options", "Audio Options",
+ "Resume Options", clear_str);
+ const struct menu_item_ex *menu = &menu_with_quit;
if (flags & MPEG_MENU_HIDE_QUIT_ITEM)
- item_count--;
-
- menu_id = menu_init(items, item_count,
- mpeg_menu_sysevent_callback, NULL, NULL, NULL);
+ menu = &menu_without_quit;
rb->button_clear_queue();
@@ -1155,10 +1094,10 @@ int mpeg_menu(unsigned flags)
mpeg_menu_sysevent_clear();
/* Format and add resume option to the menu display */
- format_menu_item(&items[MPEG_MENU_CLEAR_RESUMES], sizeof(clear_str),
- "Clear all resumes: %u", settings.resume_count);
+ rb->snprintf(clear_str, sizeof(clear_str),
+ "Clear all resumes: %u", settings.resume_count);
- result = menu_show(menu_id);
+ result = rb->do_menu(menu, &selected, NULL, false);
switch (result)
{
@@ -1191,8 +1130,6 @@ int mpeg_menu(unsigned flags)
}
}
- menu_exit(menu_id);
-
rb->lcd_clear_display();
rb->lcd_update();
diff --git a/apps/plugins/mpegplayer/mpeg_settings.h b/apps/plugins/mpegplayer/mpeg_settings.h
index fc43db0..81a43fa 100644
--- a/apps/plugins/mpegplayer/mpeg_settings.h
+++ b/apps/plugins/mpegplayer/mpeg_settings.h
@@ -100,7 +100,7 @@ enum
int mpeg_menu(unsigned flags);
void mpeg_menu_sysevent_clear(void);
long mpeg_menu_sysevent(void);
-int mpeg_menu_sysevent_callback(int btn, int menu);
+int mpeg_menu_sysevent_callback(int btn, const struct menu_item_ex *menu);
void mpeg_menu_sysevent_handle(void);
void init_settings(const char* filename);
diff --git a/apps/plugins/mpegplayer/mpegplayer.c b/apps/plugins/mpegplayer/mpegplayer.c
index 0a12a78..f71b774 100644
--- a/apps/plugins/mpegplayer/mpegplayer.c
+++ b/apps/plugins/mpegplayer/mpegplayer.c
@@ -1498,7 +1498,7 @@ static void button_loop(void)
mpeg_menu_sysevent_clear();
button = rb->button_get_w_tmo(WVS_MIN_UPDATE_INTERVAL);
- button = mpeg_menu_sysevent_callback(button, -1);
+ button = mpeg_menu_sysevent_callback(button, NULL);
switch (button)
{