static int reset_settings(void) { static const char *lines[]= {ID2P(LANG_RESET_ASK)}; static const char *yes_lines[]= { ID2P(LANG_SETTINGS), ID2P(LANG_RESET_DONE_CLEAR) }; static const char *no_lines[]= { ID2P(LANG_SETTINGS), ID2P(LANG_CANCEL) }; static const struct text_message message= {lines, 1}; static const struct text_message yes_message= {yes_lines, 2}; static const struct text_message no_message= {no_lines, 2}; switch(gui_syncyesno_run(&message, &yes_message, &no_message)) { case YESNO_YES: settings_reset(); settings_save(); settings_apply(true); settings_apply_skins(); break; case YESNO_NO: break; case YESNO_USB: return 1; } return 0; }
static bool reset_settings(void) { bool done=false; int line; int button; lcd_clear_display(); #ifdef HAVE_LCD_CHARCELLS line = 0; #else line = 1; lcd_puts(0,0,str(LANG_RESET_ASK_RECORDER)); #endif lcd_puts(0,line,str(LANG_RESET_CONFIRM)); lcd_puts(0,line+1,str(LANG_RESET_CANCEL)); lcd_update(); while(!done) { button = button_get(true); switch(button) { case SETTINGS_OK: settings_reset(); settings_apply(); lcd_clear_display(); lcd_puts(0,1,str(LANG_RESET_DONE_CLEAR)); done = true; break; case SETTINGS_CANCEL: lcd_clear_display(); lcd_puts(0,1,str(LANG_RESET_DONE_CANCEL)); done = true; break; default: if(default_event_handler(button) == SYS_USB_CONNECTED) return true; } } lcd_puts(0,0,str(LANG_RESET_DONE_SETTING)); lcd_update(); sleep(HZ); return false; }
bool quick_screen_f3(int button_enter) { struct gui_quickscreen qs; qs.items[QUICKSCREEN_LEFT] = find_setting(&global_settings.scrollbar, NULL); qs.items[QUICKSCREEN_RIGHT] = find_setting(&global_settings.statusbar, NULL); qs.items[QUICKSCREEN_BOTTOM] = find_setting(&global_settings.flip_display, NULL); qs.callback = NULL; if (gui_syncquickscreen_run(&qs, button_enter)) { settings_save(); settings_apply(false); } return(0); }
bool quick_screen_quick(int button_enter) { struct gui_quickscreen qs; bool oldshuffle = global_settings.playlist_shuffle; int oldrepeat = global_settings.repeat_mode; qs.items[QUICKSCREEN_TOP] = get_setting(global_settings.qs_items[QUICKSCREEN_TOP], find_setting(&global_settings.party_mode, NULL)); qs.items[QUICKSCREEN_LEFT] = get_setting(global_settings.qs_items[QUICKSCREEN_LEFT], find_setting(&global_settings.playlist_shuffle, NULL)); qs.items[QUICKSCREEN_RIGHT] = get_setting(global_settings.qs_items[QUICKSCREEN_RIGHT], find_setting(&global_settings.repeat_mode, NULL)); qs.items[QUICKSCREEN_BOTTOM] = get_setting(global_settings.qs_items[QUICKSCREEN_BOTTOM], find_setting(&global_settings.dirfilter, NULL)); qs.callback = NULL; if (gui_syncquickscreen_run(&qs, button_enter)) { settings_save(); settings_apply(false); /* make sure repeat/shuffle/any other nasty ones get updated */ if ( oldrepeat != global_settings.repeat_mode && (audio_status() & AUDIO_STATUS_PLAY) ) { audio_flush_and_reload_tracks(); } if (oldshuffle != global_settings.playlist_shuffle && audio_status() & AUDIO_STATUS_PLAY) { #if CONFIG_CODEC == SWCODEC dsp_set_replaygain(); #endif if (global_settings.playlist_shuffle) playlist_randomise(NULL, current_tick, true); else playlist_sort(NULL, true); } } return(0); }
bool quick_screen_quick(int button_enter) { struct gui_quickscreen qs; bool oldshuffle = global_settings.playlist_shuffle; int oldrepeat = global_settings.repeat_mode; bool usb = false; if (global_settings.shortcuts_replaces_qs) return do_shortcut_menu(NULL); qs.items[QUICKSCREEN_TOP] = get_setting(global_settings.qs_items[QUICKSCREEN_TOP], NULL); qs.items[QUICKSCREEN_LEFT] = get_setting(global_settings.qs_items[QUICKSCREEN_LEFT], find_setting(&global_settings.playlist_shuffle, NULL)); qs.items[QUICKSCREEN_RIGHT] = get_setting(global_settings.qs_items[QUICKSCREEN_RIGHT], find_setting(&global_settings.repeat_mode, NULL)); qs.items[QUICKSCREEN_BOTTOM] = get_setting(global_settings.qs_items[QUICKSCREEN_BOTTOM], NULL); qs.callback = NULL; if (gui_syncquickscreen_run(&qs, button_enter, &usb)) { settings_save(); settings_apply(false); /* make sure repeat/shuffle/any other nasty ones get updated */ if ( oldrepeat != global_settings.repeat_mode && (audio_status() & AUDIO_STATUS_PLAY) ) { audio_flush_and_reload_tracks(); } if (oldshuffle != global_settings.playlist_shuffle && audio_status() & AUDIO_STATUS_PLAY) { replaygain_update(); if (global_settings.playlist_shuffle) playlist_randomise(NULL, current_tick, true); else playlist_sort(NULL, true); } } return usb; }
bool quick_screen_f3(int button_enter) { struct gui_quickscreen qs; bool usb = false; qs.items[QUICKSCREEN_TOP] = NULL; qs.items[QUICKSCREEN_LEFT] = find_setting(&global_settings.scrollbar, NULL); qs.items[QUICKSCREEN_RIGHT] = find_setting(&global_settings.statusbar, NULL); qs.items[QUICKSCREEN_BOTTOM] = #ifdef HAVE_LCD_FLIP find_setting(&global_settings.flip_display, NULL); #else NULL; #endif qs.callback = NULL; if (gui_syncquickscreen_run(&qs, button_enter, &usb)) { settings_save(); settings_apply(false); } return usb; }
void gui_usb_screen_run(bool early_usb) { (void) early_usb; struct usb_screen_vps_t usb_screen_vps_ar[NB_SCREENS]; #if defined HAVE_TOUCHSCREEN enum touchscreen_mode old_mode = touchscreen_get_mode(); /* TODO: Paint buttons on screens OR switch to point mode and use * touchscreen as a touchpad to move the host's mouse cursor */ touchscreen_set_mode(TOUCHSCREEN_BUTTON); #endif push_current_activity(ACTIVITY_USBSCREEN); #ifdef USB_ENABLE_HID usb_hid = global_settings.usb_hid; usb_keypad_mode = global_settings.usb_keypad_mode; #endif FOR_NB_SCREENS(i) { struct screen *screen = &screens[i]; screen->set_viewport(NULL); #ifdef HAVE_LCD_CHARCELLS /* Quick fix. Viewports should really be enabled proper for charcell */ viewport_set_defaults(&usb_screen_vps_ar[i].parent, i); #else usb_screen_fix_viewports(screen, &usb_screen_vps_ar[i]); #endif } /* update the UI before disabling fonts, this maximizes the propability * that font cache lookups succeed during USB */ send_event(GUI_EVENT_ACTIONUPDATE, NULL); #ifdef HAVE_LCD_BITMAP if(!early_usb) { /* The font system leaves the .fnt fd's open, so we need for force close them all */ font_disable_all(); } #endif usb_acknowledge(SYS_USB_CONNECTED_ACK); while (1) { usb_screens_draw(usb_screen_vps_ar); #ifdef SIMULATOR if (button_get_w_tmo(HZ/2)) break; send_event(GUI_EVENT_ACTIONUPDATE, NULL); #else if (handle_usb_events()) break; #endif /* SIMULATOR */ } FOR_NB_SCREENS(i) { const struct viewport* vp = NULL; #if defined(HAVE_LCD_BITMAP) && defined(USB_ENABLE_HID) vp = usb_hid ? &usb_screen_vps_ar[i].title : NULL; #elif !defined(HAVE_LCD_BITMAP) vp = &usb_screen_vps_ar[i].parent; #endif if (vp) screens[i].scroll_stop_viewport(vp); } #ifdef USB_ENABLE_HID if (global_settings.usb_keypad_mode != usb_keypad_mode) { global_settings.usb_keypad_mode = usb_keypad_mode; settings_save(); } #endif #ifdef HAVE_TOUCHSCREEN touchscreen_set_mode(old_mode); #endif #ifdef HAVE_LCD_CHARCELLS status_set_usb(false); #endif /* HAVE_LCD_CHARCELLS */ #ifdef HAVE_LCD_BITMAP if(!early_usb) { font_enable_all(); /* Not pretty, reload all settings so fonts are loaded again correctly */ settings_apply(true); /* Reload playlist */ playlist_resume(); } #endif FOR_NB_SCREENS(i) { screens[i].backlight_on(); viewportmanager_theme_undo(i, false); } pop_current_activity(); }
void snapshot_apply(snapshot_t *snapshot) { if (cmodes_config.recall_camera) { send_to_intercom(IC_SET_METERING, snapshot->DPData.metering); send_to_intercom(IC_SET_EFCOMP, snapshot->DPData.efcomp); send_to_intercom(IC_SET_DRIVE, snapshot->DPData.drive); send_to_intercom(IC_SET_WB, snapshot->DPData.wb); send_to_intercom(IC_SET_AF_POINT, snapshot->DPData.af_point); send_to_intercom(IC_SET_TV_VAL, snapshot->DPData.tv_val); send_to_intercom(IC_SET_AV_VAL, snapshot->DPData.av_val); send_to_intercom(IC_SET_AV_COMP, snapshot->DPData.av_comp); send_to_intercom(IC_SET_ISO, snapshot->DPData.iso); send_to_intercom(IC_SET_RED_EYE, snapshot->DPData.red_eye); send_to_intercom(IC_SET_AE_BKT, snapshot->DPData.ae_bkt); send_to_intercom(IC_SET_WB_BKT, snapshot->DPData.wb_bkt); send_to_intercom(IC_SET_BEEP, snapshot->DPData.beep); send_to_intercom(IC_SET_COLOR_TEMP, snapshot->DPData.color_temp); send_to_intercom(IC_SET_WBCOMP_GM, snapshot->DPData.wbcomp_gm); send_to_intercom(IC_SET_WBCOMP_AB, snapshot->DPData.wbcomp_ab); /** * We cannot switch AF off when loading a custom mode, * because the switch on the lens could be set to on. */ if (snapshot->DPData.af) send_to_intercom(IC_SET_AF, snapshot->DPData.af); } if (cmodes_config.recall_settings) { send_to_intercom(IC_SET_AUTO_POWER_OFF, snapshot->DPData.auto_power_off); send_to_intercom(IC_SET_VIEW_TYPE, snapshot->DPData.view_type); send_to_intercom(IC_SET_REVIEW_TIME, snapshot->DPData.review_time); send_to_intercom(IC_SET_AUTO_ROTATE, snapshot->DPData.auto_rotate); send_to_intercom(IC_SET_LCD_BRIGHTNESS, snapshot->DPData.lcd_brightness); send_to_intercom(IC_SET_DATE_TIME, snapshot->DPData.date_time); send_to_intercom(IC_SET_FILE_NUMBERING, snapshot->DPData.file_numbering); send_to_intercom(IC_SET_LANGUAGE, snapshot->DPData.language); send_to_intercom(IC_SET_VIDEO_SYSTEM, snapshot->DPData.video_system); send_to_intercom(IC_SET_HISTOGRAM, snapshot->DPData.histogram); send_to_intercom(IC_SET_COLOR_SPACE, snapshot->DPData.color_space); } if (cmodes_config.recall_image) { send_to_intercom(IC_SET_IMG_FORMAT, snapshot->DPData.img_format); send_to_intercom(IC_SET_IMG_SIZE, snapshot->DPData.img_size); send_to_intercom(IC_SET_IMG_QUALITY, snapshot->DPData.img_quality); } if (cmodes_config.recall_cfn) { send_to_intercom(IC_SET_CF_SET_BUTTON_FUNC, snapshot->DPData.cf_set_button_func); send_to_intercom(IC_SET_CF_NR_FOR_LONG_EXPOSURE, snapshot->DPData.cf_nr_for_long_exposure); send_to_intercom(IC_SET_CF_EFAV_FIX_X, snapshot->DPData.cf_efav_fix_x); send_to_intercom(IC_SET_CF_AFAEL_ACTIVE_BUTTON, snapshot->DPData.cf_afael_active_button); send_to_intercom(IC_SET_CF_EMIT_AUX, snapshot->DPData.cf_emit_aux); send_to_intercom(IC_SET_CF_EXPLEVEL_INC_THIRD, snapshot->DPData.cf_explevel_inc_third); send_to_intercom(IC_SET_CF_EMIT_FLASH, snapshot->DPData.cf_emit_flash); send_to_intercom(IC_SET_CF_EXTEND_ISO, snapshot->DPData.cf_extend_iso); send_to_intercom(IC_SET_CF_AEB_SEQUENCE, snapshot->DPData.cf_aeb_sequence); send_to_intercom(IC_SET_CF_SI_INDICATE, snapshot->DPData.cf_si_indicate); send_to_intercom(IC_SET_CF_MENU_POS, snapshot->DPData.cf_menu_pos); send_to_intercom(IC_SET_CF_MIRROR_UP_LOCK, snapshot->DPData.cf_mirror_up_lock); send_to_intercom(IC_SET_CF_FPSEL_METHOD, snapshot->DPData.cf_fpsel_method); send_to_intercom(IC_SET_CF_FLASH_METERING, snapshot->DPData.cf_flash_metering); send_to_intercom(IC_SET_CF_FLASH_SYNC_REAR, snapshot->DPData.cf_flash_sync_rear); send_to_intercom(IC_SET_CF_SAFETY_SHIFT, snapshot->DPData.cf_safety_shift); send_to_intercom(IC_SET_CF_LENS_BUTTON, snapshot->DPData.cf_lens_button); send_to_intercom(IC_SET_CF_ORIGINAL_EVAL, snapshot->DPData.cf_original_eval); send_to_intercom(IC_SET_CF_QR_MAGNIFY, snapshot->DPData.cf_qr_magnify); send_to_intercom(IC_SET_CF_TFT_ON_POWER_ON, snapshot->DPData.cf_tft_on_power_on); } if (cmodes_config.recall_ordering) { menu_order = snapshot->menu_order; } if (cmodes_config.recall_400plus) { settings = snapshot->settings; settings_apply(); } }
bool settings_load_config(const char* file, bool apply) { int fd; char line[128]; char* name; char* value; int i; fd = open_utf8(file, O_RDONLY); if (fd < 0) return false; while (read_line(fd, line, sizeof line) > 0) { if (!settings_parseline(line, &name, &value)) continue; for(i=0; i<nb_settings; i++) { if (settings[i].cfg_name == NULL) continue; if (!strcasecmp(name,settings[i].cfg_name)) { switch (settings[i].flags&F_T_MASK) { case F_T_CUSTOM: settings[i].custom_setting->load_from_cfg(settings[i].setting, value); break; case F_T_INT: case F_T_UINT: #ifdef HAVE_LCD_COLOR if (settings[i].flags&F_RGB) hex_to_rgb(value, (int*)settings[i].setting); else #endif if (settings[i].cfg_vals == NULL) { *(int*)settings[i].setting = atoi(value); } else { int temp, *v = (int*)settings[i].setting; bool found = cfg_string_to_int(i, &temp, value); if (found) { if (settings[i].flags&F_TABLE_SETTING) *v = settings[i].table_setting->values[temp]; else *v = temp; } else { /* atoi breaks choice settings because they * don't have int-like values, and would * fall back to the first value (i.e. 0) * due to atoi */ if (!(settings[i].flags&F_CHOICE_SETTING)) *v = atoi(value); } } break; case F_T_BOOL: { int temp; if (cfg_string_to_int(i,&temp,value)) *(bool*)settings[i].setting = (temp!=0); if (settings[i].bool_setting->option_callback) settings[i].bool_setting->option_callback(temp!=0); break; } case F_T_CHARPTR: case F_T_UCHARPTR: { char storage[MAX_PATH]; if (settings[i].filename_setting->prefix) { int len = strlen(settings[i].filename_setting->prefix); if (!strncasecmp(value, settings[i].filename_setting->prefix, len)) { strlcpy(storage, &value[len], MAX_PATH); } else strlcpy(storage, value, MAX_PATH); } else strlcpy(storage, value, MAX_PATH); if (settings[i].filename_setting->suffix) { char *s = strcasestr(storage,settings[i].filename_setting->suffix); if (s) *s = '\0'; } strlcpy((char*)settings[i].setting, storage, settings[i].filename_setting->max_len); break; } } break; } /* if (!strcmp(name,settings[i].cfg_name)) */ } /* for(...) */ } /* while(...) */ close(fd); settings_save(); if (apply) settings_apply(true); return true; }
static void init(void) { int rc; bool mounted = false; #if CONFIG_CHARGING && (CONFIG_CPU == SH7034) /* if nobody initialized ATA before, I consider this a cold start */ bool coldstart = (PACR2 & 0x4000) != 0; /* starting from Flash */ #endif system_init(); kernel_init(); #ifdef HAVE_ADJUSTABLE_CPU_FREQ set_cpu_frequency(CPUFREQ_NORMAL); #ifdef CPU_COLDFIRE coldfire_set_pllcr_audio_bits(DEFAULT_PLLCR_AUDIO_BITS); #endif cpu_boost(true); #endif buffer_init(); settings_reset(); i2c_init(); power_init(); enable_irq(); #ifdef CPU_ARM enable_fiq(); #endif /* current_tick should be ticking by now */ CHART("ticking"); lcd_init(); #ifdef HAVE_REMOTE_LCD lcd_remote_init(); #endif font_init(); CHART(">show_logo"); show_logo(); CHART("<show_logo"); lang_init(core_language_builtin, language_strings, LANG_LAST_INDEX_IN_ARRAY); #ifdef DEBUG debug_init(); #else #ifdef HAVE_SERIAL serial_setup(); #endif #endif #if CONFIG_RTC rtc_init(); #endif #ifdef HAVE_RTC_RAM CHART(">settings_load(RTC)"); settings_load(SETTINGS_RTC); /* early load parts of global_settings */ CHART("<settings_load(RTC)"); #endif adc_init(); usb_init(); #if CONFIG_USBOTG == USBOTG_ISP1362 isp1362_init(); #elif CONFIG_USBOTG == USBOTG_M5636 m5636_init(); #endif backlight_init(); button_init(); powermgmt_init(); #if CONFIG_TUNER radio_init(); #endif /* Keep the order of this 3 (viewportmanager handles statusbars) * Must be done before any code uses the multi-screen API */ CHART(">gui_syncstatusbar_init"); gui_syncstatusbar_init(&statusbars); CHART("<gui_syncstatusbar_init"); CHART(">sb_skin_init"); sb_skin_init(); CHART("<sb_skin_init"); CHART(">gui_sync_wps_init"); gui_sync_wps_init(); CHART("<gui_sync_wps_init"); CHART(">viewportmanager_init"); viewportmanager_init(); CHART("<viewportmanager_init"); #if CONFIG_CHARGING && (CONFIG_CPU == SH7034) /* charger_inserted() can't be used here because power_thread() hasn't checked power_input_status() yet */ if (coldstart && (power_input_status() & POWER_INPUT_MAIN_CHARGER) && !global_settings.car_adapter_mode #ifdef ATA_POWER_PLAYERSTYLE && !ide_powered() /* relies on probing result from bootloader */ #endif ) { rc = charging_screen(); /* display a "charging" screen */ if (rc == 1) /* charger removed */ power_off(); /* "On" pressed or USB connected: proceed */ show_logo(); /* again, to provide better visual feedback */ } #endif CHART(">storage_init"); rc = storage_init(); CHART("<storage_init"); if(rc) { #ifdef HAVE_LCD_BITMAP lcd_clear_display(); lcd_putsf(0, 1, "ATA error: %d", rc); lcd_puts(0, 3, "Press ON to debug"); lcd_update(); while(!(button_get(true) & BUTTON_REL)); /*DO NOT CHANGE TO ACTION SYSTEM */ dbg_ports(); #endif panicf("ata: %d", rc); } #ifdef HAVE_EEPROM_SETTINGS CHART(">eeprom_settings_init"); eeprom_settings_init(); CHART("<eeprom_settings_init"); #endif #ifndef HAVE_USBSTACK usb_start_monitoring(); while (usb_detect() == USB_INSERTED) { #ifdef HAVE_EEPROM_SETTINGS firmware_settings.disk_clean = false; #endif /* enter USB mode early, before trying to mount */ if (button_get_w_tmo(HZ/10) == SYS_USB_CONNECTED) #if (CONFIG_STORAGE & STORAGE_MMC) if (!mmc_touched() || (mmc_remove_request() == SYS_HOTSWAP_EXTRACTED)) #endif { gui_usb_screen_run(); mounted = true; /* mounting done @ end of USB mode */ } #ifdef HAVE_USB_POWER if (usb_powered()) /* avoid deadlock */ break; #endif } #endif if (!mounted) { CHART(">disk_mount_all"); rc = disk_mount_all(); CHART("<disk_mount_all"); if (rc<=0) { lcd_clear_display(); lcd_puts(0, 0, "No partition"); lcd_puts(0, 1, "found."); #ifdef HAVE_LCD_BITMAP lcd_puts(0, 2, "Insert USB cable"); lcd_puts(0, 3, "and fix it."); #endif lcd_update(); while(button_get(true) != SYS_USB_CONNECTED) {}; gui_usb_screen_run(); system_reboot(); } } #if defined(SETTINGS_RESET) || (CONFIG_KEYPAD == IPOD_4G_PAD) || \ (CONFIG_KEYPAD == IRIVER_H10_PAD) #ifdef SETTINGS_RESET /* Reset settings if holding the reset button. (Rec on Archos, A on Gigabeat) */ if ((button_status() & SETTINGS_RESET) == SETTINGS_RESET) #else /* Reset settings if the hold button is turned on */ if (button_hold()) #endif { splash(HZ*2, str(LANG_RESET_DONE_CLEAR)); settings_reset(); } else #endif { CHART(">settings_load(ALL)"); settings_load(SETTINGS_ALL); CHART("<settings_load(ALL)"); } CHART(">init_dircache(true)"); rc = init_dircache(true); CHART("<init_dircache(true)"); if (rc < 0) { #ifdef HAVE_TAGCACHE remove(TAGCACHE_STATEFILE); #endif } CHART(">settings_apply(true)"); settings_apply(true); CHART("<settings_apply(true)"); CHART(">init_dircache(false)"); init_dircache(false); CHART("<init_dircache(false)"); #ifdef HAVE_TAGCACHE CHART(">init_tagcache"); init_tagcache(); CHART("<init_tagcache"); #endif #ifdef HAVE_EEPROM_SETTINGS if (firmware_settings.initialized) { /* In case we crash. */ firmware_settings.disk_clean = false; CHART(">eeprom_settings_store"); eeprom_settings_store(); CHART("<eeprom_settings_store"); } #endif playlist_init(); tree_mem_init(); filetype_init(); scrobbler_init(); #if CONFIG_CODEC == SWCODEC tdspeed_init(); #endif /* CONFIG_CODEC == SWCODEC */ #if CONFIG_CODEC != SWCODEC /* No buffer allocation (see buffer.c) may take place after the call to audio_init() since the mpeg thread takes the rest of the buffer space */ mp3_init( global_settings.volume, global_settings.bass, global_settings.treble, global_settings.balance, global_settings.loudness, global_settings.avc, global_settings.channel_config, global_settings.stereo_width, global_settings.mdb_strength, global_settings.mdb_harmonics, global_settings.mdb_center, global_settings.mdb_shape, global_settings.mdb_enable, global_settings.superbass); /* audio_init must to know the size of voice buffer so init voice first */ talk_init(); #endif /* CONFIG_CODEC != SWCODEC */ CHART(">audio_init"); audio_init(); CHART("<audio_init"); #if (CONFIG_CODEC == SWCODEC) && defined(HAVE_RECORDING) && !defined(SIMULATOR) pcm_rec_init(); #endif /* runtime database has to be initialized after audio_init() */ cpu_boost(false); #if CONFIG_CHARGING car_adapter_mode_init(); #endif #ifdef IPOD_ACCESSORY_PROTOCOL iap_setup(global_settings.serial_bitrate); #endif #ifdef HAVE_ACCESSORY_SUPPLY accessory_supply_set(global_settings.accessory_supply); #endif #ifdef HAVE_LINEOUT_POWEROFF lineout_set(global_settings.lineout_active); #endif #ifdef HAVE_HOTSWAP_STORAGE_AS_MAIN CHART("<check_bootfile(false)"); check_bootfile(false); /* remember write time and filesize */ CHART(">check_bootfile(false)"); #endif CHART("<settings_apply_skins"); settings_apply_skins(); CHART(">settings_apply_skins"); }
static void init(void) { kernel_init(); buffer_init(); enable_irq(); lcd_init(); #ifdef HAVE_REMOTE_LCD lcd_remote_init(); #endif font_init(); show_logo(); button_init(); backlight_init(); sim_tasks_init(); lang_init(core_language_builtin, language_strings, LANG_LAST_INDEX_IN_ARRAY); #ifdef DEBUG debug_init(); #endif /* Keep the order of this 3 (viewportmanager handles statusbars) * Must be done before any code uses the multi-screen API */ gui_syncstatusbar_init(&statusbars); gui_sync_wps_init(); sb_skin_init(); viewportmanager_init(); storage_init(); settings_reset(); settings_load(SETTINGS_ALL); settings_apply(true); init_dircache(true); init_dircache(false); #ifdef HAVE_TAGCACHE init_tagcache(); #endif sleep(HZ/2); tree_mem_init(); filetype_init(); playlist_init(); #if CONFIG_CODEC != SWCODEC mp3_init( global_settings.volume, global_settings.bass, global_settings.treble, global_settings.balance, global_settings.loudness, global_settings.avc, global_settings.channel_config, global_settings.stereo_width, global_settings.mdb_strength, global_settings.mdb_harmonics, global_settings.mdb_center, global_settings.mdb_shape, global_settings.mdb_enable, global_settings.superbass); /* audio_init must to know the size of voice buffer so init voice first */ talk_init(); #endif /* CONFIG_CODEC != SWCODEC */ scrobbler_init(); #if CONFIG_CODEC == SWCODEC tdspeed_init(); #endif /* CONFIG_CODEC == SWCODEC */ audio_init(); button_clear_queue(); /* Empty the keyboard buffer */ settings_apply_skins(); }