📄 settings.c
字号:
options[global_settings.rec_channels]); } fprintf(fd, "rec mic gain: %d\r\nrec left gain: %d\r\nrec right gain: %d\r\n", global_settings.rec_mic_gain, global_settings.rec_left_gain, global_settings.rec_right_gain); fprintf(fd, "editable recordings: %s\r\n", boolopt[global_settings.rec_editable]); fprintf(fd, "prerecording time: %d\r\n", global_settings.rec_prerecord_time); { static char* options[] = {rec_base_directory, "current"}; fprintf(fd, "rec directory: %s\r\n", options[global_settings.rec_directory]); }#endif fprintf(fd, "#\r\n# Bookmarking\r\n#\r\n"); { fprintf(fd, "autoload bookmarks: %s\r\n", triopt[global_settings.autoloadbookmark]); } { static char* options[] = {"off", "on", "ask","recent only - on", "recent only - ask"}; fprintf(fd, "autocreate bookmarks: %s\r\n", options[global_settings.autocreatebookmark]); } { static char* options[] = {"off", "on", "unique only"}; fprintf(fd, "UseMRB: %s\r\n", options[global_settings.usemrb]); } fprintf(fd, "#\r\n# Playlists\r\n#\r\n"); { fprintf(fd, "recursive directory insert: %s\r\n", triopt[global_settings.recursive_dir_insert]); } fprintf(fd, "#\r\n# Playlist viewer\r\n#\r\n"); { fprintf(fd, "playlist viewer icons: %s\r\n", boolopt[global_settings.playlist_viewer_icons]); fprintf(fd, "playlist viewer indices: %s\r\n", boolopt[global_settings.playlist_viewer_indices]); { static char* options[] = {"track name", "full path"}; fprintf(fd, "playlist viewer track display: %s\r\n", options[global_settings.playlist_viewer_track_display]); } } close(fd); lcd_clear_display(); lcd_puts(0,0,str(LANG_SETTINGS_SAVED1)); lcd_puts(0,1,str(LANG_SETTINGS_SAVED2)); lcd_update(); sleep(HZ); return true;}/* * reset all settings to their default value */void settings_reset(void) { DEBUGF( "settings_reset()\n" ); global_settings.volume = mpeg_sound_default(SOUND_VOLUME); global_settings.balance = mpeg_sound_default(SOUND_BALANCE); global_settings.bass = mpeg_sound_default(SOUND_BASS); global_settings.treble = mpeg_sound_default(SOUND_TREBLE); global_settings.loudness = mpeg_sound_default(SOUND_LOUDNESS); global_settings.bass_boost = mpeg_sound_default(SOUND_SUPERBASS); global_settings.avc = mpeg_sound_default(SOUND_AVC); global_settings.channel_config = mpeg_sound_default(SOUND_CHANNELS); global_settings.rec_quality = 5; global_settings.rec_source = 0; /* 0=mic */ global_settings.rec_frequency = 0; /* 0=44.1kHz */ global_settings.rec_channels = 0; /* 0=Stereo */ global_settings.rec_mic_gain = 8; global_settings.rec_left_gain = 2; /* 0dB */ global_settings.rec_right_gain = 2; /* 0dB */ global_settings.rec_editable = false; global_settings.rec_prerecord_time = 0; global_settings.rec_directory = 0; /* rec_base_directory */ global_settings.resume = RESUME_ASK; global_settings.contrast = lcd_default_contrast(); global_settings.invert = DEFAULT_INVERT_SETTING; global_settings.flip_display= false; global_settings.poweroff = DEFAULT_POWEROFF_SETTING; global_settings.backlight_timeout = DEFAULT_BACKLIGHT_TIMEOUT_SETTING; global_settings.invert_cursor = DEFAULT_INVERT_CURSOR_SETTING; global_settings.backlight_on_when_charging = DEFAULT_BACKLIGHT_ON_WHEN_CHARGING_SETTING;#ifdef HAVE_LIION global_settings.battery_capacity = 2200; /* mAh */#else global_settings.battery_capacity = 1500; /* mAh */#endif global_settings.trickle_charge = true; global_settings.dirfilter = SHOW_MUSIC; global_settings.sort_case = false; global_settings.statusbar = true; global_settings.scrollbar = true; global_settings.repeat_mode = REPEAT_ALL; global_settings.playlist_shuffle = false; global_settings.discharge = 0; global_settings.timeformat = 0; global_settings.volume_type = 0; global_settings.battery_type = 0; global_settings.scroll_speed = 8; global_settings.bidir_limit = 50;#ifdef HAVE_LCD_CHARCELLS global_settings.jump_scroll = 0; global_settings.jump_scroll_delay = 50;#endif global_settings.scroll_delay = 100; global_settings.scroll_step = 6; global_settings.ff_rewind_min_step = DEFAULT_FF_REWIND_MIN_STEP; global_settings.ff_rewind_accel = DEFAULT_FF_REWIND_ACCEL_SETTING; global_settings.resume_index = -1; global_settings.resume_first_index = 0; global_settings.resume_offset = -1; global_settings.resume_seed = -1; global_settings.disk_spindown = 5; global_settings.disk_poweroff = false; global_settings.buffer_margin = 0; global_settings.browse_current = false; global_settings.play_selected = true; global_settings.peak_meter_release = 8; global_settings.peak_meter_hold = 3; global_settings.peak_meter_clip_hold = 16; global_settings.peak_meter_dbfs = true; global_settings.peak_meter_min = 60; global_settings.peak_meter_max = 0; global_settings.peak_meter_performance = false; global_settings.wps_file[0] = 0; global_settings.font_file[0] = 0; global_settings.lang_file[0] = 0; global_settings.runtime = 0; global_settings.topruntime = 0; global_settings.autocreatebookmark = BOOKMARK_NO; global_settings.autoloadbookmark = BOOKMARK_NO; global_settings.usemrb = BOOKMARK_NO; global_settings.fade_on_stop = true; global_settings.caption_backlight = false; global_settings.car_adapter_mode = false; global_settings.max_files_in_dir = 400; global_settings.max_files_in_playlist = 10000; global_settings.show_icons = true; global_settings.recursive_dir_insert = RECURSE_OFF; global_settings.line_in = false; global_settings.playlist_viewer_icons = true; global_settings.playlist_viewer_indices = true; global_settings.playlist_viewer_track_display = 0;}bool set_bool(char* string, bool* variable ){ return set_bool_options(string, variable, str(LANG_SET_BOOL_YES), str(LANG_SET_BOOL_NO), NULL);}/* wrapper to convert from int param to bool param in set_option */static void (*boolfunction)(bool);void bool_funcwrapper(int value){ if (value) boolfunction(true); else boolfunction(false);}bool set_bool_options(char* string, bool* variable, char* yes_str, char* no_str, void (*function)(bool)){ char* names[] = { no_str, yes_str }; bool result; boolfunction = function; result = set_option(string, variable, BOOL, names, 2, function ? bool_funcwrapper : NULL); return result;}bool set_int(char* string, char* unit, int* variable, void (*function)(int), int step, int min, int max ){ bool done = false; int button; int org_value=*variable;#ifdef HAVE_LCD_BITMAP if(global_settings.statusbar) lcd_setmargins(0, STATUSBAR_HEIGHT); else lcd_setmargins(0, 0);#endif lcd_clear_display(); lcd_puts_scroll(0, 0, string); while (!done) { char str[32]; snprintf(str,sizeof str,"%d %s ", *variable, unit); lcd_puts(0, 1, str);#ifdef HAVE_LCD_BITMAP status_draw(true);#endif lcd_update(); button = button_get_w_tmo(HZ/2); switch(button) {#ifdef HAVE_RECORDER_KEYPAD case BUTTON_UP: case BUTTON_UP | BUTTON_REPEAT:#else case BUTTON_RIGHT: case BUTTON_RIGHT | BUTTON_REPEAT:#endif *variable += step; break;#ifdef HAVE_RECORDER_KEYPAD case BUTTON_DOWN: case BUTTON_DOWN | BUTTON_REPEAT:#else case BUTTON_LEFT: case BUTTON_LEFT | BUTTON_REPEAT:#endif *variable -= step; break;#ifdef HAVE_RECORDER_KEYPAD case BUTTON_LEFT: case BUTTON_PLAY:#else case BUTTON_PLAY:#endif done = true; break;#ifdef HAVE_RECORDER_KEYPAD case BUTTON_OFF:#else case BUTTON_STOP: case BUTTON_MENU:#endif if (*variable != org_value) { *variable=org_value; lcd_stop_scroll(); lcd_puts(0, 0, str(LANG_MENU_SETTING_CANCEL)); lcd_update(); sleep(HZ/2); } done = true; break; case SYS_USB_CONNECTED: usb_screen(); return true; } if(*variable > max ) *variable = max; if(*variable < min ) *variable = min; if ( function && button != BUTTON_NONE) function(*variable); } lcd_stop_scroll(); return false;}/* NOTE: the 'type' parameter specifies the actual type of the variable that 'variable' points to. not the value within. Only variables with type 'bool' should use parameter BOOL. The type separation is necessary since int and bool are fundamentally different and bit-incompatible types and can not share the same access code. */bool set_option(char* string, void* variable, enum optiontype type, char* options[], int numoptions, void (*function)(int)){ bool done = false; int button; int* intvar = (int*)variable; bool* boolvar = (bool*)variable; int oldval = 0; if (type==INT) oldval=*intvar; else oldval=*boolvar;#ifdef HAVE_LCD_BITMAP if(global_settings.statusbar) lcd_setmargins(0, STATUSBAR_HEIGHT); else lcd_setmargins(0, 0);#endif lcd_clear_display(); lcd_puts_scroll(0, 0, string); while ( !done ) { lcd_puts(0, 1, options[type==INT ? *intvar : (int)*boolvar]);#ifdef HAVE_LCD_BITMAP status_draw(true);#endif lcd_update(); button = button_get_w_tmo(HZ/2); switch (button) {#ifdef HAVE_RECORDER_KEYPAD case BUTTON_UP: case BUTTON_UP | BUTTON_REPEAT:#else case BUTTON_RIGHT: case BUTTON_RIGHT | BUTTON_REPEAT:#endif if (type == INT) { if ( *intvar < (numoptions-1) ) (*intvar)++; else (*intvar) -= (numoptions-1); } else *boolvar = !*boolvar; break;#ifdef HAVE_RECORDER_KEYPAD case BUTTON_DOWN: case BUTTON_DOWN | BUTTON_REPEAT:#else case BUTTON_LEFT: case BUTTON_LEFT | BUTTON_REPEAT:#endif if (type == INT) { if ( *intvar > 0 ) (*intvar)--; else (*intvar) += (numoptions-1); } else *boolvar = !*boolvar;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -