@@ -32,13 +32,18 @@ static void desktop_loader_callback(const void* message, void* context) {
32
32
view_dispatcher_send_custom_event (desktop -> view_dispatcher , DesktopGlobalAfterAppFinished );
33
33
}
34
34
}
35
-
36
- static void desktop_lock_icon_callback (Canvas * canvas , void * context ) {
35
+ static void desktop_lock_icon_draw_callback (Canvas * canvas , void * context ) {
37
36
UNUSED (context );
38
37
furi_assert (canvas );
39
38
canvas_draw_icon (canvas , 0 , 0 , & I_Lock_8x8 );
40
39
}
41
40
41
+ static void desktop_dummy_mode_icon_draw_callback (Canvas * canvas , void * context ) {
42
+ UNUSED (context );
43
+ furi_assert (canvas );
44
+ canvas_draw_icon (canvas , 0 , 0 , & I_GameMode_11x8 );
45
+ }
46
+
42
47
static bool desktop_custom_event_callback (void * context , uint32_t event ) {
43
48
furi_assert (context );
44
49
Desktop * desktop = (Desktop * )context ;
@@ -52,7 +57,7 @@ static bool desktop_custom_event_callback(void* context, uint32_t event) {
52
57
animation_manager_load_and_continue_animation (desktop -> animation_manager );
53
58
// TODO: Implement a message mechanism for loading settings and (optionally)
54
59
// locking and unlocking
55
- LOAD_DESKTOP_SETTINGS (& desktop -> settings );
60
+ DESKTOP_SETTINGS_LOAD (& desktop -> settings );
56
61
desktop_auto_lock_arm (desktop );
57
62
return true;
58
63
case DesktopGlobalAutoLock :
@@ -127,7 +132,7 @@ void desktop_lock(Desktop* desktop) {
127
132
}
128
133
129
134
void desktop_unlock (Desktop * desktop ) {
130
- view_port_enabled_set (desktop -> lock_viewport , false);
135
+ view_port_enabled_set (desktop -> lock_icon_viewport , false);
131
136
Gui * gui = furi_record_open (RECORD_GUI );
132
137
gui_set_lockdown (gui , false);
133
138
furi_record_close (RECORD_GUI );
@@ -136,6 +141,13 @@ void desktop_unlock(Desktop* desktop) {
136
141
desktop_auto_lock_arm (desktop );
137
142
}
138
143
144
+ void desktop_set_dummy_mode_state (Desktop * desktop , bool enabled ) {
145
+ view_port_enabled_set (desktop -> dummy_mode_icon_viewport , enabled );
146
+ desktop_main_set_dummy_mode_state (desktop -> main_view , enabled );
147
+ desktop -> settings .dummy_mode = enabled ;
148
+ DESKTOP_SETTINGS_SAVE (& desktop -> settings );
149
+ }
150
+
139
151
Desktop * desktop_alloc () {
140
152
Desktop * desktop = malloc (sizeof (Desktop ));
141
153
@@ -212,11 +224,20 @@ Desktop* desktop_alloc() {
212
224
desktop_view_slideshow_get_view (desktop -> slideshow_view ));
213
225
214
226
// Lock icon
215
- desktop -> lock_viewport = view_port_alloc ();
216
- view_port_set_width (desktop -> lock_viewport , icon_get_width (& I_Lock_8x8 ));
217
- view_port_draw_callback_set (desktop -> lock_viewport , desktop_lock_icon_callback , desktop );
218
- view_port_enabled_set (desktop -> lock_viewport , false);
219
- gui_add_view_port (desktop -> gui , desktop -> lock_viewport , GuiLayerStatusBarLeft );
227
+ desktop -> lock_icon_viewport = view_port_alloc ();
228
+ view_port_set_width (desktop -> lock_icon_viewport , icon_get_width (& I_Lock_8x8 ));
229
+ view_port_draw_callback_set (
230
+ desktop -> lock_icon_viewport , desktop_lock_icon_draw_callback , desktop );
231
+ view_port_enabled_set (desktop -> lock_icon_viewport , false);
232
+ gui_add_view_port (desktop -> gui , desktop -> lock_icon_viewport , GuiLayerStatusBarLeft );
233
+
234
+ // Dummy mode icon
235
+ desktop -> dummy_mode_icon_viewport = view_port_alloc ();
236
+ view_port_set_width (desktop -> dummy_mode_icon_viewport , icon_get_width (& I_GameMode_11x8 ));
237
+ view_port_draw_callback_set (
238
+ desktop -> dummy_mode_icon_viewport , desktop_dummy_mode_icon_draw_callback , desktop );
239
+ view_port_enabled_set (desktop -> dummy_mode_icon_viewport , false);
240
+ gui_add_view_port (desktop -> gui , desktop -> dummy_mode_icon_viewport , GuiLayerStatusBarLeft );
220
241
221
242
// Special case: autostart application is already running
222
243
desktop -> loader = furi_record_open (RECORD_LOADER );
@@ -301,12 +322,15 @@ int32_t desktop_srv(void* p) {
301
322
UNUSED (p );
302
323
Desktop * desktop = desktop_alloc ();
303
324
304
- bool loaded = LOAD_DESKTOP_SETTINGS (& desktop -> settings );
325
+ bool loaded = DESKTOP_SETTINGS_LOAD (& desktop -> settings );
305
326
if (!loaded ) {
306
327
memset (& desktop -> settings , 0 , sizeof (desktop -> settings ));
307
- SAVE_DESKTOP_SETTINGS (& desktop -> settings );
328
+ DESKTOP_SETTINGS_SAVE (& desktop -> settings );
308
329
}
309
330
331
+ view_port_enabled_set (desktop -> dummy_mode_icon_viewport , desktop -> settings .dummy_mode );
332
+ desktop_main_set_dummy_mode_state (desktop -> main_view , desktop -> settings .dummy_mode );
333
+
310
334
scene_manager_next_scene (desktop -> scene_manager , DesktopSceneMain );
311
335
312
336
desktop_pin_lock_init (& desktop -> settings );
0 commit comments