summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Heiner <jheiner@rockbox.org>2002-09-05 01:20:10 +0000
committerJustin Heiner <jheiner@rockbox.org>2002-09-05 01:20:10 +0000
commite4a27617c078b527ab5aaf7f53f058b4929baedb (patch)
treeb6c0250f53a4def82a47d9ec6209d1ced588298b
parente07a97ed00c18c53e4ddf64be11f71f10274fa65 (diff)
downloadrockbox-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.c69
-rw-r--r--apps/settings.h2
-rw-r--r--apps/tree.c22
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: