diff options
author | Jonathan Gordon <rockbox@jdgordon.info> | 2007-01-25 07:19:45 +0000 |
---|---|---|
committer | Jonathan Gordon <rockbox@jdgordon.info> | 2007-01-25 07:19:45 +0000 |
commit | b7588835719b37bb36cfc7f35f646c5b656909b6 (patch) | |
tree | 90f702ccc7409b74439413520f8208413267f28b /apps | |
parent | b77f1217fb6b1bf34baa0da40de3ebf83c3c67c5 (diff) | |
download | rockbox-b7588835719b37bb36cfc7f35f646c5b656909b6.tar.gz rockbox-b7588835719b37bb36cfc7f35f646c5b656909b6.zip |
remove the persistant settings stuff. Load /.rockbox/fixed.cfg after config.cfg automatically instead
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12108 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r-- | apps/settings.c | 72 | ||||
-rw-r--r-- | apps/settings.h | 1 |
2 files changed, 5 insertions, 68 deletions
diff --git a/apps/settings.c b/apps/settings.c index dcc3c8d9d2..302ea58aec 100644 --- a/apps/settings.c +++ b/apps/settings.c | |||
@@ -259,19 +259,11 @@ static int hex_to_rgb(const char* hex) | |||
259 | return 0; | 259 | return 0; |
260 | } | 260 | } |
261 | #endif | 261 | #endif |
262 | #define MAX_PERSISTENT_VARS 8 | 262 | |
263 | struct persistent_vars { | ||
264 | char setting[MAX_FILENAME]; | ||
265 | char value[MAX_FILENAME]; | ||
266 | }; | ||
267 | static struct persistent_vars persistent_vars[MAX_PERSISTENT_VARS]; | ||
268 | static int persistent_vars_count = 0; | ||
269 | bool settings_write_config(char* filename) | 263 | bool settings_write_config(char* filename) |
270 | { | 264 | { |
271 | int i; | 265 | int i; |
272 | int fd; | 266 | int fd; |
273 | bool check_persistent = !strcmp(filename, CONFIGFILE) && | ||
274 | persistent_vars_count; | ||
275 | char value[MAX_PATH]; | 267 | char value[MAX_PATH]; |
276 | fd = open(filename,O_CREAT|O_TRUNC|O_WRONLY); | 268 | fd = open(filename,O_CREAT|O_TRUNC|O_WRONLY); |
277 | if (fd < 0) | 269 | if (fd < 0) |
@@ -282,23 +274,6 @@ bool settings_write_config(char* filename) | |||
282 | { | 274 | { |
283 | if (settings[i].cfg_name == NULL) | 275 | if (settings[i].cfg_name == NULL) |
284 | continue; | 276 | continue; |
285 | if (check_persistent) | ||
286 | { | ||
287 | int j; | ||
288 | bool found = false; | ||
289 | for(j=0; j<persistent_vars_count; j++) | ||
290 | { | ||
291 | if (!strcmp(persistent_vars[j].setting, settings[i].cfg_name)) | ||
292 | { | ||
293 | fdprintf(fd,"~%s: %s\r\n", settings[i].cfg_name, | ||
294 | persistent_vars[j].value); | ||
295 | found = true; | ||
296 | break; | ||
297 | } | ||
298 | } | ||
299 | if (found) | ||
300 | continue; | ||
301 | } | ||
302 | switch (settings[i].flags&F_T_MASK) | 277 | switch (settings[i].flags&F_T_MASK) |
303 | { | 278 | { |
304 | case F_T_INT: | 279 | case F_T_INT: |
@@ -706,7 +681,10 @@ void settings_load(int which) | |||
706 | if (which&SETTINGS_RTC) | 681 | if (which&SETTINGS_RTC) |
707 | read_nvram_data(nvram_buffer,NVRAM_BLOCK_SIZE); | 682 | read_nvram_data(nvram_buffer,NVRAM_BLOCK_SIZE); |
708 | if (which&SETTINGS_HD) | 683 | if (which&SETTINGS_HD) |
684 | { | ||
709 | settings_load_config(CONFIGFILE,false); | 685 | settings_load_config(CONFIGFILE,false); |
686 | settings_load_config(FIXEDSETTINGSFILE,false); | ||
687 | } | ||
710 | } | 688 | } |
711 | 689 | ||
712 | void set_file(char* filename, char* setting, int maxlen) | 690 | void set_file(char* filename, char* setting, int maxlen) |
@@ -747,8 +725,6 @@ bool settings_load_config(const char* file, bool apply) | |||
747 | char* name; | 725 | char* name; |
748 | char* value; | 726 | char* value; |
749 | int i; | 727 | int i; |
750 | bool check_persistent = !strcmp(file, CONFIGFILE); | ||
751 | bool is_persistent = false; | ||
752 | fd = open(file, O_RDONLY); | 728 | fd = open(file, O_RDONLY); |
753 | if (fd < 0) | 729 | if (fd < 0) |
754 | return false; | 730 | return false; |
@@ -757,52 +733,12 @@ bool settings_load_config(const char* file, bool apply) | |||
757 | { | 733 | { |
758 | if (!settings_parseline(line, &name, &value)) | 734 | if (!settings_parseline(line, &name, &value)) |
759 | continue; | 735 | continue; |
760 | if (name[0] == '~') | ||
761 | { | ||
762 | name++; | ||
763 | if (check_persistent && | ||
764 | (persistent_vars_count<MAX_PERSISTENT_VARS)) | ||
765 | { | ||
766 | strcpy(persistent_vars[persistent_vars_count].setting, name); | ||
767 | strcpy(persistent_vars[persistent_vars_count].value, value); | ||
768 | persistent_vars_count++; | ||
769 | is_persistent = true; | ||
770 | } | ||
771 | } | ||
772 | else is_persistent = false; | ||
773 | for(i=0; i<nb_settings; i++) | 736 | for(i=0; i<nb_settings; i++) |
774 | { | 737 | { |
775 | if (settings[i].cfg_name == NULL) | 738 | if (settings[i].cfg_name == NULL) |
776 | continue; | 739 | continue; |
777 | if (!strcasecmp(name,settings[i].cfg_name)) | 740 | if (!strcasecmp(name,settings[i].cfg_name)) |
778 | { | 741 | { |
779 | if (persistent_vars_count && !is_persistent) | ||
780 | { | ||
781 | int j; | ||
782 | struct persistent_vars *p_var, | ||
783 | *p_var_last = &persistent_vars[persistent_vars_count-1]; | ||
784 | for (j=0; j< persistent_vars_count; j++) | ||
785 | { | ||
786 | p_var = &persistent_vars[j]; | ||
787 | if (!strcmp(name,p_var->setting)) | ||
788 | { | ||
789 | if (j+1 == persistent_vars_count) | ||
790 | { | ||
791 | /* simple case, just decrement | ||
792 | persistent_vars_count */ | ||
793 | persistent_vars_count--; | ||
794 | } | ||
795 | /*else move the last persistent var to here */ | ||
796 | else | ||
797 | { | ||
798 | strcpy(p_var->setting, p_var_last->setting); | ||
799 | strcpy(p_var->value, p_var_last->value); | ||
800 | persistent_vars_count--; | ||
801 | } | ||
802 | break; | ||
803 | } | ||
804 | } | ||
805 | } | ||
806 | switch (settings[i].flags&F_T_MASK) | 742 | switch (settings[i].flags&F_T_MASK) |
807 | { | 743 | { |
808 | case F_T_INT: | 744 | case F_T_INT: |
diff --git a/apps/settings.h b/apps/settings.h index 8a495a0fee..7d30dfa5d7 100644 --- a/apps/settings.h +++ b/apps/settings.h | |||
@@ -57,6 +57,7 @@ | |||
57 | #define FMPRESET_PATH ROCKBOX_DIR "/fmpresets" | 57 | #define FMPRESET_PATH ROCKBOX_DIR "/fmpresets" |
58 | 58 | ||
59 | #define CONFIGFILE ROCKBOX_DIR "/config.cfg" | 59 | #define CONFIGFILE ROCKBOX_DIR "/config.cfg" |
60 | #define FIXEDSETTINGSFILE ROCKBOX_DIR "/fixed.cfg" | ||
60 | 61 | ||
61 | #define MAX_FILENAME 20 | 62 | #define MAX_FILENAME 20 |
62 | 63 | ||