summaryrefslogtreecommitdiff
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
parentd22994c79b3bb18ee64f54300a51ae4197593c5d (diff)
downloadrockbox-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.c4
-rw-r--r--apps/settings.h1
-rw-r--r--apps/settings_menu.c2
-rw-r--r--apps/wps-display.c20
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
}
}