diff options
| author | Stéphane Doyon <s.doyon@videotron.ca> | 2008-04-20 14:12:28 +0000 |
|---|---|---|
| committer | Stéphane Doyon <s.doyon@videotron.ca> | 2008-04-20 14:12:28 +0000 |
| commit | b2aa86a785ce56daa8ea0550e4dd12bb6884e08c (patch) | |
| tree | 8fdccff25a78fd7d010e0500fce8f71df6d7256f /apps/settings.c | |
| parent | dbffb91706dd6ed13e49f3f17cce1f379e2da7e9 (diff) | |
| download | rockbox-b2aa86a785ce56daa8ea0550e4dd12bb6884e08c.zip rockbox-b2aa86a785ce56daa8ea0550e4dd12bb6884e08c.tar.gz rockbox-b2aa86a785ce56daa8ea0550e4dd12bb6884e08c.tar.bz2 rockbox-b2aa86a785ce56daa8ea0550e4dd12bb6884e08c.tar.xz | |
FS#7980: Select default option in an option list
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17188 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/settings.c')
| -rw-r--r-- | apps/settings.c | 48 |
1 files changed, 25 insertions, 23 deletions
diff --git a/apps/settings.c b/apps/settings.c index 25f17d0..58d9220 100644 --- a/apps/settings.c +++ b/apps/settings.c @@ -941,33 +941,35 @@ void settings_apply(bool read_disk) /* * reset all settings to their default value */ -void settings_reset(void) +void reset_setting(const struct settings_list *setting, void *var) +{ + switch (setting->flags&F_T_MASK) + { + case F_T_INT: + case F_T_UINT: + if (setting->flags&F_DEF_ISFUNC) + *(int*)var = setting->default_val.func(); + else if (setting->flags&F_T_SOUND) + *(int*)var = sound_default(setting->sound_setting->setting); + else *(int*)var = setting->default_val.int_; + break; + case F_T_BOOL: + *(bool*)var = setting->default_val.bool_; + break; + case F_T_CHARPTR: + case F_T_UCHARPTR: + strncpy((char*)var, setting->default_val.charptr, + setting->filename_setting->max_len); + break; + } +} + +void settings_reset(void) { int i; for(i=0; i<nb_settings; i++) - { - switch (settings[i].flags&F_T_MASK) - { - case F_T_INT: - case F_T_UINT: - if (settings[i].flags&F_DEF_ISFUNC) - *(int*)settings[i].setting = settings[i].default_val.func(); - else if (settings[i].flags&F_T_SOUND) - *(int*)settings[i].setting = - sound_default(settings[i].sound_setting->setting); - else *(int*)settings[i].setting = settings[i].default_val.int_; - break; - case F_T_BOOL: - *(bool*)settings[i].setting = settings[i].default_val.bool_; - break; - case F_T_CHARPTR: - case F_T_UCHARPTR: - strncpy((char*)settings[i].setting, - settings[i].default_val.charptr,MAX_FILENAME); - break; - } - } /* for(...) */ + reset_setting(&settings[i], settings[i].setting); #if defined (HAVE_RECORDING) && CONFIG_CODEC == SWCODEC enc_global_settings_reset(); #endif |