Index: apps/action.h =================================================================== --- apps/action.h (revision 23303) +++ apps/action.h (working copy) @@ -143,7 +143,16 @@ ACTION_LIST_VOLUP, ACTION_LIST_VOLDOWN, #endif - +#ifdef HAVE_MUSIC_CONTROL_IN_LIST + ACTION_LIST_PLAY, + ACTION_LIST_SKIPPREV, + ACTION_LIST_SKIPNEXT, + ACTION_LIST_NEXTDIR, + ACTION_LIST_SEEKBACK, + ACTION_LIST_SEEKFWD, + ACTION_LIST_STOPSEEK, +#endif + /* tree */ ACTION_TREE_ROOT_INIT, ACTION_TREE_PGLEFT,/* optional */ Index: apps/gui/list.c =================================================================== --- apps/gui/list.c (revision 23303) +++ apps/gui/list.c (working copy) @@ -651,6 +651,40 @@ setvol(); return true; #endif +#ifdef HAVE_MUSIC_CONTROL_IN_LIST + case ACTION_LIST_PLAY: + if (audio_status() & AUDIO_STATUS_PAUSE) { + audio_resume(); + } else { + audio_pause(); + } + return true; + + case ACTION_LIST_SKIPPREV: + audio_prev(); + return true; + + case ACTION_LIST_SKIPNEXT: + audio_next(); + return true; + + case ACTION_LIST_NEXTDIR: + audio_next_dir(); + return true; + + case ACTION_LIST_SEEKFWD: + ffwd_rew(ACTION_WPS_SEEKFWD); + return true; + + case ACTION_LIST_SEEKBACK: + ffwd_rew(ACTION_WPS_SEEKBACK); + return true; + + case ACTION_LIST_STOPSEEK: + ffwd_rew(ACTION_WPS_STOPSEEK); + return true; +#endif + case ACTION_STD_PREV: case ACTION_STD_PREVREPEAT: gui_list_select_at_offset(lists, -next_item_modifier);