summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/gui/backdrop.c13
-rw-r--r--apps/gui/backdrop.h4
-rw-r--r--apps/gui/viewport.c6
-rw-r--r--apps/gui/wps.c3
-rw-r--r--apps/menu.c14
-rw-r--r--apps/menu.h2
-rw-r--r--apps/plugin.h2
-rw-r--r--apps/plugins/pictureflow/pictureflow.c15
-rw-r--r--apps/screen_access.c2
-rw-r--r--apps/screen_access.h1
10 files changed, 45 insertions, 17 deletions
diff --git a/apps/gui/backdrop.c b/apps/gui/backdrop.c
index c220d06493..7e56dcb7db 100644
--- a/apps/gui/backdrop.c
+++ b/apps/gui/backdrop.c
@@ -124,6 +124,12 @@ void backdrop_show(enum backdrop_type bdrop)
124 show_skin_backdrop(); 124 show_skin_backdrop();
125} 125}
126 126
127void backdrop_hide(void)
128{
129 lcd_set_backdrop(NULL);
130}
131
132
127 133
128#if defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1 134#if defined(HAVE_REMOTE_LCD) && LCD_REMOTE_DEPTH > 1
129 135
@@ -201,4 +207,11 @@ void remote_backdrop_unload(enum backdrop_type bdrop)
201} 207}
202 208
203 209
210void remote_backdrop_hide(void)
211{
212 lcd_remote_set_backdrop(NULL);
213}
214
204#endif 215#endif
216
217
diff --git a/apps/gui/backdrop.h b/apps/gui/backdrop.h
index b37071b5d4..4083464cee 100644
--- a/apps/gui/backdrop.h
+++ b/apps/gui/backdrop.h
@@ -35,6 +35,7 @@ enum backdrop_type {
35bool backdrop_load(enum backdrop_type bdrop, const char*); 35bool backdrop_load(enum backdrop_type bdrop, const char*);
36void backdrop_unload(enum backdrop_type bdrop); 36void backdrop_unload(enum backdrop_type bdrop);
37void backdrop_show(enum backdrop_type bdrop); 37void backdrop_show(enum backdrop_type bdrop);
38void backdrop_hide(void);
38 39
39#else /* LCD_DEPTH <= 1 || __PCTOOL__ */ 40#else /* LCD_DEPTH <= 1 || __PCTOOL__ */
40 41
@@ -52,6 +53,7 @@ static inline void backdrop_show(enum backdrop_type bdrop)
52 (void)bdrop; 53 (void)bdrop;
53} 54}
54 55
56static inline void backdrop_hide(void) {}
55#endif 57#endif
56 58
57#if defined(HAVE_REMOTE_LCD) 59#if defined(HAVE_REMOTE_LCD)
@@ -60,6 +62,7 @@ static inline void backdrop_show(enum backdrop_type bdrop)
60bool remote_backdrop_load(enum backdrop_type bdrop,const char* filename); 62bool remote_backdrop_load(enum backdrop_type bdrop,const char* filename);
61void remote_backdrop_unload(enum backdrop_type bdrop); 63void remote_backdrop_unload(enum backdrop_type bdrop);
62void remote_backdrop_show(enum backdrop_type bdrop); 64void remote_backdrop_show(enum backdrop_type bdrop);
65void remote_backdrop_hide(void);
63#else 66#else
64static inline 67static inline
65bool remote_backdrop_load(enum backdrop_type bdrop,const char* filename) 68bool remote_backdrop_load(enum backdrop_type bdrop,const char* filename)
@@ -76,6 +79,7 @@ static inline void remote_backdrop_show(enum backdrop_type bdrop)
76{ 79{
77 (void)bdrop; 80 (void)bdrop;
78} 81}
82static inline void remote_backdrop_hide(void) {}
79#endif 83#endif
80#endif 84#endif
81 85
diff --git a/apps/gui/viewport.c b/apps/gui/viewport.c
index 22eccc161f..3c5249cff9 100644
--- a/apps/gui/viewport.c
+++ b/apps/gui/viewport.c
@@ -89,6 +89,8 @@ static void toggle_theme(enum screen_type screen, bool force)
89 add_event(PLAYBACK_EVENT_NEXTTRACKID3_AVAILABLE, false, 89 add_event(PLAYBACK_EVENT_NEXTTRACKID3_AVAILABLE, false,
90 do_sbs_update_callback); 90 do_sbs_update_callback);
91 91
92 screens[screen].backdrop_show(BACKDROP_MAIN);
93
92 /* remove the left overs from the previous screen. 94 /* remove the left overs from the previous screen.
93 * could cause a tiny flicker. Redo your screen code if that happens */ 95 * could cause a tiny flicker. Redo your screen code if that happens */
94 if (!was_enabled[screen] || force) 96 if (!was_enabled[screen] || force)
@@ -142,7 +144,11 @@ static void toggle_theme(enum screen_type screen, bool force)
142 else 144 else
143 { 145 {
144 FOR_NB_SCREENS(i) 146 FOR_NB_SCREENS(i)
147 {
148 screens[i].backdrop_hide();
145 screens[i].stop_scroll(); 149 screens[i].stop_scroll();
150 }
151
146#if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP) 152#if defined(HAVE_LCD_ENABLE) || defined(HAVE_LCD_SLEEP)
147 remove_event(LCD_EVENT_ACTIVATION, do_sbs_update_callback); 153 remove_event(LCD_EVENT_ACTIVATION, do_sbs_update_callback);
148#endif 154#endif
diff --git a/apps/gui/wps.c b/apps/gui/wps.c
index 14fb848ebe..a5394981ae 100644
--- a/apps/gui/wps.c
+++ b/apps/gui/wps.c
@@ -611,6 +611,7 @@ static void gwps_enter_wps(void)
611 vp->bg_pattern = display->get_background(); 611 vp->bg_pattern = display->get_background();
612 } 612 }
613#endif 613#endif
614 display->backdrop_show(BACKDROP_SKIN_WPS);
614 skin_update(gwps, WPS_REFRESH_ALL); 615 skin_update(gwps, WPS_REFRESH_ALL);
615 } 616 }
616} 617}
@@ -1180,8 +1181,6 @@ long gui_wps_show(void)
1180 /* we remove the update delay since it's not very usable in the wps, 1181 /* we remove the update delay since it's not very usable in the wps,
1181 * e.g. during volume changing or ffwd/rewind */ 1182 * e.g. during volume changing or ffwd/rewind */
1182 sb_skin_set_update_delay(0); 1183 sb_skin_set_update_delay(0);
1183 FOR_NB_SCREENS(i)
1184 gui_wps[i].display->backdrop_show(BACKDROP_SKIN_WPS);
1185 wps_sync_data.do_full_update = update = false; 1184 wps_sync_data.do_full_update = update = false;
1186 gwps_enter_wps(); 1185 gwps_enter_wps();
1187 } 1186 }
diff --git a/apps/menu.c b/apps/menu.c
index 88f0f3c529..eb29b43f3b 100644
--- a/apps/menu.c
+++ b/apps/menu.c
@@ -335,7 +335,7 @@ void do_setting_from_menu(const struct menu_item_ex *temp,
335 335
336/* display a menu */ 336/* display a menu */
337int do_menu(const struct menu_item_ex *start_menu, int *start_selected, 337int do_menu(const struct menu_item_ex *start_menu, int *start_selected,
338 struct viewport parent[NB_SCREENS], bool hide_bars) 338 struct viewport parent[NB_SCREENS], bool hide_theme)
339{ 339{
340 int selected = start_selected? *start_selected : 0; 340 int selected = start_selected? *start_selected : 0;
341 int action; 341 int action;
@@ -344,7 +344,7 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected,
344 int ret = 0, i; 344 int ret = 0, i;
345 bool redraw_lists; 345 bool redraw_lists;
346 FOR_NB_SCREENS(i) 346 FOR_NB_SCREENS(i)
347 viewportmanager_theme_enable(i, !hide_bars, NULL); 347 viewportmanager_theme_enable(i, !hide_theme, NULL);
348 348
349 const struct menu_item_ex *menu_stack[MAX_MENUS]; 349 const struct menu_item_ex *menu_stack[MAX_MENUS];
350 int menu_stack_selected_item[MAX_MENUS]; 350 int menu_stack_selected_item[MAX_MENUS];
@@ -363,7 +363,7 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected,
363 menu = &main_menu_; 363 menu = &main_menu_;
364 else menu = start_menu; 364 else menu = start_menu;
365 365
366 /* if hide_bars is true, assume parent has been fixed before passed into 366 /* if hide_theme is true, assume parent has been fixed before passed into
367 * this function, e.g. with viewport_set_defaults(parent, screen) */ 367 * this function, e.g. with viewport_set_defaults(parent, screen) */
368 init_menu_lists(menu, &lists, selected, true, parent); 368 init_menu_lists(menu, &lists, selected, true, parent);
369 vps = *(lists.parent); 369 vps = *(lists.parent);
@@ -373,7 +373,7 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected,
373 373
374 374
375#ifdef HAVE_BUTTONBAR 375#ifdef HAVE_BUTTONBAR
376 if (!hide_bars) 376 if (!hide_theme)
377 { 377 {
378 gui_buttonbar_set(&buttonbar, "<<<", "", ""); 378 gui_buttonbar_set(&buttonbar, "<<<", "", "");
379 gui_buttonbar_draw(&buttonbar); 379 gui_buttonbar_draw(&buttonbar);
@@ -382,7 +382,7 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected,
382 while (!done) 382 while (!done)
383 { 383 {
384 redraw_lists = false; 384 redraw_lists = false;
385 if (!hide_bars) 385 if (!hide_theme)
386 { 386 {
387#ifdef HAVE_BUTTONBAR 387#ifdef HAVE_BUTTONBAR
388 gui_buttonbar_draw(&buttonbar); 388 gui_buttonbar_draw(&buttonbar);
@@ -551,7 +551,7 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected,
551 screens[i].scroll_stop(&vps[i]); 551 screens[i].scroll_stop(&vps[i]);
552 } 552 }
553#ifdef HAVE_BUTTONBAR 553#ifdef HAVE_BUTTONBAR
554 if (!hide_bars) 554 if (!hide_theme)
555 { 555 {
556 gui_buttonbar_unset(&buttonbar); 556 gui_buttonbar_unset(&buttonbar);
557 gui_buttonbar_draw(&buttonbar); 557 gui_buttonbar_draw(&buttonbar);
@@ -653,7 +653,7 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected,
653 break; 653 break;
654 } 654 }
655#ifdef HAVE_BUTTONBAR 655#ifdef HAVE_BUTTONBAR
656 if (!hide_bars) 656 if (!hide_theme)
657 { 657 {
658 gui_buttonbar_set(&buttonbar, "<<<", "", ""); 658 gui_buttonbar_set(&buttonbar, "<<<", "", "");
659 gui_buttonbar_draw(&buttonbar); 659 gui_buttonbar_draw(&buttonbar);
diff --git a/apps/menu.h b/apps/menu.h
index b386b7ce4b..b5bab90981 100644
--- a/apps/menu.h
+++ b/apps/menu.h
@@ -121,7 +121,7 @@ void do_setting_from_menu(const struct menu_item_ex *temp,
121 If NULL it is ignored and the firs item starts selected 121 If NULL it is ignored and the firs item starts selected
122*/ 122*/
123int do_menu(const struct menu_item_ex *menu, int *start_selected, 123int do_menu(const struct menu_item_ex *menu, int *start_selected,
124 struct viewport parent[NB_SCREENS], bool hide_bars); 124 struct viewport parent[NB_SCREENS], bool hide_theme);
125 125
126/* In all the following macros the argument names are as follows: 126/* In all the following macros the argument names are as follows:
127 - name: The name for the variable (so it can be used in a MAKE_MENU() 127 - name: The name for the variable (so it can be used in a MAKE_MENU()
diff --git a/apps/plugin.h b/apps/plugin.h
index cf16eef94f..a7a6203e53 100644
--- a/apps/plugin.h
+++ b/apps/plugin.h
@@ -659,7 +659,7 @@ struct plugin_api {
659 659
660 /* menu */ 660 /* menu */
661 int (*do_menu)(const struct menu_item_ex *menu, int *start_selected, 661 int (*do_menu)(const struct menu_item_ex *menu, int *start_selected,
662 struct viewport parent[NB_SCREENS], bool hide_bars); 662 struct viewport parent[NB_SCREENS], bool hide_theme);
663 663
664 /* scroll bar */ 664 /* scroll bar */
665 struct gui_syncstatusbar *statusbars; 665 struct gui_syncstatusbar *statusbars;
diff --git a/apps/plugins/pictureflow/pictureflow.c b/apps/plugins/pictureflow/pictureflow.c
index eab1d0a00a..b3f81444bb 100644
--- a/apps/plugins/pictureflow/pictureflow.c
+++ b/apps/plugins/pictureflow/pictureflow.c
@@ -2019,6 +2019,7 @@ void update_scroll_animation(void)
2019void cleanup(void *parameter) 2019void cleanup(void *parameter)
2020{ 2020{
2021 (void) parameter; 2021 (void) parameter;
2022 int i;
2022#ifdef HAVE_ADJUSTABLE_CPU_FREQ 2023#ifdef HAVE_ADJUSTABLE_CPU_FREQ
2023 rb->cpu_boost(false); 2024 rb->cpu_boost(false);
2024#endif 2025#endif
@@ -2029,6 +2030,8 @@ void cleanup(void *parameter)
2029#ifdef USEGSLIB 2030#ifdef USEGSLIB
2030 grey_release(); 2031 grey_release();
2031#endif 2032#endif
2033 FOR_NB_SCREENS(i)
2034 rb->viewportmanager_theme_undo(i, false);
2032} 2035}
2033 2036
2034/** 2037/**
@@ -2076,7 +2079,7 @@ int settings_menu(void)
2076 }; 2079 };
2077 2080
2078 do { 2081 do {
2079 selection=rb->do_menu(&settings_menu,&selection, NULL, false); 2082 selection=rb->do_menu(&settings_menu,&selection, NULL, true);
2080 switch(selection) { 2083 switch(selection) {
2081 case 0: 2084 case 0:
2082 rb->set_bool("Show FPS", &show_fps); 2085 rb->set_bool("Show FPS", &show_fps);
@@ -2168,7 +2171,7 @@ int main_menu(void)
2168#endif 2171#endif
2169 "Settings", "Return", "Quit"); 2172 "Settings", "Return", "Quit");
2170 while (1) { 2173 while (1) {
2171 switch (rb->do_menu(&main_menu,&selection, NULL, false)) { 2174 switch (rb->do_menu(&main_menu,&selection, NULL, true)) {
2172 case PF_GOTO_WPS: /* WPS */ 2175 case PF_GOTO_WPS: /* WPS */
2173 return -2; 2176 return -2;
2174#if PF_PLAYBACK_CAPABLE 2177#if PF_PLAYBACK_CAPABLE
@@ -2732,11 +2735,11 @@ int main(void)
2732 2735
2733enum plugin_status plugin_start(const void *parameter) 2736enum plugin_status plugin_start(const void *parameter)
2734{ 2737{
2735 int ret; 2738 int ret, i;
2736 (void) parameter; 2739 (void) parameter;
2737#if LCD_DEPTH > 1 2740
2738 rb->lcd_set_backdrop(NULL); 2741 FOR_NB_SCREENS(i)
2739#endif 2742 rb->viewportmanager_theme_enable(i, false, NULL);
2740 /* Turn off backlight timeout */ 2743 /* Turn off backlight timeout */
2741 backlight_force_on(); /* backlight control in lib/helper.c */ 2744 backlight_force_on(); /* backlight control in lib/helper.c */
2742#ifdef HAVE_ADJUSTABLE_CPU_FREQ 2745#ifdef HAVE_ADJUSTABLE_CPU_FREQ
diff --git a/apps/screen_access.c b/apps/screen_access.c
index 19ab77654e..8267ce3ecd 100644
--- a/apps/screen_access.c
+++ b/apps/screen_access.c
@@ -202,6 +202,7 @@ struct screen screens[NB_SCREENS] =
202 .backdrop_load=&backdrop_load, 202 .backdrop_load=&backdrop_load,
203 .backdrop_unload=&backdrop_unload, 203 .backdrop_unload=&backdrop_unload,
204 .backdrop_show=&backdrop_show, 204 .backdrop_show=&backdrop_show,
205 .backdrop_hide=&backdrop_hide,
205#ifdef HAVE_BUTTONBAR 206#ifdef HAVE_BUTTONBAR
206 .has_buttonbar=false, 207 .has_buttonbar=false,
207#endif 208#endif
@@ -288,6 +289,7 @@ struct screen screens[NB_SCREENS] =
288 .backdrop_load=&remote_backdrop_load, 289 .backdrop_load=&remote_backdrop_load,
289 .backdrop_unload=&remote_backdrop_unload, 290 .backdrop_unload=&remote_backdrop_unload,
290 .backdrop_show=&remote_backdrop_show, 291 .backdrop_show=&remote_backdrop_show,
292 .backdrop_hide=&remote_backdrop_hide,
291#ifdef HAVE_BUTTONBAR 293#ifdef HAVE_BUTTONBAR
292 .has_buttonbar=false, 294 .has_buttonbar=false,
293#endif 295#endif
diff --git a/apps/screen_access.h b/apps/screen_access.h
index be6247886e..396a0d0e88 100644
--- a/apps/screen_access.h
+++ b/apps/screen_access.h
@@ -150,6 +150,7 @@ struct screen
150 bool (*backdrop_load)(enum backdrop_type bdrop, const char* filename); 150 bool (*backdrop_load)(enum backdrop_type bdrop, const char* filename);
151 void (*backdrop_unload)(enum backdrop_type bdrop); 151 void (*backdrop_unload)(enum backdrop_type bdrop);
152 void (*backdrop_show)(enum backdrop_type bdrop); 152 void (*backdrop_show)(enum backdrop_type bdrop);
153 void (*backdrop_hide)(void);
153}; 154};
154 155
155#if defined(HAVE_LCD_BITMAP) || defined(HAVE_REMOTE_LCD) 156#if defined(HAVE_LCD_BITMAP) || defined(HAVE_REMOTE_LCD)