diff options
| author | Jeffrey Goode <jeffg7@gmail.com> | 2010-05-11 13:40:25 +0000 |
|---|---|---|
| committer | Jeffrey Goode <jeffg7@gmail.com> | 2010-05-11 13:40:25 +0000 |
| commit | e141f80e11c08fbb9d404c192f1ef4bcf28c7a74 (patch) | |
| tree | bce928acbd2bfe793b8a3250d7305ef17f9f94bc /apps | |
| parent | 565a863dd50b62245e52e18caaf5306955f6b9f5 (diff) | |
| download | rockbox-e141f80e11c08fbb9d404c192f1ef4bcf28c7a74.zip rockbox-e141f80e11c08fbb9d404c192f1ef4bcf28c7a74.tar.gz rockbox-e141f80e11c08fbb9d404c192f1ef4bcf28c7a74.tar.bz2 rockbox-e141f80e11c08fbb9d404c192f1ef4bcf28c7a74.tar.xz | |
Add Insert Shuffled to hotkey options
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25950 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
| -rw-r--r-- | apps/onplay.c | 27 | ||||
| -rw-r--r-- | apps/onplay.h | 1 | ||||
| -rw-r--r-- | apps/settings_list.c | 6 |
3 files changed, 28 insertions, 6 deletions
diff --git a/apps/onplay.c b/apps/onplay.c index fc236fc..da94dbd 100644 --- a/apps/onplay.c +++ b/apps/onplay.c @@ -1195,6 +1195,19 @@ static bool open_with(void) return list_viewers(); } +static int playlist_insert_shuffled(void) +{ + if ((audio_status() & AUDIO_STATUS_PLAY) || + (selected_file_attr & ATTR_DIRECTORY) || + ((selected_file_attr & FILE_ATTR_MASK) == FILE_ATTR_M3U)) + { + playlist_insert_func((intptr_t*)PLAYLIST_INSERT_SHUFFLED); + return ONPLAY_START_PLAY; + } + + return ONPLAY_RELOAD_DIR; +} + struct hotkey_assignment { int action; /* hotkey_action */ int lang_id; /* Language ID */ @@ -1228,6 +1241,9 @@ static struct hotkey_assignment hotkey_items[] = { { HOTKEY_INSERT, LANG_INSERT, HOTKEY_FUNC(playlist_insert_func, (intptr_t*)PLAYLIST_INSERT), ONPLAY_START_PLAY }, + { HOTKEY_INSERT_SHUFFLED, LANG_INSERT_SHUFFLED, + HOTKEY_FUNC(playlist_insert_shuffled, NULL), + ONPLAY_OK }, }; static const int num_hotkey_items = sizeof(hotkey_items) / sizeof(hotkey_items[0]); @@ -1261,15 +1277,20 @@ static int execute_hotkey(bool is_wps) { /* run the associated function (with optional param), if any */ const struct menu_func func = this_item->func; + int func_return; if (func.function != NULL) { if (func.param != NULL) - (*func.function_w_param)(func.param); + func_return = (*func.function_w_param)(func.param); else - (*func.function)(); + func_return = (*func.function)(); } /* return with the associated code */ - return this_item->return_code; + const int return_code = this_item->return_code; + /* ONPLAY_OK here means to use the function return code */ + if (return_code == ONPLAY_OK) + return func_return; + return return_code; } } diff --git a/apps/onplay.h b/apps/onplay.h index a489b09..8462603 100644 --- a/apps/onplay.h +++ b/apps/onplay.h @@ -42,6 +42,7 @@ enum hotkey_action { HOTKEY_OPEN_WITH, HOTKEY_DELETE, HOTKEY_INSERT, + HOTKEY_INSERT_SHUFFLED, }; #endif diff --git a/apps/settings_list.c b/apps/settings_list.c index 5a16f09..61853f8 100644 --- a/apps/settings_list.c +++ b/apps/settings_list.c @@ -1688,9 +1688,9 @@ const struct settings_list settings[] = { HOTKEY_OPEN_WITH, HOTKEY_DELETE), TABLE_SETTING(F_ALLOW_ARBITRARY_VALS, hotkey_tree, LANG_HOTKEY_FILE_BROWSER, HOTKEY_OFF, "hotkey tree", - "off,open with,delete,insert", - UNIT_INT, hotkey_formatter, hotkey_getlang, NULL, 4, HOTKEY_OFF, - HOTKEY_OPEN_WITH, HOTKEY_DELETE, HOTKEY_INSERT), + "off,open with,delete,insert,insert shuffled", + UNIT_INT, hotkey_formatter, hotkey_getlang, NULL, 5, HOTKEY_OFF, + HOTKEY_OPEN_WITH, HOTKEY_DELETE, HOTKEY_INSERT, HOTKEY_INSERT_SHUFFLED), #endif #if CONFIG_CODEC == SWCODEC |