diff options
| author | Daniel Stenberg <daniel@haxx.se> | 2005-11-12 21:48:06 +0000 |
|---|---|---|
| committer | Daniel Stenberg <daniel@haxx.se> | 2005-11-12 21:48:06 +0000 |
| commit | 0b4576cd8b14d440670b589ac669364f22394f3d (patch) | |
| tree | 759425c5aab2b4b6e28fd545ed85cd00d4f3c5be | |
| parent | d22994c79b3bb18ee64f54300a51ae4197593c5d (diff) | |
| download | rockbox-0b4576cd8b14d440670b589ac669364f22394f3d.zip rockbox-0b4576cd8b14d440670b589ac669364f22394f3d.tar.gz rockbox-0b4576cd8b14d440670b589ac669364f22394f3d.tar.bz2 rockbox-0b4576cd8b14d440670b589ac669364f22394f3d.tar.xz | |
1 - assume and use WPS files in .rockbox/wps
2 - load all BMPs for WPS from a directory in the same dir the WPS is loaded
from, using the same name as the WPS file without extension
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7832 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | apps/settings.c | 4 | ||||
| -rw-r--r-- | apps/settings.h | 1 | ||||
| -rw-r--r-- | apps/settings_menu.c | 2 | ||||
| -rw-r--r-- | apps/wps-display.c | 20 |
4 files changed, 16 insertions, 11 deletions
diff --git a/apps/settings.c b/apps/settings.c index 16c5cef..742b112 100644 --- a/apps/settings.c +++ b/apps/settings.c @@ -876,7 +876,7 @@ void settings_apply(void) if ( global_settings.wps_file[0] && global_settings.wps_file[0] != 0xff ) { - snprintf(buf, sizeof buf, ROCKBOX_DIR "/%s.wps", + snprintf(buf, sizeof buf, WPS_DIR "/%s.wps", global_settings.wps_file); wps_load(buf, false); } @@ -1278,7 +1278,7 @@ bool settings_save_config(void) "#\r\n# wps / language / font \r\n#\r\n", appsversion); if (global_settings.wps_file[0] != 0) - fdprintf(fd, "wps: %s/%s.wps\r\n", ROCKBOX_DIR, + fdprintf(fd, "wps: %s/%s.wps\r\n", WPS_DIR, global_settings.wps_file); if (global_settings.lang_file[0] != 0) diff --git a/apps/settings.h b/apps/settings.h index b58878b..e605a8d 100644 --- a/apps/settings.h +++ b/apps/settings.h @@ -31,6 +31,7 @@ #define ROCKBOX_DIR_LEN 9 #define FONT_DIR "/fonts" #define LANG_DIR "/langs" +#define WPS_DIR ROCKBOX_DIR "/wps" #define PLUGIN_DIR ROCKBOX_DIR"/rocks" #define REC_BASE_DIR "/recordings" diff --git a/apps/settings_menu.c b/apps/settings_menu.c index 956d8f9..1024530 100644 --- a/apps/settings_menu.c +++ b/apps/settings_menu.c @@ -992,7 +992,7 @@ static bool browse_current(void) static bool custom_wps_browse(void) { - return rockbox_browse(ROCKBOX_DIR, SHOW_WPS); + return rockbox_browse(WPS_DIR, SHOW_WPS); } static bool custom_cfg_browse(void) diff --git a/apps/wps-display.c b/apps/wps-display.c index 47d5b57..6cd0a98 100644 --- a/apps/wps-display.c +++ b/apps/wps-display.c @@ -141,7 +141,7 @@ static void wps_display_images(void) { #endif /* Set format string to use for WPS, splitting it into lines */ -static void wps_format(const char* fmt) +static void wps_format(const char* fmt, char *bmpdir, size_t bmpdirlen) { char* buf = format_buffer; char* start_of_line = format_buffer; @@ -263,11 +263,11 @@ static void wps_format(const char* fmt) if ((pos - ptr) < (int)sizeof(imgname)-ROCKBOX_DIR_LEN-2) { - memcpy(imgname, ROCKBOX_DIR, ROCKBOX_DIR_LEN); - imgname[ROCKBOX_DIR_LEN] = '/'; - memcpy(&imgname[ROCKBOX_DIR_LEN+1], + memcpy(imgname, bmpdir, bmpdirlen); + imgname[bmpdirlen] = '/'; + memcpy(&imgname[bmpdirlen+1], ptr, pos - ptr); - imgname[ROCKBOX_DIR_LEN+1+pos-ptr] = 0; + imgname[bmpdirlen+1+pos-ptr] = 0; } else /* filename too long */ @@ -342,7 +342,11 @@ bool wps_load(const char* file, bool display) int i, s; char buffer[FORMAT_BUFFER_SIZE]; int fd; + size_t bmpdirlen; + char *bmpdir = strrchr(file, '.'); + bmpdirlen = bmpdir - file; + fd = open(file, O_RDONLY); if (fd >= 0) @@ -364,7 +368,7 @@ bool wps_load(const char* file, bool display) } #endif buffer[numread] = 0; - wps_format(buffer); + wps_format(buffer, (char *)file, bmpdirlen); } close(fd); @@ -1614,10 +1618,10 @@ bool wps_display(struct mp3entry* id3, "%al%pc/%pt%ar[%pp:%pe]\n" "%fbkBit %?fv<avg|> %?iv<(id3v%iv)|(no id3)>\n" "%pb\n" - "%pm\n"); + "%pm\n", NULL, 0); #else wps_format("%s%pp/%pe: %?it<%it|%fn> - %?ia<%ia|%d2> - %?id<%id|%d1>\n" - "%pc%?ps<*|/>%pt\n"); + "%pc%?ps<*|/>%pt\n", NULL, 0); #endif } } |