summaryrefslogtreecommitdiff
path: root/apps/recorder
diff options
context:
space:
mode:
Diffstat (limited to 'apps/recorder')
-rw-r--r--apps/recorder/backdrop.c60
-rw-r--r--apps/recorder/backdrop.h7
2 files changed, 67 insertions, 0 deletions
diff --git a/apps/recorder/backdrop.c b/apps/recorder/backdrop.c
index e31543549d..0d023602be 100644
--- a/apps/recorder/backdrop.c
+++ b/apps/recorder/backdrop.c
@@ -20,6 +20,9 @@
20#include <stdio.h> 20#include <stdio.h>
21#include "config.h" 21#include "config.h"
22#include "lcd.h" 22#include "lcd.h"
23#ifdef HAVE_REMOTE_LCD
24#include "lcd-remote.h"
25#endif
23#include "backdrop.h" 26#include "backdrop.h"
24 27
25#if LCD_DEPTH >= 8 28#if LCD_DEPTH >= 8
@@ -30,6 +33,11 @@ static fb_data main_backdrop[LCD_FBHEIGHT][LCD_FBWIDTH];
30static fb_data wps_backdrop[LCD_FBHEIGHT][LCD_FBWIDTH]; 33static fb_data wps_backdrop[LCD_FBHEIGHT][LCD_FBWIDTH];
31#endif 34#endif
32 35
36#if defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1
37static fb_remote_data remote_wps_backdrop[LCD_REMOTE_FBHEIGHT][LCD_REMOTE_FBWIDTH];
38static bool remote_wps_backdrop_valid = false;
39#endif
40
33static bool main_backdrop_valid = false; 41static bool main_backdrop_valid = false;
34static bool wps_backdrop_valid = false; 42static bool wps_backdrop_valid = false;
35 43
@@ -93,3 +101,55 @@ void show_wps_backdrop(void)
93 show_main_backdrop(); 101 show_main_backdrop();
94 } 102 }
95} 103}
104
105#if defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1
106
107static bool load_remote_backdrop(char* filename, fb_remote_data* backdrop_buffer)
108{
109 struct bitmap bm;
110 int ret;
111
112 /* load the image */
113 bm.data=(char*)backdrop_buffer;
114 ret = read_bmp_file(filename, &bm, sizeof(main_backdrop),
115 FORMAT_NATIVE | FORMAT_DITHER | FORMAT_REMOTE);
116
117 if ((ret > 0) && (bm.width == LCD_REMOTE_WIDTH) && (bm.height == LCD_REMOTE_HEIGHT))
118 {
119 return true;
120 }
121 else
122 {
123 return false;
124 }
125}
126
127bool load_remote_wps_backdrop(char* filename)
128{
129 remote_wps_backdrop_valid = load_remote_backdrop(filename, &remote_wps_backdrop[0][0]);
130 return remote_wps_backdrop_valid;
131}
132
133void unload_remote_wps_backdrop(void)
134{
135 remote_wps_backdrop_valid = false;
136}
137
138void show_remote_wps_backdrop(void)
139{
140 /* if no wps backdrop, fall back to main backdrop */
141 if(remote_wps_backdrop_valid)
142 {
143 lcd_remote_set_backdrop(&remote_wps_backdrop[0][0]);
144 }
145 else
146 {
147 show_remote_main_backdrop();
148 }
149}
150
151void show_remote_main_backdrop(void)
152{
153 lcd_remote_set_backdrop(NULL);
154}
155#endif
diff --git a/apps/recorder/backdrop.h b/apps/recorder/backdrop.h
index 93373f1321..c930a87433 100644
--- a/apps/recorder/backdrop.h
+++ b/apps/recorder/backdrop.h
@@ -36,4 +36,11 @@ void show_wps_backdrop(void);
36 36
37#endif /* LCD_DEPTH > 1 */ 37#endif /* LCD_DEPTH > 1 */
38 38
39#if defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1
40bool load_remote_wps_backdrop(char* filename);
41void unload_remote_wps_backdrop(void);
42void show_remote_wps_backdrop(void);
43void show_remote_main_backdrop(void); /* only clears the wps backdrop */
44#endif
45
39#endif /* _BACKDROP_H */ 46#endif /* _BACKDROP_H */