diff options
author | Christi Scarborough <christi@coraline.org> | 2005-11-16 01:24:52 +0000 |
---|---|---|
committer | Christi Scarborough <christi@coraline.org> | 2005-11-16 01:24:52 +0000 |
commit | a7db52ca894f9d80845267f743ae56663b37f605 (patch) | |
tree | 0db798177b03ef55317467f85ea75312a76a6944 /apps | |
parent | 3be6cf15742083b9786fba52d40f61e5803db840 (diff) | |
download | rockbox-a7db52ca894f9d80845267f743ae56663b37f605.tar.gz rockbox-a7db52ca894f9d80845267f743ae56663b37f605.zip |
Adds support for reverting to the Rockbox default WPS. Note that the rockbox_default.wps is a placeholder file and is never actually loaded - selecting it just causes Rockbox to clear its memory of any installed custom WPS. This means that it works cross platform. Also, small fix to boxes.wps (curse vi) and wpsbuild.pl - support for pure text WPS files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7899 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r-- | apps/wps-display.c | 48 |
1 files changed, 34 insertions, 14 deletions
diff --git a/apps/wps-display.c b/apps/wps-display.c index eba36b1a8f..4647ce9b60 100644 --- a/apps/wps-display.c +++ b/apps/wps-display.c | |||
@@ -78,7 +78,7 @@ struct { | |||
78 | 78 | ||
79 | #endif | 79 | #endif |
80 | 80 | ||
81 | #define WPS_CONFIG ROCKBOX_DIR "/default.wps" | 81 | #define WPS_DEFAULTCFG WPS_DIR "/rockbox_default.wps" |
82 | 82 | ||
83 | #ifdef HAVE_LCD_BITMAP | 83 | #ifdef HAVE_LCD_BITMAP |
84 | #define MAX_LINES (LCD_HEIGHT/5+1) | 84 | #define MAX_LINES (LCD_HEIGHT/5+1) |
@@ -336,15 +336,36 @@ static void wps_format(const char* fmt, char *bmpdir, size_t bmpdirlen) | |||
336 | } | 336 | } |
337 | } | 337 | } |
338 | 338 | ||
339 | /* Clear the WPS image cache */ | ||
340 | static void wps_clear(void) | ||
341 | { | ||
342 | #ifdef HAVE_LCD_BITMAP | ||
343 | int i; | ||
344 | |||
345 | /* reset image buffer */ | ||
346 | img_buf_ptr = img_buf; | ||
347 | img_buf_free = IMG_BUFSIZE; | ||
348 | |||
349 | /* set images to unloaded and not displayed */ | ||
350 | for (i = 0; i < MAX_IMAGES; i++) { | ||
351 | img[i].loaded = false; | ||
352 | img[i].display = false; | ||
353 | img[i].always_display = false; | ||
354 | } | ||
355 | #endif | ||
356 | |||
357 | } | ||
358 | |||
339 | void wps_reset(void) | 359 | void wps_reset(void) |
340 | { | 360 | { |
341 | wps_loaded = false; | 361 | wps_loaded = false; |
342 | memset(&format_buffer, 0, sizeof format_buffer); | 362 | memset(&format_buffer, 0, sizeof format_buffer); |
363 | wps_clear(); | ||
343 | } | 364 | } |
344 | 365 | ||
345 | bool wps_load(const char* file, bool display) | 366 | bool wps_load(const char* file, bool display) |
346 | { | 367 | { |
347 | int i, s; | 368 | int i,s; |
348 | char buffer[FORMAT_BUFFER_SIZE]; | 369 | char buffer[FORMAT_BUFFER_SIZE]; |
349 | int fd; | 370 | int fd; |
350 | size_t bmpdirlen; | 371 | size_t bmpdirlen; |
@@ -352,6 +373,16 @@ bool wps_load(const char* file, bool display) | |||
352 | char *bmpdir = strrchr(file, '.'); | 373 | char *bmpdir = strrchr(file, '.'); |
353 | bmpdirlen = bmpdir - file; | 374 | bmpdirlen = bmpdir - file; |
354 | 375 | ||
376 | /* | ||
377 | * Hardcode loading WPS_DEFAULTCFG to cause a reset ideally this | ||
378 | * wants to be a virtual file. Feel free to modify dirbrowse() | ||
379 | * if you're feeling brave. | ||
380 | */ | ||
381 | if (! strcmp(file, WPS_DEFAULTCFG) ) { | ||
382 | wps_reset(); | ||
383 | return(false); | ||
384 | } | ||
385 | |||
355 | fd = open(file, O_RDONLY); | 386 | fd = open(file, O_RDONLY); |
356 | 387 | ||
357 | if (fd >= 0) | 388 | if (fd >= 0) |
@@ -360,18 +391,7 @@ bool wps_load(const char* file, bool display) | |||
360 | 391 | ||
361 | if (numread > 0) | 392 | if (numread > 0) |
362 | { | 393 | { |
363 | #ifdef HAVE_LCD_BITMAP | 394 | wps_clear(); |
364 | /* reset image buffer */ | ||
365 | img_buf_ptr = img_buf; | ||
366 | img_buf_free = IMG_BUFSIZE; | ||
367 | |||
368 | /* set images to unloaded and not displayed */ | ||
369 | for (i = 0; i < MAX_IMAGES; i++) { | ||
370 | img[i].loaded = false; | ||
371 | img[i].display = false; | ||
372 | img[i].always_display = false; | ||
373 | } | ||
374 | #endif | ||
375 | buffer[numread] = 0; | 395 | buffer[numread] = 0; |
376 | wps_format(buffer, (char *)file, bmpdirlen); | 396 | wps_format(buffer, (char *)file, bmpdirlen); |
377 | } | 397 | } |