mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-10-13 18:17:39 -04:00
Update to CUSTOM_WPS. Now has an If/Else ability. Also updated the docs
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1990 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
0dbcb43620
commit
a7a46c70dd
2 changed files with 124 additions and 40 deletions
65
apps/wps.c
65
apps/wps.c
|
@ -73,7 +73,6 @@ static char custom_wps[64];
|
|||
|
||||
static void draw_screen(struct mp3entry* id3)
|
||||
{
|
||||
|
||||
int font_height;
|
||||
#ifdef LOADABLE_FONTS
|
||||
unsigned char *font = lcd_getcurrentldfont();
|
||||
|
@ -96,12 +95,15 @@ static void draw_screen(struct mp3entry* id3)
|
|||
else
|
||||
{
|
||||
#ifdef CUSTOM_WPS
|
||||
#ifdef HAVE_LCD_CHARCELLS
|
||||
static int last_wps = -1;
|
||||
if ( last_wps != global_settings.wps_display &&
|
||||
global_settings.wps_display == PLAY_DISPLAY_CUSTOM_WPS ) {
|
||||
if ((last_wps != global_settings.wps_display
|
||||
&& global_settings.wps_display == PLAY_DISPLAY_CUSTOM_WPS))
|
||||
{
|
||||
load_custom_wps();
|
||||
last_wps = global_settings.wps_display;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
switch ( global_settings.wps_display ) {
|
||||
case PLAY_DISPLAY_TRACK_TITLE:
|
||||
|
@ -266,6 +268,11 @@ bool display_custom_wps(int x_val, int y_val, bool do_scroll, char *wps_string)
|
|||
{
|
||||
char buffer[128];
|
||||
char tmpbuf[64];
|
||||
int con_flag = 0; /* (0)Not inside of if/else
|
||||
(1)Inside of If
|
||||
(2)Inside of Else */
|
||||
char con_if[64];
|
||||
char con_else[64];
|
||||
char cchr1;
|
||||
char cchr2;
|
||||
char cchr3;
|
||||
|
@ -384,11 +391,53 @@ bool display_custom_wps(int x_val, int y_val, bool do_scroll, char *wps_string)
|
|||
case '%': /* Displays % */
|
||||
snprintf(tmpbuf, sizeof(tmpbuf), "%%");
|
||||
break;
|
||||
case '?': /* Conditional Display of ID3/File */
|
||||
switch(con_flag)
|
||||
{
|
||||
case 0:
|
||||
con_if[0] = 0;
|
||||
con_else[0] = 0;
|
||||
con_flag = 1;
|
||||
break;
|
||||
default:
|
||||
if(id3->artist && id3->title)
|
||||
snprintf(tmpbuf, sizeof(tmpbuf), "%s", con_if);
|
||||
else
|
||||
snprintf(tmpbuf, sizeof(tmpbuf), "%s", con_else);
|
||||
con_flag = 0;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case ':': /* Seperator for Conditional ID3/File Display */
|
||||
con_flag = 2;
|
||||
break;
|
||||
}
|
||||
switch(con_flag)
|
||||
{
|
||||
case 0:
|
||||
snprintf(buffer, sizeof(buffer), "%s%s", buffer, tmpbuf);
|
||||
break;
|
||||
case 1:
|
||||
snprintf(con_if, sizeof(con_if), "%s%s", con_if, tmpbuf);
|
||||
break;
|
||||
case 2:
|
||||
snprintf(con_else, sizeof(con_else), "%s%s", con_else, tmpbuf);
|
||||
break;
|
||||
}
|
||||
snprintf(buffer, sizeof(buffer), "%s%s", buffer, tmpbuf);
|
||||
break;
|
||||
default:
|
||||
snprintf(buffer, sizeof(buffer), "%s%c", buffer, cchr1);
|
||||
switch(con_flag)
|
||||
{
|
||||
case 0:
|
||||
snprintf(buffer, sizeof(buffer), "%s%c", buffer, cchr1);
|
||||
break;
|
||||
case 1:
|
||||
snprintf(con_if, sizeof(con_if), "%s%c", con_if, cchr1);
|
||||
break;
|
||||
case 2:
|
||||
snprintf(con_else, sizeof(con_else), "%s%c", con_else, cchr1);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if(seek >= strlen(wps_string))
|
||||
|
@ -474,17 +523,17 @@ int player_id3_show(void)
|
|||
case 0:
|
||||
lcd_puts(0, 0, "Title");
|
||||
snprintf(scroll_text,sizeof(scroll_text), "%s",
|
||||
id3->title);
|
||||
id3->title?id3->title:"<no title>");
|
||||
break;
|
||||
case 1:
|
||||
lcd_puts(0, 0, "Artist");
|
||||
snprintf(scroll_text,sizeof(scroll_text), "%s",
|
||||
id3->artist);
|
||||
id3->artist?id3->artist:"<no artist>");
|
||||
break;
|
||||
case 2:
|
||||
lcd_puts(0, 0, "Album");
|
||||
snprintf(scroll_text,sizeof(scroll_text), "%s",
|
||||
id3->album);
|
||||
id3->album?id3->album:"<no album>");
|
||||
break;
|
||||
case 3:
|
||||
lcd_puts(0, 0, "Length");
|
||||
|
|
|
@ -1,46 +1,78 @@
|
|||
Custom WPS Display
|
||||
wps.config File Format Specifications
|
||||
|
||||
Description
|
||||
-----------
|
||||
The Custom WPS Display is used on the Rockbox Player ONLY as a means
|
||||
to customize the WPS to the user's likings.
|
||||
The first line of the 2 line display is the customized line (scrolling).
|
||||
The second line is always the time display. (Elapsed & Total Time).
|
||||
The second line is not able to be customized.
|
||||
All characters not preceded by % are displayed as typed.
|
||||
|
||||
Description / General Info
|
||||
--------------------------
|
||||
* The Custom WPS Display is used on the Rockbox Player ONLY, as a means
|
||||
to customize the WPS to the user's likings.
|
||||
* Plans to implement this feature into the recorder are in progress.
|
||||
* The first line of the 2 line display is the customized line (scrolling).
|
||||
* The second line is always the time display. (Elapsed & Total Time).
|
||||
* The second line is not able to be customized.
|
||||
* Any CR's, LF's, or CR/LF's (Commonly known as Newline/Return/Enter) in
|
||||
the wps.config file will be treated as spaces. IE: Don't use them.
|
||||
* After editing the wps.config file, you may need to reboot your Rockbox.
|
||||
* All tags except for %%, %?, and %: contain 3 characters (%xx). Remember
|
||||
to type the tags correctly, or you will get unexpected output, or even
|
||||
possibly no output at all.
|
||||
* All characters not preceded by % are displayed as typed.
|
||||
|
||||
|
||||
File Location
|
||||
-------------
|
||||
The configuration file must be located in the root folder of the
|
||||
device and must be named wps.config (lowercase)
|
||||
|
||||
|
||||
Tags
|
||||
----
|
||||
%t : ID3 Title
|
||||
%a : ID3 Artist
|
||||
%n : ID3 Track Number
|
||||
%u : ID3 Album
|
||||
%c : Conditional Title/Filename
|
||||
Displays "Artist - Title" *or*
|
||||
Displays Filename if no ID3 Artist/Title
|
||||
%h : Conditional Title/Filename
|
||||
Displays "Title - Artist" *or*
|
||||
Displays Filename if no ID3 Artist/Title
|
||||
%b : File Bitrate
|
||||
%f : File Frequency
|
||||
%p : File Path
|
||||
%m : File Name
|
||||
%s : File Size (In Kilobytes)
|
||||
%i : Playlist Position
|
||||
%l : Playlist Total Entries
|
||||
%e : Elapsed Track Time
|
||||
%o : Total Track Time
|
||||
%% : Displays a %
|
||||
ID3 Info Tags:
|
||||
%it : ID3 Title
|
||||
%ia : ID3 Artist
|
||||
%in : ID3 Track Number
|
||||
%id : ID3 Album
|
||||
File Info Tags:
|
||||
%fc : Conditional Title/Filename
|
||||
Displays "Artist - Title" *or*
|
||||
Displays Filename if no ID3 Artist/Title
|
||||
%fd : Conditional Title/Filename
|
||||
Displays "Title - Artist" *or*
|
||||
Displays Filename if no ID3 Artist/Title
|
||||
%fb : File Bitrate
|
||||
%ff : File Frequency
|
||||
%fp : File Path
|
||||
%fn : File Name
|
||||
%fs : File Size (In Kilobytes)
|
||||
Playlist/Song Info Tags:
|
||||
%pp : Playlist Position
|
||||
%pe : Playlist Total Entries
|
||||
%pc : Current Time In Song
|
||||
%pt : Total Track Time
|
||||
Other Tags:
|
||||
%% : Displays a %
|
||||
Conditional ID3/File Tags (If/Else block):
|
||||
The following two tags are completely optional, and meant only for those
|
||||
that wish to go crazy with customization. It lets you specify what to
|
||||
do when it finds an ID3 tag, and also when it doesn't find one. It can
|
||||
be placed anywhere within the wps.config file.
|
||||
The first condition of the If/Else block is what to do when it DOES find
|
||||
valid ID3 tags. The second condition is what to do when there are no
|
||||
valid ID3 tags available.
|
||||
%? : Start/End an If/Else block
|
||||
%: : Seperator between If and Else
|
||||
Example:
|
||||
To display "Title - Artist" if there is ID3 available, or "Filename"
|
||||
if there is no ID3, the following string would be used:
|
||||
%?%it - %ia%:%fn%?
|
||||
Yes, you are not going crazy (although I may be)... This *IS* more
|
||||
confusing then Perl :-)
|
||||
|
||||
Example wps.config File
|
||||
|
||||
Example wps.config File (Without If/Else)
|
||||
-----------------------
|
||||
%i/%l: %c * %sKB
|
||||
%pp/%pe: %fc * %fsKB
|
||||
|
||||
|
||||
Example Output
|
||||
--------------
|
||||
|
@ -53,5 +85,8 @@ File Size: 3500
|
|||
Elapsed Track Time: 2:23
|
||||
Total Track Time: 3:01
|
||||
The output of this on the player would be:
|
||||
5/10: My Song.mp3 * 3500KB
|
||||
2:23/3:01
|
||||
---------------------------
|
||||
| 5/10: My Song.mp3 * 3500KB|
|
||||
| 2:23/3:01 |
|
||||
---------------------------
|
||||
Of course, the whole first line wouldn't fit, so it scrolls it.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue