summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/action.c8
-rw-r--r--apps/appevents.h2
-rw-r--r--apps/debug_menu.c19
-rw-r--r--apps/gui/gwps.c2
-rw-r--r--apps/gui/list.c3
-rw-r--r--apps/gui/viewport.c4
-rw-r--r--apps/gui/yesno.c3
-rw-r--r--apps/main.c11
-rw-r--r--apps/menus/eq_menu.c10
-rw-r--r--apps/misc.c3
10 files changed, 28 insertions, 37 deletions
diff --git a/apps/action.c b/apps/action.c
index c2a6e47ebe..d98bf13cf3 100644
--- a/apps/action.c
+++ b/apps/action.c
@@ -25,6 +25,7 @@
25#include "config.h" 25#include "config.h"
26#include "lang.h" 26#include "lang.h"
27 27
28#include "appevents.h"
28#include "button.h" 29#include "button.h"
29#include "action.h" 30#include "action.h"
30#include "kernel.h" 31#include "kernel.h"
@@ -104,10 +105,6 @@ static inline int get_next_context(const struct button_mapping *items, int i)
104 Timeout can be TIMEOUT_NOBLOCK to return immediatly 105 Timeout can be TIMEOUT_NOBLOCK to return immediatly
105 TIMEOUT_BLOCK to wait for a button press 106 TIMEOUT_BLOCK to wait for a button press
106 Any number >0 to wait that many ticks for a press 107 Any number >0 to wait that many ticks for a press
107
108 This function will likely return SYS_FOURHERTZ which should be passed to the
109 default_event_handler(). If this doesnt happen parts of the GUI may not be
110 redrawn correctly
111 */ 108 */
112static int get_action_worker(int context, int timeout, 109static int get_action_worker(int context, int timeout,
113 const struct button_mapping* (*get_context_map)(int) ) 110 const struct button_mapping* (*get_context_map)(int) )
@@ -117,6 +114,9 @@ static int get_action_worker(int context, int timeout,
117 int i=0; 114 int i=0;
118 int ret = ACTION_UNKNOWN; 115 int ret = ACTION_UNKNOWN;
119 static int last_context = CONTEXT_STD; 116 static int last_context = CONTEXT_STD;
117
118
119 send_event(GUI_EVENT_ACTIONUPDATE, NULL);
120 120
121 if (timeout == TIMEOUT_NOBLOCK) 121 if (timeout == TIMEOUT_NOBLOCK)
122 button = button_get(false); 122 button = button_get(false);
diff --git a/apps/appevents.h b/apps/appevents.h
index 48d578de25..8cbc301ed7 100644
--- a/apps/appevents.h
+++ b/apps/appevents.h
@@ -49,7 +49,7 @@ enum {
49enum { 49enum {
50 GUI_EVENT_THEME_CHANGED = (EVENT_CLASS_GUI|1), 50 GUI_EVENT_THEME_CHANGED = (EVENT_CLASS_GUI|1),
51 GUI_EVENT_STATUSBAR_TOGGLE, 51 GUI_EVENT_STATUSBAR_TOGGLE,
52 GUI_EVENT_FOURHERTZ, 52 GUI_EVENT_ACTIONUPDATE,
53}; 53};
54 54
55#endif 55#endif
diff --git a/apps/debug_menu.c b/apps/debug_menu.c
index 92eb245249..6f7887abc3 100644
--- a/apps/debug_menu.c
+++ b/apps/debug_menu.c
@@ -272,6 +272,7 @@ static bool dbg_audio_thread(void)
272 lcd_update(); 272 lcd_update();
273 } 273 }
274 viewportmanager_set_statusbar(true); 274 viewportmanager_set_statusbar(true);
275 lcd_setfont(FONT_UI);
275 return false; 276 return false;
276} 277}
277#endif /* !SIMULATOR */ 278#endif /* !SIMULATOR */
@@ -399,6 +400,7 @@ static bool dbg_buffering_thread(void)
399 400
400 tick_remove_task(dbg_audio_task); 401 tick_remove_task(dbg_audio_task);
401 viewportmanager_set_statusbar(true); 402 viewportmanager_set_statusbar(true);
403 lcd_setfont(FONT_UI);
402 404
403 return false; 405 return false;
404} 406}
@@ -693,6 +695,7 @@ static bool dbg_hw_info(void)
693 return __dbg_hw_info(); 695 return __dbg_hw_info();
694#endif /* CONFIG_CPU */ 696#endif /* CONFIG_CPU */
695 viewportmanager_set_statusbar(true); 697 viewportmanager_set_statusbar(true);
698 lcd_setfont(FONT_UI);
696 return false; 699 return false;
697} 700}
698#else /* !HAVE_LCD_BITMAP */ 701#else /* !HAVE_LCD_BITMAP */
@@ -988,6 +991,7 @@ static bool dbg_spdif(void)
988#endif 991#endif
989 992
990 viewportmanager_set_statusbar(true); 993 viewportmanager_set_statusbar(true);
994 lcd_setfont(FONT_UI);
991 return false; 995 return false;
992} 996}
993#endif /* CPU_COLDFIRE */ 997#endif /* CPU_COLDFIRE */
@@ -1072,6 +1076,7 @@ bool dbg_ports(void)
1072 if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL)) 1076 if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL))
1073 { 1077 {
1074 viewportmanager_set_statusbar(true); 1078 viewportmanager_set_statusbar(true);
1079 lcd_setfont(FONT_UI);
1075 return false; 1080 return false;
1076 } 1081 }
1077 } 1082 }
@@ -1159,6 +1164,7 @@ bool dbg_ports(void)
1159 if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL)) 1164 if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL))
1160 { 1165 {
1161 viewportmanager_set_statusbar(true); 1166 viewportmanager_set_statusbar(true);
1167 lcd_setfont(FONT_UI);
1162 return false; 1168 return false;
1163 } 1169 }
1164 } 1170 }
@@ -1270,6 +1276,7 @@ extern unsigned char serbuf[];
1270 if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL)) 1276 if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL))
1271 { 1277 {
1272 viewportmanager_set_statusbar(true); 1278 viewportmanager_set_statusbar(true);
1279 lcd_setfont(FONT_UI);
1273 return false; 1280 return false;
1274 } 1281 }
1275 } 1282 }
@@ -1313,10 +1320,12 @@ extern unsigned char serbuf[];
1313 if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL)) 1320 if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL))
1314 { 1321 {
1315 viewportmanager_set_statusbar(true); 1322 viewportmanager_set_statusbar(true);
1323 lcd_setfont(FONT_UI);
1316 return false; 1324 return false;
1317 } 1325 }
1318 } 1326 }
1319 viewportmanager_set_statusbar(true); 1327 viewportmanager_set_statusbar(true);
1328 lcd_setfont(FONT_UI);
1320#else 1329#else
1321 return __dbg_ports(); 1330 return __dbg_ports();
1322#endif /* CPU */ 1331#endif /* CPU */
@@ -1397,6 +1406,7 @@ bool dbg_ports(void)
1397 } 1406 }
1398 } 1407 }
1399 viewportmanager_set_statusbar(true); 1408 viewportmanager_set_statusbar(true);
1409 lcd_setfont(FONT_UI);
1400 return false; 1410 return false;
1401} 1411}
1402#endif /* !HAVE_LCD_BITMAP */ 1412#endif /* !HAVE_LCD_BITMAP */
@@ -1449,11 +1459,13 @@ static bool dbg_pcf(void)
1449 if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL)) 1459 if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL))
1450 { 1460 {
1451 viewportmanager_set_statusbar(true); 1461 viewportmanager_set_statusbar(true);
1462 lcd_setfont(FONT_UI);
1452 return false; 1463 return false;
1453 } 1464 }
1454 } 1465 }
1455 1466
1456 viewportmanager_set_statusbar(true); 1467 viewportmanager_set_statusbar(true);
1468 lcd_setfont(FONT_UI);
1457 return false; 1469 return false;
1458} 1470}
1459#endif 1471#endif
@@ -1502,10 +1514,12 @@ static bool dbg_cpufreq(void)
1502 1514
1503 case ACTION_STD_CANCEL: 1515 case ACTION_STD_CANCEL:
1504 viewportmanager_set_statusbar(true); 1516 viewportmanager_set_statusbar(true);
1517 lcd_setfont(FONT_UI);
1505 return false; 1518 return false;
1506 } 1519 }
1507 } 1520 }
1508 viewportmanager_set_statusbar(true); 1521 viewportmanager_set_statusbar(true);
1522 lcd_setfont(FONT_UI);
1509 return false; 1523 return false;
1510} 1524}
1511#endif /* HAVE_ADJUSTABLE_CPU_FREQ */ 1525#endif /* HAVE_ADJUSTABLE_CPU_FREQ */
@@ -1840,10 +1854,12 @@ static bool view_battery(void)
1840 1854
1841 case ACTION_STD_CANCEL: 1855 case ACTION_STD_CANCEL:
1842 viewportmanager_set_statusbar(true); 1856 viewportmanager_set_statusbar(true);
1857 lcd_setfont(FONT_UI);
1843 return false; 1858 return false;
1844 } 1859 }
1845 } 1860 }
1846 viewportmanager_set_statusbar(true); 1861 viewportmanager_set_statusbar(true);
1862 lcd_setfont(FONT_UI);
1847 return false; 1863 return false;
1848} 1864}
1849 1865
@@ -2505,8 +2521,8 @@ static bool cpu_boost_log(void)
2505 } 2521 }
2506 } 2522 }
2507 get_action(CONTEXT_STD,TIMEOUT_BLOCK); 2523 get_action(CONTEXT_STD,TIMEOUT_BLOCK);
2508 lcd_setfont(FONT_UI);
2509 viewportmanager_set_statusbar(true); 2524 viewportmanager_set_statusbar(true);
2525 lcd_setfont(FONT_UI);
2510 return false; 2526 return false;
2511} 2527}
2512#endif 2528#endif
@@ -2556,6 +2572,7 @@ static bool dbg_scrollwheel(void)
2556 lcd_update(); 2572 lcd_update();
2557 } 2573 }
2558 viewportmanager_set_statusbar(true); 2574 viewportmanager_set_statusbar(true);
2575 lcd_setfont(FONT_UI);
2559 return false; 2576 return false;
2560} 2577}
2561#endif 2578#endif
diff --git a/apps/gui/gwps.c b/apps/gui/gwps.c
index 1f90077baa..c1e7606634 100644
--- a/apps/gui/gwps.c
+++ b/apps/gui/gwps.c
@@ -211,8 +211,6 @@ long gui_wps_show(void)
211 if (button != ACTION_NONE) { 211 if (button != ACTION_NONE) {
212 break; 212 break;
213 } 213 }
214 else if (button == SYS_FOURHERTZ)
215 default_event_handler(button);
216 peak_meter_peek(); 214 peak_meter_peek();
217 sleep(0); /* Sleep until end of current tick. */ 215 sleep(0); /* Sleep until end of current tick. */
218 216
diff --git a/apps/gui/list.c b/apps/gui/list.c
index 662496d40d..04bd7e4c3f 100644
--- a/apps/gui/list.c
+++ b/apps/gui/list.c
@@ -643,9 +643,6 @@ bool gui_synclist_do_button(struct gui_synclist * lists,
643 643
644 switch (action) 644 switch (action)
645 { 645 {
646 case SYS_FOURHERTZ:
647 default_event_handler(action);
648 return true;
649 case ACTION_REDRAW: 646 case ACTION_REDRAW:
650 gui_synclist_draw(lists); 647 gui_synclist_draw(lists);
651 return true; 648 return true;
diff --git a/apps/gui/viewport.c b/apps/gui/viewport.c
index 9a0657d510..76fb36b940 100644
--- a/apps/gui/viewport.c
+++ b/apps/gui/viewport.c
@@ -92,12 +92,12 @@ bool viewportmanager_set_statusbar(bool enabled)
92 bool old = statusbar_enabled; 92 bool old = statusbar_enabled;
93 if (enabled && global_settings.statusbar) 93 if (enabled && global_settings.statusbar)
94 { 94 {
95 add_event(GUI_EVENT_FOURHERTZ, false, viewportmanager_draw_statusbars); 95 add_event(GUI_EVENT_ACTIONUPDATE, false, viewportmanager_draw_statusbars);
96 gui_syncstatusbar_draw(&statusbars, true); 96 gui_syncstatusbar_draw(&statusbars, true);
97 } 97 }
98 else 98 else
99 { 99 {
100 remove_event(GUI_EVENT_FOURHERTZ, viewportmanager_draw_statusbars); 100 remove_event(GUI_EVENT_ACTIONUPDATE, viewportmanager_draw_statusbars);
101 } 101 }
102 statusbar_enabled = enabled; 102 statusbar_enabled = enabled;
103 return old; 103 return old;
diff --git a/apps/gui/yesno.c b/apps/gui/yesno.c
index 1e597f2fcb..756d267c63 100644
--- a/apps/gui/yesno.c
+++ b/apps/gui/yesno.c
@@ -167,9 +167,6 @@ enum yesno_res gui_syncyesno_run(const struct text_message * main_message,
167 case SYS_CHARGER_DISCONNECTED: 167 case SYS_CHARGER_DISCONNECTED:
168 /* ignore some SYS events that can happen */ 168 /* ignore some SYS events that can happen */
169 continue; 169 continue;
170 case SYS_FOURHERTZ: /* make sure this one works as expected */
171 default_event_handler(button);
172 break;
173 default: 170 default:
174 if(default_event_handler(button) == SYS_USB_CONNECTED) 171 if(default_event_handler(button) == SYS_USB_CONNECTED)
175 return(YESNO_USB); 172 return(YESNO_USB);
diff --git a/apps/main.c b/apps/main.c
index d473e66731..4e66a851f1 100644
--- a/apps/main.c
+++ b/apps/main.c
@@ -120,16 +120,6 @@
120const char appsversion[]=APPSVERSION; 120const char appsversion[]=APPSVERSION;
121 121
122static void init(void); 122static void init(void);
123
124static void fourhertz_tick_task(void)
125{
126 static long last_fire = 0;
127 if (TIME_AFTER(current_tick, last_fire+HZ/4))
128 {
129 queue_post(&button_queue, SYS_FOURHERTZ, 0);
130 last_fire = current_tick;
131 }
132}
133 123
134#ifdef SIMULATOR 124#ifdef SIMULATOR
135void app_main(void) 125void app_main(void)
@@ -148,7 +138,6 @@ static void app_main(void)
148#ifdef HAVE_TOUCHSCREEN 138#ifdef HAVE_TOUCHSCREEN
149 touchscreen_set_mode(TOUCHSCREEN_BUTTON); 139 touchscreen_set_mode(TOUCHSCREEN_BUTTON);
150#endif 140#endif
151 tick_add_task(fourhertz_tick_task);
152 viewportmanager_set_statusbar(true); 141 viewportmanager_set_statusbar(true);
153 add_event(GUI_EVENT_STATUSBAR_TOGGLE, false, 142 add_event(GUI_EVENT_STATUSBAR_TOGGLE, false,
154 viewportmanager_statusbar_changed); 143 viewportmanager_statusbar_changed);
diff --git a/apps/menus/eq_menu.c b/apps/menus/eq_menu.c
index 77b6e6f07a..28df0836fc 100644
--- a/apps/menus/eq_menu.c
+++ b/apps/menus/eq_menu.c
@@ -49,6 +49,7 @@
49#include "gui/scrollbar.h" 49#include "gui/scrollbar.h"
50#include "eq_menu.h" 50#include "eq_menu.h"
51#include "menu_common.h" 51#include "menu_common.h"
52#include "viewport.h"
52 53
53/* 54/*
54 * Utility functions 55 * Utility functions
@@ -391,6 +392,7 @@ bool eq_menu_graphical(void)
391 enum eq_type current_type; 392 enum eq_type current_type;
392 char buf[24]; 393 char buf[24];
393 int i, w, h, height, start_item, nb_eq_sliders[NB_SCREENS]; 394 int i, w, h, height, start_item, nb_eq_sliders[NB_SCREENS];
395 bool barsenabled = viewportmanager_set_statusbar(false);
394 396
395 397
396 FOR_NB_SCREENS(i) { 398 FOR_NB_SCREENS(i) {
@@ -553,12 +555,6 @@ bool eq_menu_graphical(void)
553 exit_request = true; 555 exit_request = true;
554 result = false; 556 result = false;
555 break; 557 break;
556 case SYS_FOURHERTZ:
557 /* eat this for the time being. this whole screen needs to be converted
558 * to viewports, so when that happens this message can be handled
559 * properly.
560 */
561 break;
562 default: 558 default:
563 if(default_event_handler(button) == SYS_USB_CONNECTED) { 559 if(default_event_handler(button) == SYS_USB_CONNECTED) {
564 exit_request = true; 560 exit_request = true;
@@ -580,7 +576,7 @@ bool eq_menu_graphical(void)
580 screens[i].clear_display(); 576 screens[i].clear_display();
581 screens[i].set_viewport(NULL); 577 screens[i].set_viewport(NULL);
582 } 578 }
583 579 viewportmanager_set_statusbar(barsenabled);
584 return result; 580 return result;
585} 581}
586 582
diff --git a/apps/misc.c b/apps/misc.c
index 894b0c2cc4..1410d47244 100644
--- a/apps/misc.c
+++ b/apps/misc.c
@@ -906,9 +906,6 @@ long default_event_handler_ex(long event, void (*callback)(void *), void *parame
906{ 906{
907 switch(event) 907 switch(event)
908 { 908 {
909 case SYS_FOURHERTZ:
910 send_event(GUI_EVENT_FOURHERTZ, NULL);
911 break;
912 case SYS_BATTERY_UPDATE: 909 case SYS_BATTERY_UPDATE:
913 if(global_settings.talk_battery_level) 910 if(global_settings.talk_battery_level)
914 { 911 {