static void run_demo(struct demo_gui *gui, struct gui_input *input) { struct control_window *control = &gui->control; struct show_window *show = &gui->show; gui->running = update_control(control, &gui->stack, input, &gui->config); if (show->hook.flags & GUI_PANEL_ACTIVE) show->hook.flags = control->show_flags|GUI_PANEL_ACTIVE; else show->hook.flags = control->show_flags; update_show(show, &gui->stack, input, gui->ms); if (show->hook.flags & GUI_PANEL_HIDDEN) control->show_flags |= GUI_PANEL_HIDDEN; }
static void inbox_received_handler(DictionaryIterator *iter, void *context) { LOG("Inbox received..."); JS_ready = true; Tuple *tuple_t; bool new_data_from_config_page = dict_find(iter, KEY_CONFIG_DATA); tuple_t= dict_find(iter, KEY_TIMESTAMP); uint32_t inbox_timestamp = tuple_t ? tuple_t->value->int32 : 0; if (new_data_from_config_page || inbox_timestamp > data_timestamp) { data_timestamp=inbox_timestamp; tuple_t=dict_find(iter, KEY_VERSION); stored_version = (tuple_t) ? tuple_t->value->int32 : 1; tuple_t=dict_find(iter, KEY_SHOW_CLOCK); if (tuple_t && settings.Show_clock != (tuple_t->value->int8 > 0) ) main_menu_toggle_clock(); tuple_t=dict_find(iter, KEY_AUTO_SORT); if (tuple_t) settings.Auto_sort = tuple_t->value->int8 > 0; tuple_t=dict_find(iter, KEY_HRS_PER_DAY); if (tuple_t) settings.Hrs_day_x10 = tuple_t->value->int32; tuple_t=dict_find(iter, KEY_LAST_RESET); if (tuple_t) settings.Last_reset = tuple_t->value->int32; tuple_t=dict_find(iter,KEY_TIMER); if (tuple_t) { memcpy(&timer, tuple_t->value->data, tuple_t->length); tick_timer_service_subscribe(MINUTE_UNIT + SECOND_UNIT, handle_ticktimer_tick); } else { timer.Active = false; } jobs_delete_all_jobs(); jobs_list_read_dict(iter, KEY_JOBS, stored_version); main_menu_update(); main_menu_highlight_top(); if (stored_version < CURRENT_STORAGE_VERSION) { update_show(stored_version); stored_version = CURRENT_STORAGE_VERSION; } main_save_data(); } else if (inbox_timestamp < data_timestamp) { send_settings_to_phone(); } LOG("Inbox processed."); }