mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-12-09 13:15:18 -05:00
Expanded .cfg loader to include most settings. Based on Christian Determann's patch.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3260 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
c4d8d970f6
commit
9c16e12390
5 changed files with 287 additions and 47 deletions
|
|
@ -1381,3 +1381,13 @@ id: LANG_CPU_SLEEP
|
||||||
desc: in system_settings_menu()
|
desc: in system_settings_menu()
|
||||||
eng: "Power Saving"
|
eng: "Power Saving"
|
||||||
new:
|
new:
|
||||||
|
|
||||||
|
id: LANG_SETTINGS_LOADED1
|
||||||
|
desc: Feedback shown when a .cfg file is loaded
|
||||||
|
eng: "Settings"
|
||||||
|
new:
|
||||||
|
|
||||||
|
id: LANG_SETTINGS_LOADED2
|
||||||
|
desc: Feedback shown when a .cfg file is loaded
|
||||||
|
eng: "loaded"
|
||||||
|
new:
|
||||||
|
|
|
||||||
174
apps/settings.c
174
apps/settings.c
|
|
@ -519,6 +519,8 @@ void settings_apply(void)
|
||||||
cpu_sleep(global_settings.cpu_sleep);
|
cpu_sleep(global_settings.cpu_sleep);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void set_cfg_bool(bool* variable, char* value);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* load settings from disk or RTC RAM
|
* load settings from disk or RTC RAM
|
||||||
*/
|
*/
|
||||||
|
|
@ -527,6 +529,8 @@ void settings_load(void)
|
||||||
|
|
||||||
DEBUGF( "reload_all_settings()\n" );
|
DEBUGF( "reload_all_settings()\n" );
|
||||||
|
|
||||||
|
// set_cfg_bool(&global_settings.playlist_shuffle, "off");
|
||||||
|
|
||||||
/* populate settings with default values */
|
/* populate settings with default values */
|
||||||
settings_reset();
|
settings_reset();
|
||||||
|
|
||||||
|
|
@ -776,6 +780,39 @@ static void set_sound(char* value, int type, int* setting)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void set_cfg_bool(bool* variable, char* value)
|
||||||
|
{
|
||||||
|
/* look for the 'n' in 'on' */
|
||||||
|
if ((value[1] & 0xdf) == 'N')
|
||||||
|
*variable = true;
|
||||||
|
else
|
||||||
|
*variable = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void set_cfg_int(int* variable, char* value, int min, int max )
|
||||||
|
{
|
||||||
|
*variable = atoi(value);
|
||||||
|
|
||||||
|
if (*variable < min)
|
||||||
|
*variable = min;
|
||||||
|
else
|
||||||
|
if (*variable > max)
|
||||||
|
*variable = max;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void set_cfg_option(int* variable, char* value,
|
||||||
|
char* options[], int numoptions )
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i=0; i<numoptions; i++) {
|
||||||
|
if (!strcasecmp(options[i], value)) {
|
||||||
|
*variable = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool settings_load_config(char* file)
|
bool settings_load_config(char* file)
|
||||||
{
|
{
|
||||||
int fd;
|
int fd;
|
||||||
|
|
@ -803,6 +840,111 @@ bool settings_load_config(char* file)
|
||||||
set_sound(value, SOUND_BALANCE, &global_settings.balance);
|
set_sound(value, SOUND_BALANCE, &global_settings.balance);
|
||||||
else if (!strcasecmp(name, "channels"))
|
else if (!strcasecmp(name, "channels"))
|
||||||
set_sound(value, SOUND_CHANNELS, &global_settings.channel_config);
|
set_sound(value, SOUND_CHANNELS, &global_settings.channel_config);
|
||||||
|
else if (!strcasecmp(name, "wps"))
|
||||||
|
strncpy(global_settings.wps_file, value, MAX_FILENAME);
|
||||||
|
else if (!strcasecmp(name, "lang"))
|
||||||
|
strncpy(global_settings.lang_file, value, MAX_FILENAME);
|
||||||
|
#ifdef HAVE_LCD_BITMAP
|
||||||
|
else if (!strcasecmp(name, "font"))
|
||||||
|
strncpy(global_settings.font_file, value, MAX_FILENAME);
|
||||||
|
else if (!strcasecmp(name, "scroll step"))
|
||||||
|
set_cfg_int(&global_settings.scroll_step, value, 1, LCD_WIDTH);
|
||||||
|
else if (!strcasecmp(name, "bidir limit"))
|
||||||
|
set_cfg_int(&global_settings.bidir_limit, value, 0, 200);
|
||||||
|
else if (!strcasecmp(name, "statusbar"))
|
||||||
|
set_cfg_bool(&global_settings.statusbar, value);
|
||||||
|
else if (!strcasecmp(name, "peak meter release"))
|
||||||
|
set_cfg_int(&global_settings.peak_meter_release, value, 1, 0x7e);
|
||||||
|
else if (!strcasecmp(name, "peak meter hold")) {
|
||||||
|
static char* options[] = {
|
||||||
|
"off","200ms","300ms","500ms",
|
||||||
|
"1","2","3","4","5","6","7","8","9","10",
|
||||||
|
"15","20","25","30","45","60","90",
|
||||||
|
"2min","3min","5min","10min","20min","45min","90min"};
|
||||||
|
set_cfg_option(&global_settings.peak_meter_hold, value,
|
||||||
|
options, 28);
|
||||||
|
}
|
||||||
|
else if (!strcasecmp(name, "peak meter clip hold")) {
|
||||||
|
static char* options[] = {
|
||||||
|
"on","1","2","3","4","5","6","7","8","9","10",
|
||||||
|
"15","20","25","30","45","60","90",
|
||||||
|
"2min","3min","5min","10min","20min","45min","90min"};
|
||||||
|
set_cfg_option(&global_settings.peak_meter_clip_hold, value,
|
||||||
|
options, 25);
|
||||||
|
}
|
||||||
|
else if (!strcasecmp(name, "peak meter dbfs"))
|
||||||
|
set_cfg_bool(&global_settings.peak_meter_dbfs, value);
|
||||||
|
else if (!strcasecmp(name, "peak meter min"))
|
||||||
|
set_cfg_int(&global_settings.peak_meter_min, value, 0, 100);
|
||||||
|
else if (!strcasecmp(name, "peak meter max"))
|
||||||
|
set_cfg_int(&global_settings.peak_meter_max, value, 0, 100);
|
||||||
|
else if (!strcasecmp(name, "peak meter busy"))
|
||||||
|
set_cfg_bool(&global_settings.peak_meter_performance, value);
|
||||||
|
#endif
|
||||||
|
else if (!strcasecmp(name, "shuffle"))
|
||||||
|
set_cfg_bool(&global_settings.playlist_shuffle, value);
|
||||||
|
else if (!strcasecmp(name, "repeat")) {
|
||||||
|
static char* options[] = {"off", "all", "one"};
|
||||||
|
set_cfg_option(&global_settings.repeat_mode, value, options, 3);
|
||||||
|
}
|
||||||
|
else if (!strcasecmp(name, "resume"))
|
||||||
|
set_cfg_int(&global_settings.resume, value, 0, 3);
|
||||||
|
else if (!strcasecmp(name, "sort case"))
|
||||||
|
set_cfg_bool(&global_settings.sort_case, value);
|
||||||
|
else if (!strcasecmp(name, "show files")) {
|
||||||
|
static char* options[] = {"all", "supported","music"};
|
||||||
|
set_cfg_option(&global_settings.dirfilter, value, options, 3);
|
||||||
|
}
|
||||||
|
else if (!strcasecmp(name, "follow playlist"))
|
||||||
|
set_cfg_bool(&global_settings.browse_current, value);
|
||||||
|
else if (!strcasecmp(name, "play selected"))
|
||||||
|
set_cfg_bool(&global_settings.play_selected, value);
|
||||||
|
else if (!strcasecmp(name, "volume display")) {
|
||||||
|
static char* options[] = {"numeric", "graphic"};
|
||||||
|
set_cfg_option(&global_settings.volume_type, value, options, 2);
|
||||||
|
}
|
||||||
|
else if (!strcasecmp(name, "battery display")) {
|
||||||
|
static char* options[] = {"numeric", "graphic"};
|
||||||
|
set_cfg_option(&global_settings.battery_type, value, options, 2);
|
||||||
|
}
|
||||||
|
else if (!strcasecmp(name, "time format")) {
|
||||||
|
static char* options[] = {"24hour", "12hour"};
|
||||||
|
set_cfg_option(&global_settings.timeformat, value, options, 2);
|
||||||
|
}
|
||||||
|
else if (!strcasecmp(name, "contrast"))
|
||||||
|
set_cfg_int(&global_settings.contrast, value,
|
||||||
|
0, MAX_CONTRAST_SETTING);
|
||||||
|
else if (!strcasecmp(name, "scrollbar"))
|
||||||
|
set_cfg_bool(&global_settings.scrollbar, value);
|
||||||
|
else if (!strcasecmp(name, "scroll speed"))
|
||||||
|
set_cfg_int(&global_settings.scroll_speed, value, 1, 10);
|
||||||
|
else if (!strcasecmp(name, "scan min step")) {
|
||||||
|
static char* options[] =
|
||||||
|
{"1","2","3","4","5","6","8","10","15","20","25"};
|
||||||
|
set_cfg_option(&global_settings.ff_rewind_min_step, value,
|
||||||
|
options, 11);
|
||||||
|
}
|
||||||
|
else if (!strcasecmp(name, "scan accel"))
|
||||||
|
set_cfg_int(&global_settings.ff_rewind_min_step, value, 0, 15);
|
||||||
|
else if (!strcasecmp(name, "scroll delay"))
|
||||||
|
set_cfg_int(&global_settings.scroll_delay, value, 0, 250);
|
||||||
|
else if (!strcasecmp(name, "backlight timeout")) {
|
||||||
|
static char* options[] = {
|
||||||
|
"off","on","1","2","3","4","5","6","7","8","9",
|
||||||
|
"10","15","20","30","45","60","90"};
|
||||||
|
set_cfg_option(&global_settings.backlight_timeout, value,
|
||||||
|
options, 18);
|
||||||
|
}
|
||||||
|
else if (!strcasecmp(name, "backlight when plugged"))
|
||||||
|
set_cfg_bool(&global_settings.backlight_on_when_charging, value);
|
||||||
|
else if (!strcasecmp(name, "antiskip"))
|
||||||
|
set_cfg_int(&global_settings.buffer_margin, value, 0, 7);
|
||||||
|
else if (!strcasecmp(name, "disk spindown"))
|
||||||
|
set_cfg_int(&global_settings.disk_spindown, value, 3, 254);
|
||||||
|
#ifdef HAVE_ATA_POWER_OFF
|
||||||
|
else if (!strcasecmp(name, "disk poweroff"))
|
||||||
|
set_cfg_bool(&global_settings.disk_poweroff, value);
|
||||||
|
#endif
|
||||||
#ifdef HAVE_MAS3587F
|
#ifdef HAVE_MAS3587F
|
||||||
else if (!strcasecmp(name, "loudness"))
|
else if (!strcasecmp(name, "loudness"))
|
||||||
set_sound(value, SOUND_LOUDNESS, &global_settings.loudness);
|
set_sound(value, SOUND_LOUDNESS, &global_settings.loudness);
|
||||||
|
|
@ -810,10 +952,42 @@ bool settings_load_config(char* file)
|
||||||
set_sound(value, SOUND_SUPERBASS, &global_settings.bass_boost);
|
set_sound(value, SOUND_SUPERBASS, &global_settings.bass_boost);
|
||||||
else if (!strcasecmp(name, "auto volume"))
|
else if (!strcasecmp(name, "auto volume"))
|
||||||
set_sound(value, SOUND_AVC, &global_settings.avc);
|
set_sound(value, SOUND_AVC, &global_settings.avc);
|
||||||
|
else if (!strcasecmp(name, "rec mic gain"))
|
||||||
|
set_sound(value, SOUND_MIC_GAIN, &global_settings.rec_mic_gain);
|
||||||
|
else if (!strcasecmp(name, "rec left gain"))
|
||||||
|
set_sound(value, SOUND_LEFT_GAIN, &global_settings.rec_left_gain);
|
||||||
|
else if (!strcasecmp(name, "rec right gain"))
|
||||||
|
set_sound(value, SOUND_RIGHT_GAIN, &global_settings.rec_right_gain);
|
||||||
|
else if (!strcasecmp(name, "rec quality"))
|
||||||
|
set_cfg_int(&global_settings.rec_quality, value, 0, 7);
|
||||||
|
else if (!strcasecmp(name, "rec source")) {
|
||||||
|
static char* options[] = {"mic", "line", "spdif"};
|
||||||
|
set_cfg_option(&global_settings.rec_source, value, options, 3);
|
||||||
|
}
|
||||||
|
else if (!strcasecmp(name, "rec frequency")) {
|
||||||
|
static char* options[] = {"44", "48", "32", "22", "24", "16"};
|
||||||
|
set_cfg_option(&global_settings.rec_frequency, value, options, 6);
|
||||||
|
}
|
||||||
|
else if (!strcasecmp(name, "rec channels")) {
|
||||||
|
static char* options[] = {"stereo", "mono"};
|
||||||
|
set_cfg_option(&global_settings.rec_channels, value, options, 2);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
else if (!strcasecmp(name, "poweroff"))
|
||||||
|
set_cfg_int(&global_settings.poweroff, value, 0, 15);
|
||||||
|
else if (!strcasecmp(name, "battery capacity"))
|
||||||
|
set_cfg_int(&global_settings.battery_capacity, value,
|
||||||
|
1500, BATTERY_CAPACITY_MAX);
|
||||||
|
#ifdef HAVE_CHARGE_CTRL
|
||||||
|
else if (!strcasecmp(name, "deep discharge"))
|
||||||
|
set_cfg_bool(&global_settings.discharge, value);
|
||||||
|
else if (!strcasecmp(name, "trickle charge"))
|
||||||
|
set_cfg_bool(&global_settings.trickle_charge, value);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
close(fd);
|
close(fd);
|
||||||
|
settings_apply();
|
||||||
settings_save();
|
settings_save();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -128,8 +128,8 @@ struct user_settings
|
||||||
int peak_meter_clip_hold; /* hold time for clips */
|
int peak_meter_clip_hold; /* hold time for clips */
|
||||||
bool peak_meter_dbfs; /* show linear or dbfs values */
|
bool peak_meter_dbfs; /* show linear or dbfs values */
|
||||||
bool peak_meter_performance; /* true: high performance, else save energy*/
|
bool peak_meter_performance; /* true: high performance, else save energy*/
|
||||||
unsigned char peak_meter_min; /* range minimum */
|
int peak_meter_min; /* range minimum */
|
||||||
unsigned char peak_meter_max; /* range maximum */
|
int peak_meter_max; /* range maximum */
|
||||||
|
|
||||||
/* show status bar */
|
/* show status bar */
|
||||||
bool statusbar; /* 0=hide, 1=show */
|
bool statusbar; /* 0=hide, 1=show */
|
||||||
|
|
|
||||||
32
apps/tree.c
32
apps/tree.c
|
|
@ -1114,8 +1114,6 @@ bool dirbrowse(char *root)
|
||||||
|
|
||||||
/* wps config file */
|
/* wps config file */
|
||||||
case TREE_ATTR_WPS:
|
case TREE_ATTR_WPS:
|
||||||
snprintf(buf, sizeof buf, "%s/%s",
|
|
||||||
currdir, file->name);
|
|
||||||
wps_load(buf,true);
|
wps_load(buf,true);
|
||||||
storefile(file->name, global_settings.wps_file,
|
storefile(file->name, global_settings.wps_file,
|
||||||
MAX_FILENAME);
|
MAX_FILENAME);
|
||||||
|
|
@ -1123,22 +1121,34 @@ bool dirbrowse(char *root)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TREE_ATTR_CFG:
|
case TREE_ATTR_CFG:
|
||||||
snprintf(buf, sizeof buf, "%s/%s",
|
if (!settings_load_config(buf))
|
||||||
currdir, file->name);
|
break;
|
||||||
settings_load_config(buf);
|
lcd_clear_display();
|
||||||
|
lcd_puts(0,0,str(LANG_SETTINGS_LOADED1));
|
||||||
|
lcd_puts(0,1,str(LANG_SETTINGS_LOADED2));
|
||||||
|
#ifdef HAVE_LCD_BITMAP
|
||||||
|
lcd_update();
|
||||||
|
|
||||||
|
/* maybe we have a new font */
|
||||||
|
lcd_getstringsize("A", &fw, &fh);
|
||||||
|
tree_max_on_screen = (LCD_HEIGHT - MARGIN_Y) / fh;
|
||||||
|
/* make sure cursor is on screen */
|
||||||
|
while ( dircursor > tree_max_on_screen )
|
||||||
|
{
|
||||||
|
dircursor--;
|
||||||
|
dirstart++;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
sleep(HZ/2);
|
||||||
restore = true;
|
restore = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TREE_ATTR_TXT:
|
case TREE_ATTR_TXT:
|
||||||
snprintf(buf, sizeof buf, "%s/%s",
|
|
||||||
currdir, file->name);
|
|
||||||
viewer_run(buf);
|
viewer_run(buf);
|
||||||
restore = true;
|
restore = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TREE_ATTR_LNG:
|
case TREE_ATTR_LNG:
|
||||||
snprintf(buf, sizeof buf, "%s/%s",
|
|
||||||
currdir, file->name);
|
|
||||||
if(!lang_load(buf)) {
|
if(!lang_load(buf)) {
|
||||||
storefile(file->name,
|
storefile(file->name,
|
||||||
global_settings.lang_file,
|
global_settings.lang_file,
|
||||||
|
|
@ -1166,8 +1176,6 @@ bool dirbrowse(char *root)
|
||||||
|
|
||||||
#ifdef HAVE_LCD_BITMAP
|
#ifdef HAVE_LCD_BITMAP
|
||||||
case TREE_ATTR_FONT:
|
case TREE_ATTR_FONT:
|
||||||
snprintf(buf, sizeof buf, "%s/%s",
|
|
||||||
currdir, file->name);
|
|
||||||
font_load(buf);
|
font_load(buf);
|
||||||
storefile(file->name, global_settings.font_file,
|
storefile(file->name, global_settings.font_file,
|
||||||
MAX_FILENAME);
|
MAX_FILENAME);
|
||||||
|
|
@ -1186,8 +1194,6 @@ bool dirbrowse(char *root)
|
||||||
#ifndef SIMULATOR
|
#ifndef SIMULATOR
|
||||||
/* firmware file */
|
/* firmware file */
|
||||||
case TREE_ATTR_MOD:
|
case TREE_ATTR_MOD:
|
||||||
snprintf(buf, sizeof buf, "%s/%s",
|
|
||||||
currdir, file->name);
|
|
||||||
rolo_load(buf);
|
rolo_load(buf);
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -1,24 +1,85 @@
|
||||||
Custom CFG
|
Custom CFG File Format Specification
|
||||||
File Format Specifications
|
|
||||||
|
|
||||||
Description / General Info
|
General Info
|
||||||
--------------------------
|
------------
|
||||||
* The .cfg file is used on both the Rockbox Player and Recorder, in order to
|
The .cfg file is used to load settings from a plain text file. A .cfg file may
|
||||||
load custom settings.
|
reside anywhere on the hard disk. The only restriction is that the filename
|
||||||
* Currently, only sound settings are supported but this will change in the
|
must end in .cfg
|
||||||
future.
|
|
||||||
|
|
||||||
File Location
|
|
||||||
-------------
|
|
||||||
The files may reside anywhere on the hard disk. The only restriction is that
|
|
||||||
the filename must end in .cfg
|
|
||||||
|
|
||||||
Format Rules
|
Format Rules
|
||||||
------------
|
------------
|
||||||
* Each setting must have it's own line.
|
* Format: setting: value
|
||||||
|
* Each setting must be on a separate line.
|
||||||
* Lines starting with # are ignored.
|
* Lines starting with # are ignored.
|
||||||
* If a value is out of the acceptable range for the device, which can vary
|
|
||||||
depending on the model, the value will be set to its default value.
|
Settings (allowed values) [unit]
|
||||||
|
--------------------------------
|
||||||
|
volume (0 - 100)
|
||||||
|
bass (-15 - 15)
|
||||||
|
treble (-15 - 15)
|
||||||
|
balance (-100 - 100)
|
||||||
|
|
||||||
|
shuffle (on, off)
|
||||||
|
repeat (off, all, one)
|
||||||
|
play selected (on, off)
|
||||||
|
resume (off, ask, on)
|
||||||
|
scan min step (1, 2, 3, 4, 5, 6, 8, 10, 15, 20, 25) [seconds]
|
||||||
|
scan accel (0 - 15) [double scan speed every X seconds]
|
||||||
|
antiskip (0 - 7) [seconds]
|
||||||
|
|
||||||
|
sort case (on, off)
|
||||||
|
show files (all, supported, music)
|
||||||
|
follow playlist (on, off)
|
||||||
|
|
||||||
|
scroll speed (1 - 10) [Hz]
|
||||||
|
start delay (0 - 250) [1/10s]
|
||||||
|
scroll step (1 - 112) [pixel]
|
||||||
|
bidir limit (0 - 200) [% of screen width]
|
||||||
|
contrast (0 - 63)
|
||||||
|
backlight timeout (off, on, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
|
||||||
|
15, 20, 30, 45, 60, 90) [seconds]
|
||||||
|
backlight when plugged (on, off)
|
||||||
|
|
||||||
|
disk spindown (3 - 254) [seconds]
|
||||||
|
disk poweroff (on, off)
|
||||||
|
battery capacity (1500 - 2400) [mAh]
|
||||||
|
idle poweroff (off, 1, 2, 3, 4, 5, 6, 7, 8, 9,
|
||||||
|
10, 15, 30, 45, 60) [minutes]
|
||||||
|
|
||||||
|
Recorder-specific settings (allowed values) [unit]
|
||||||
|
---------------------------------------------------
|
||||||
|
loudness (0 - 17)
|
||||||
|
bass boost (0 - 100)
|
||||||
|
auto volume (0=off, 1=2s, 2=4s, 3=8s)
|
||||||
|
|
||||||
|
peak meter release (1 - 126)
|
||||||
|
peak meter hold (off, 200ms, 300ms, 500ms,
|
||||||
|
1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
|
||||||
|
15, 20, 25, 30, 45, 90,
|
||||||
|
2min, 3min, 5min, 10min, 20min, 45min, 90min)
|
||||||
|
peak meter clip hold (on, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
|
||||||
|
15, 20, 25, 30, 45, 60, 90,
|
||||||
|
2min, 3min, 5min, 10min, 20min, 45min, 90min)
|
||||||
|
peak meter busy (on, off)
|
||||||
|
peak meter dbfs (on, off) (on = dbfs, off = linear)
|
||||||
|
peak meter min (0 - 89) [dB] or (0 - 100) [%]
|
||||||
|
peak meter max (0 - 89) [dB] or (0 - 100) [%]
|
||||||
|
|
||||||
|
volume display (graphic, numeric)
|
||||||
|
battery display (graphic, numeric)
|
||||||
|
time format (12hour, 24hour)
|
||||||
|
|
||||||
|
deep discharge (on, off)
|
||||||
|
trickle charge (on, off)
|
||||||
|
|
||||||
|
rec quality (0 - 7) (0=smallest size, 7=highest quality)
|
||||||
|
rec frequency (48, 44, 32, 24, 22, 16) [kHz]
|
||||||
|
rec source (mic, line, spdif)
|
||||||
|
rec channels (mono, stereo)
|
||||||
|
rec mic gain (0 to 15)
|
||||||
|
rec left gain (0 to 15)
|
||||||
|
rec right gain (0 to 15)
|
||||||
|
|
||||||
|
|
||||||
Example File
|
Example File
|
||||||
------------
|
------------
|
||||||
|
|
@ -26,20 +87,9 @@ volume: 70
|
||||||
bass: 11
|
bass: 11
|
||||||
treble: 12
|
treble: 12
|
||||||
balance: 0
|
balance: 0
|
||||||
channels: 0
|
time format: 12hour
|
||||||
loudness: 5
|
volume display: numeric
|
||||||
bass boost: 30
|
show files: supported
|
||||||
auto volume: 0
|
wps: car
|
||||||
|
lang: afrikaans
|
||||||
|
|
||||||
This sets each line to the respective values after it.
|
|
||||||
|
|
||||||
Value ranges
|
|
||||||
------------
|
|
||||||
volume: 0 to 100
|
|
||||||
bass: player: -15 to 15, recorder: -12 to 12
|
|
||||||
treble: player: -15 to 15, recorder: -12 to 12
|
|
||||||
balance: -100 to 100
|
|
||||||
channels: 0=Stereo, 1=Mono, 2=Mono Left, 3=Mono Right
|
|
||||||
loudness: 0 to 17 (recorder only)
|
|
||||||
bass boost: 0 to 100 (recorder only)
|
|
||||||
auto volume: 0=off, 1=2s, 2=4s, 3=8s (recorder only)
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue