diff options
author | Justin Heiner <jheiner@rockbox.org> | 2002-08-27 01:05:19 +0000 |
---|---|---|
committer | Justin Heiner <jheiner@rockbox.org> | 2002-08-27 01:05:19 +0000 |
commit | a7a46c70ddec4930945b7ebb484b379952962a0b (patch) | |
tree | e2b8074e75f7dd99f45c376e4d386a0f129816d5 /apps | |
parent | 0dbcb43620ca106b2d6ec44c798208653acf38dc (diff) | |
download | rockbox-a7a46c70ddec4930945b7ebb484b379952962a0b.tar.gz rockbox-a7a46c70ddec4930945b7ebb484b379952962a0b.zip |
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
Diffstat (limited to 'apps')
-rw-r--r-- | apps/wps.c | 65 |
1 files changed, 57 insertions, 8 deletions
diff --git a/apps/wps.c b/apps/wps.c index 571b35675d..55aa531ea7 100644 --- a/apps/wps.c +++ b/apps/wps.c | |||
@@ -73,7 +73,6 @@ static char custom_wps[64]; | |||
73 | 73 | ||
74 | static void draw_screen(struct mp3entry* id3) | 74 | static void draw_screen(struct mp3entry* id3) |
75 | { | 75 | { |
76 | |||
77 | int font_height; | 76 | int font_height; |
78 | #ifdef LOADABLE_FONTS | 77 | #ifdef LOADABLE_FONTS |
79 | unsigned char *font = lcd_getcurrentldfont(); | 78 | unsigned char *font = lcd_getcurrentldfont(); |
@@ -96,13 +95,16 @@ static void draw_screen(struct mp3entry* id3) | |||
96 | else | 95 | else |
97 | { | 96 | { |
98 | #ifdef CUSTOM_WPS | 97 | #ifdef CUSTOM_WPS |
98 | #ifdef HAVE_LCD_CHARCELLS | ||
99 | static int last_wps = -1; | 99 | static int last_wps = -1; |
100 | if ( last_wps != global_settings.wps_display && | 100 | if ((last_wps != global_settings.wps_display |
101 | global_settings.wps_display == PLAY_DISPLAY_CUSTOM_WPS ) { | 101 | && global_settings.wps_display == PLAY_DISPLAY_CUSTOM_WPS)) |
102 | { | ||
102 | load_custom_wps(); | 103 | load_custom_wps(); |
103 | last_wps = global_settings.wps_display; | 104 | last_wps = global_settings.wps_display; |
104 | } | 105 | } |
105 | #endif | 106 | #endif |
107 | #endif | ||
106 | switch ( global_settings.wps_display ) { | 108 | switch ( global_settings.wps_display ) { |
107 | case PLAY_DISPLAY_TRACK_TITLE: | 109 | case PLAY_DISPLAY_TRACK_TITLE: |
108 | { | 110 | { |
@@ -266,6 +268,11 @@ bool display_custom_wps(int x_val, int y_val, bool do_scroll, char *wps_string) | |||
266 | { | 268 | { |
267 | char buffer[128]; | 269 | char buffer[128]; |
268 | char tmpbuf[64]; | 270 | char tmpbuf[64]; |
271 | int con_flag = 0; /* (0)Not inside of if/else | ||
272 | (1)Inside of If | ||
273 | (2)Inside of Else */ | ||
274 | char con_if[64]; | ||
275 | char con_else[64]; | ||
269 | char cchr1; | 276 | char cchr1; |
270 | char cchr2; | 277 | char cchr2; |
271 | char cchr3; | 278 | char cchr3; |
@@ -384,11 +391,53 @@ bool display_custom_wps(int x_val, int y_val, bool do_scroll, char *wps_string) | |||
384 | case '%': /* Displays % */ | 391 | case '%': /* Displays % */ |
385 | snprintf(tmpbuf, sizeof(tmpbuf), "%%"); | 392 | snprintf(tmpbuf, sizeof(tmpbuf), "%%"); |
386 | break; | 393 | break; |
394 | case '?': /* Conditional Display of ID3/File */ | ||
395 | switch(con_flag) | ||
396 | { | ||
397 | case 0: | ||
398 | con_if[0] = 0; | ||
399 | con_else[0] = 0; | ||
400 | con_flag = 1; | ||
401 | break; | ||
402 | default: | ||
403 | if(id3->artist && id3->title) | ||
404 | snprintf(tmpbuf, sizeof(tmpbuf), "%s", con_if); | ||
405 | else | ||
406 | snprintf(tmpbuf, sizeof(tmpbuf), "%s", con_else); | ||
407 | con_flag = 0; | ||
408 | break; | ||
409 | } | ||
410 | break; | ||
411 | case ':': /* Seperator for Conditional ID3/File Display */ | ||
412 | con_flag = 2; | ||
413 | break; | ||
414 | } | ||
415 | switch(con_flag) | ||
416 | { | ||
417 | case 0: | ||
418 | snprintf(buffer, sizeof(buffer), "%s%s", buffer, tmpbuf); | ||
419 | break; | ||
420 | case 1: | ||
421 | snprintf(con_if, sizeof(con_if), "%s%s", con_if, tmpbuf); | ||
422 | break; | ||
423 | case 2: | ||
424 | snprintf(con_else, sizeof(con_else), "%s%s", con_else, tmpbuf); | ||
425 | break; | ||
387 | } | 426 | } |
388 | snprintf(buffer, sizeof(buffer), "%s%s", buffer, tmpbuf); | ||
389 | break; | 427 | break; |
390 | default: | 428 | default: |
391 | snprintf(buffer, sizeof(buffer), "%s%c", buffer, cchr1); | 429 | switch(con_flag) |
430 | { | ||
431 | case 0: | ||
432 | snprintf(buffer, sizeof(buffer), "%s%c", buffer, cchr1); | ||
433 | break; | ||
434 | case 1: | ||
435 | snprintf(con_if, sizeof(con_if), "%s%c", con_if, cchr1); | ||
436 | break; | ||
437 | case 2: | ||
438 | snprintf(con_else, sizeof(con_else), "%s%c", con_else, cchr1); | ||
439 | break; | ||
440 | } | ||
392 | break; | 441 | break; |
393 | } | 442 | } |
394 | if(seek >= strlen(wps_string)) | 443 | if(seek >= strlen(wps_string)) |
@@ -474,17 +523,17 @@ int player_id3_show(void) | |||
474 | case 0: | 523 | case 0: |
475 | lcd_puts(0, 0, "Title"); | 524 | lcd_puts(0, 0, "Title"); |
476 | snprintf(scroll_text,sizeof(scroll_text), "%s", | 525 | snprintf(scroll_text,sizeof(scroll_text), "%s", |
477 | id3->title); | 526 | id3->title?id3->title:"<no title>"); |
478 | break; | 527 | break; |
479 | case 1: | 528 | case 1: |
480 | lcd_puts(0, 0, "Artist"); | 529 | lcd_puts(0, 0, "Artist"); |
481 | snprintf(scroll_text,sizeof(scroll_text), "%s", | 530 | snprintf(scroll_text,sizeof(scroll_text), "%s", |
482 | id3->artist); | 531 | id3->artist?id3->artist:"<no artist>"); |
483 | break; | 532 | break; |
484 | case 2: | 533 | case 2: |
485 | lcd_puts(0, 0, "Album"); | 534 | lcd_puts(0, 0, "Album"); |
486 | snprintf(scroll_text,sizeof(scroll_text), "%s", | 535 | snprintf(scroll_text,sizeof(scroll_text), "%s", |
487 | id3->album); | 536 | id3->album?id3->album:"<no album>"); |
488 | break; | 537 | break; |
489 | case 3: | 538 | case 3: |
490 | lcd_puts(0, 0, "Length"); | 539 | lcd_puts(0, 0, "Length"); |