diff options
author | Peter D'Hoye <peter.dhoye@gmail.com> | 2006-05-21 11:00:02 +0000 |
---|---|---|
committer | Peter D'Hoye <peter.dhoye@gmail.com> | 2006-05-21 11:00:02 +0000 |
commit | 93b899d0fe3426ed50de06d20cdefb6d288e5ec2 (patch) | |
tree | 0dd0af26a5797a02f9a1f0139fde9fb60e1844bb /apps/recorder | |
parent | 6ddb5f24294d68749e53c10a99ca09aca9f9f7eb (diff) | |
download | rockbox-93b899d0fe3426ed50de06d20cdefb6d288e5ec2.tar.gz rockbox-93b899d0fe3426ed50de06d20cdefb6d288e5ec2.zip |
Reworked backdrop handling. Fixes a bug that wasn't in the tracker yet ;)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9970 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/recorder')
-rw-r--r-- | apps/recorder/backdrop.c | 63 | ||||
-rw-r--r-- | apps/recorder/backdrop.h | 16 |
2 files changed, 67 insertions, 12 deletions
diff --git a/apps/recorder/backdrop.c b/apps/recorder/backdrop.c index 6fc5e24118..d230a6ec5a 100644 --- a/apps/recorder/backdrop.c +++ b/apps/recorder/backdrop.c | |||
@@ -21,25 +21,74 @@ | |||
21 | #include "config.h" | 21 | #include "config.h" |
22 | #include "lcd.h" | 22 | #include "lcd.h" |
23 | #include "backdrop.h" | 23 | #include "backdrop.h" |
24 | #include "splash.h" /* debugging */ | ||
24 | 25 | ||
25 | fb_data main_backdrop[LCD_HEIGHT][LCD_WIDTH]; | 26 | fb_data main_backdrop[LCD_HEIGHT][LCD_WIDTH]; |
26 | fb_data wps_backdrop[LCD_HEIGHT][LCD_WIDTH]; | 27 | fb_data wps_backdrop[LCD_HEIGHT][LCD_WIDTH]; |
28 | bool main_backdrop_valid = false; | ||
29 | bool wps_backdrop_valid = false; | ||
27 | 30 | ||
28 | bool load_main_backdrop(char* filename) | 31 | /* load a backdrop into a buffer */ |
32 | bool load_backdrop(char* filename, fb_data* backdrop_buffer) | ||
29 | { | 33 | { |
30 | struct bitmap bm; | 34 | struct bitmap bm; |
31 | int ret; | 35 | int ret; |
32 | 36 | ||
33 | /* load the image */ | 37 | /* load the image */ |
34 | bm.data=(char*)&main_backdrop[0][0]; | 38 | bm.data=(char*)backdrop_buffer; |
35 | ret = read_bmp_file(filename, &bm, sizeof(main_backdrop), FORMAT_NATIVE); | 39 | ret = read_bmp_file(filename, &bm, sizeof(main_backdrop), FORMAT_NATIVE); |
36 | 40 | ||
37 | if ((ret > 0) && (bm.width == LCD_WIDTH) | 41 | if ((ret > 0) && (bm.width == LCD_WIDTH) && (bm.height == LCD_HEIGHT)) |
38 | && (bm.height == LCD_HEIGHT)) { | 42 | { |
39 | lcd_set_backdrop(&main_backdrop[0][0]); | ||
40 | return true; | 43 | return true; |
41 | } else { | 44 | } |
42 | lcd_set_backdrop(NULL); | 45 | else |
46 | { | ||
43 | return false; | 47 | return false; |
44 | } | 48 | } |
45 | } | 49 | } |
50 | |||
51 | bool load_main_backdrop(char* filename) | ||
52 | { | ||
53 | main_backdrop_valid = load_backdrop(filename, &main_backdrop[0][0]); | ||
54 | /* gui_syncsplash(100, true, "MAIN backdrop load: %s", main_backdrop_valid ? "OK" : "FAIL");*/ | ||
55 | return main_backdrop_valid; | ||
56 | } | ||
57 | |||
58 | bool load_wps_backdrop(char* filename) | ||
59 | { | ||
60 | wps_backdrop_valid = load_backdrop(filename, &wps_backdrop[0][0]); | ||
61 | /* gui_syncsplash(100, true, "WPS backdrop load: %s", main_backdrop_valid ? "OK" : "FAIL");*/ | ||
62 | return wps_backdrop_valid; | ||
63 | } | ||
64 | |||
65 | void unload_main_backdrop(void) | ||
66 | { | ||
67 | main_backdrop_valid = false; | ||
68 | /* gui_syncsplash(100, true, "MAIN backdrop unload");*/ | ||
69 | } | ||
70 | |||
71 | void unload_wps_backdrop(void) | ||
72 | { | ||
73 | wps_backdrop_valid = false; | ||
74 | /* gui_syncsplash(100, true, "WPS backdrop unload");*/ | ||
75 | } | ||
76 | |||
77 | void show_main_backdrop(void) | ||
78 | { | ||
79 | lcd_set_backdrop(main_backdrop_valid ? &main_backdrop[0][0] : NULL); | ||
80 | } | ||
81 | |||
82 | void show_wps_backdrop(void) | ||
83 | { | ||
84 | /* if no wps backdrop, fall back to main backdrop */ | ||
85 | if(wps_backdrop_valid) | ||
86 | { | ||
87 | lcd_set_backdrop(&wps_backdrop[0][0]); | ||
88 | } | ||
89 | else | ||
90 | { | ||
91 | /* gui_syncsplash(100, true, "WPS backdrop show: fallback to MAIN");*/ | ||
92 | show_main_backdrop(); | ||
93 | } | ||
94 | } | ||
diff --git a/apps/recorder/backdrop.h b/apps/recorder/backdrop.h index d77985cf28..da515af261 100644 --- a/apps/recorder/backdrop.h +++ b/apps/recorder/backdrop.h | |||
@@ -25,14 +25,20 @@ | |||
25 | #include "lcd.h" | 25 | #include "lcd.h" |
26 | #include "bmp.h" | 26 | #include "bmp.h" |
27 | #include "backdrop.h" | 27 | #include "backdrop.h" |
28 | 28 | /* | |
29 | #ifdef HAVE_LCD_COLOR | ||
30 | extern fb_data main_backdrop[LCD_HEIGHT][LCD_WIDTH]; | 29 | extern fb_data main_backdrop[LCD_HEIGHT][LCD_WIDTH]; |
31 | extern fb_data wps_backdrop[LCD_HEIGHT][LCD_WIDTH]; | 30 | extern fb_data wps_backdrop[LCD_HEIGHT][LCD_WIDTH]; |
32 | #endif | 31 | */ |
33 | 32 | ||
34 | bool load_main_backdrop(char* filename); | 33 | bool load_main_backdrop(char* filename); |
34 | bool load_wps_backdrop(char* filename); | ||
35 | |||
36 | void unload_main_backdrop(void); | ||
37 | void unload_wps_backdrop(void); | ||
38 | |||
39 | void show_main_backdrop(void); | ||
40 | void show_wps_backdrop(void); | ||
35 | 41 | ||
36 | #endif | 42 | #endif /* HAVE_LCD_COLOR */ |
37 | 43 | ||
38 | #endif | 44 | #endif /* _BACKDROP_H */ |