Committed the "[ 1247788 ] Adds wps tags for repeat modes" patch.

Please revert back should it cause problems.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7371 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Miika Pekkarinen 2005-08-21 19:17:50 +00:00
parent b2e94eff7f
commit d9874b266e
5 changed files with 88 additions and 0 deletions

View file

@ -82,6 +82,13 @@ void status_set_ffmode(enum playmode mode)
status_draw(false);
}
enum playmode status_get_ffmode(void)
{
/* only use this function for STATUS_FASTFORWARD or STATUS_FASTBACKWARD */
/* use audio_status() for other modes */
return ff_mode;
}
int current_playmode(void)
{
int audio_stat = audio_status();

View file

@ -32,6 +32,7 @@ enum playmode
void status_init(void);
void status_set_ffmode(enum playmode mode);
enum playmode status_get_ffmode(void);
#ifdef HAVE_LCD_BITMAP
bool statusbar(bool state);
#if CONFIG_KEYPAD == RECORDER_PAD

View file

@ -43,6 +43,7 @@
#include "powermgmt.h"
#include "sprintf.h"
#include "backlight.h"
#include "button.h"
#ifdef HAVE_LCD_BITMAP
#include "icons.h"
@ -579,6 +580,72 @@ static char* get_tag(struct mp3entry* cid3,
}
break;
case 'm': /* playback repeat mode */
switch (tag[1])
{
case 'f': /* off */
if (global_settings.repeat_mode == REPEAT_OFF)
return "f";
else
return NULL;
case 'a': /* all */
if (global_settings.repeat_mode == REPEAT_ALL)
return "a";
else
return NULL;
case 'o': /* one */
if (global_settings.repeat_mode == REPEAT_ONE)
return "o";
else
return NULL;
case 's': /* shuffle */
if (global_settings.repeat_mode == REPEAT_SHUFFLE)
return "s";
else
return NULL;
/* playback status */
case 'p': /* play */
*flags |= WPS_REFRESH_DYNAMIC;
int status = audio_status();
if (status == AUDIO_STATUS_PLAY && \
!(status & AUDIO_STATUS_PAUSE))
return "p";
else
return NULL;
case 'u': /* pause*/
*flags |= WPS_REFRESH_DYNAMIC;
if (audio_status() & AUDIO_STATUS_PAUSE && \
(! status_get_ffmode()))
return "u";
else
return NULL;
case 'w': /* fast forward */
*flags |= WPS_REFRESH_DYNAMIC;
if (status_get_ffmode() == STATUS_FASTFORWARD)
return "w";
else
return NULL;
case 'b': /* Fast backwards */
*flags |= WPS_REFRESH_DYNAMIC;
if (status_get_ffmode() == STATUS_FASTBACKWARD)
return "b";
else
return NULL;
case 'h': /* hold */
*flags |= WPS_REFRESH_DYNAMIC;
if (button_hold())
return "h";
else
return NULL;
case 'r': /* remote hold */
*flags |= WPS_REFRESH_DYNAMIC;
if (remote_button_hold())
return "r";
else
return NULL;
}
break;
case 'b': /* battery info */
*flags |= WPS_REFRESH_DYNAMIC;
switch (tag[1]) {

View file

@ -131,3 +131,4 @@ Frederic Devernay
José M. Fandiño
Gadi Cohen
Naftali Goldstein
David Dent

View file

@ -67,6 +67,18 @@ Playlist/Song Info Tags:
%pt : Total Track Time
%pv : Current volume
Repeat mode tags:
%mf : repeat off, returns f
%ma : repeat all, returns a
%mo : repeat one, returns o
%ms : repeat shuffle, returns s
Playback mode tags:
%mp : play, returns p
%mu : pause, returns u
%mw : fastforward, returns w
%mb : fastbackward, returns b
Conditional Tags (If/Else block):
%?xx<|> : Conditional: if the tag specified by "xx" has a value, the
text between the "<" and the "|" is displayed, else the text