summaryrefslogtreecommitdiffstats
path: root/apps/wps-display.c
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2005-11-12 21:48:06 +0000
committerDaniel Stenberg <daniel@haxx.se>2005-11-12 21:48:06 +0000
commit0b4576cd8b14d440670b589ac669364f22394f3d (patch)
tree759425c5aab2b4b6e28fd545ed85cd00d4f3c5be /apps/wps-display.c
parentd22994c79b3bb18ee64f54300a51ae4197593c5d (diff)
downloadrockbox-0b4576cd8b14d440670b589ac669364f22394f3d.tar.gz
rockbox-0b4576cd8b14d440670b589ac669364f22394f3d.zip
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
Diffstat (limited to 'apps/wps-display.c')
-rw-r--r--apps/wps-display.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/apps/wps-display.c b/apps/wps-display.c
index 47d5b57377..6cd0a9832c 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
}
}