diff options
| author | Justin Heiner <jheiner@rockbox.org> | 2002-09-05 01:20:10 +0000 |
|---|---|---|
| committer | Justin Heiner <jheiner@rockbox.org> | 2002-09-05 01:20:10 +0000 |
| commit | e4a27617c078b527ab5aaf7f53f058b4929baedb (patch) | |
| tree | b6c0250f53a4def82a47d9ec6209d1ced588298b | |
| parent | e07a97ed00c18c53e4ddf64be11f71f10274fa65 (diff) | |
| download | rockbox-e4a27617c078b527ab5aaf7f53f058b4929baedb.zip rockbox-e4a27617c078b527ab5aaf7f53f058b4929baedb.tar.gz rockbox-e4a27617c078b527ab5aaf7f53f058b4929baedb.tar.bz2 rockbox-e4a27617c078b527ab5aaf7f53f058b4929baedb.tar.xz | |
The beginnings of loadable EQ's from the tree. Ifdef'd as CUSTOM_EQ
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2177 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | apps/settings.c | 69 | ||||
| -rw-r--r-- | apps/settings.h | 2 | ||||
| -rw-r--r-- | apps/tree.c | 22 |
3 files changed, 93 insertions, 0 deletions
diff --git a/apps/settings.c b/apps/settings.c index fa9ba38..1a020c3 100644 --- a/apps/settings.c +++ b/apps/settings.c @@ -394,6 +394,75 @@ void settings_load(void) #endif } +#ifdef CUSTOM_EQ +/ * + * Loads a .eq file + * / +bool settings_load_eq(char* file) +{ + char buffer[128]; + char buf_set[16]; + char buf_val[8]; + int fd; + int i; + unsigned int j; + int d = 0; + int vtype = 0; + + fd = open(file, O_RDONLY); + + if (-1 != fd) + { + int numread = read(fd, buffer, sizeof(buffer) - 1); + + if (numread > 0) { + buffer[numread] = 0; + for(i=0;i<numread;i++) { + switch(buffer[i]) { + case '[': + vtype = 1; + buf_set[0] = 0; + d = 0; + break; + case ']': + vtype = 2; + buf_set[d] = 0; + buf_val[0] = 0; + d = 0; + break; + case '#': + buf_val[d] = 0; + vtype = 3; + break; + default: + switch(vtype) { + case 1: + buf_set[d++] = buffer[i]; + break; + case 2: + buf_val[d++] = buffer[i]; + break; + case 3: + if(strcasecmp(buf_set,"volume")) + { + global_settings.volume = 0; + for(j=0;j<strlen(buf_val);j++) + global_settings.volume = global_settings.volume * + 10 + (buf_val[j] - '0'); + } + vtype = 0; + break; + } + break; + } + } + } + close(fd); + } + return(false); +} +#endif + /* * reset all settings to their default value */ diff --git a/apps/settings.h b/apps/settings.h index 4cd7a5f..353b50a 100644 --- a/apps/settings.h +++ b/apps/settings.h @@ -105,6 +105,8 @@ void settings_load(void); void settings_reset(void); void settings_display(void); +bool settings_load_eq(char* file); + void set_bool(char* string, bool* variable ); void set_option(char* string, int* variable, char* options[], int numoptions ); void set_int(char* string, diff --git a/apps/tree.c b/apps/tree.c index a190d78..73c75ba 100644 --- a/apps/tree.c +++ b/apps/tree.c @@ -132,6 +132,9 @@ extern unsigned char bitmap_icons_6x8[LastIcon][6]; #define TREE_ATTR_M3U 0x80 /* playlist */ #define TREE_ATTR_WPS 0x100 /* wps config file */ #define TREE_ATTR_MOD 0x200 /* firmware file */ +#ifdef CUSTOM_EQ +#define TREE_ATTR_EQ 0x300 /* EQ config file */ +#endif #define TREE_ATTR_MASK 0xffd0 /* which bits tree.c uses (above + DIR) */ static int build_playlist(int start_index) @@ -239,6 +242,10 @@ static int showdir(char *path, int start) dptr->attr |= TREE_ATTR_MPA; else if (!strcasecmp(&entry->d_name[len-4], ".m3u")) dptr->attr |= TREE_ATTR_M3U; +#ifdef CUSTOM_EQ + else if (!strcasecmp(&entry->d_name[len-3], ".eq")) + dptr->attr |= TREE_ATTR_EQ; +#endif else if (!strcasecmp(&entry->d_name[len-4], ".wps")) dptr->attr |= TREE_ATTR_WPS; #ifdef HAVE_RECORDER_KEYPAD @@ -320,6 +327,12 @@ static int showdir(char *path, int start) icon_type = Wps; break; +#ifdef CUSTOM_EQ + case TREE_ATTR_EQ: + icon_type = Wps; + break; +#endif + case TREE_ATTR_MOD: icon_type = Mod_Ajz; break; @@ -608,6 +621,15 @@ bool dirbrowse(char *root) restore = true; break; +#ifdef CUSTOM_EQ + case TREE_ATTR_EQ: + snprintf(buf, sizeof buf, "%s/%s", + currdir, file->name); + settings_load_eq(buf); + restore = true; + break; +#endif + #ifndef SIMULATOR /* firmware file */ case TREE_ATTR_MOD: |