summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjörn Stenberg <bjorn@haxx.se>2002-06-27 00:20:00 +0000
committerBjörn Stenberg <bjorn@haxx.se>2002-06-27 00:20:00 +0000
commitf80d8a704d7955ec2c1cca41ebc5975130e69f64 (patch)
tree8165095647f0dc71a3f856a79c94f8952b0a727e
parent2d98ae3d03b128b6449f388134aefbd56daede3d (diff)
downloadrockbox-f80d8a704d7955ec2c1cca41ebc5975130e69f64.zip
rockbox-f80d8a704d7955ec2c1cca41ebc5975130e69f64.tar.gz
rockbox-f80d8a704d7955ec2c1cca41ebc5975130e69f64.tar.bz2
rockbox-f80d8a704d7955ec2c1cca41ebc5975130e69f64.tar.xz
Moved settings.c/h to apps/
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1215 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/main.c4
-rw-r--r--apps/settings.c103
-rw-r--r--apps/settings.h86
-rw-r--r--firmware/backlight.c10
-rw-r--r--firmware/backlight.h1
-rw-r--r--firmware/mpeg.c10
-rw-r--r--firmware/mpeg.h2
7 files changed, 206 insertions, 10 deletions
diff --git a/apps/main.c b/apps/main.c
index 5821ee8..6cf99d7 100644
--- a/apps/main.c
+++ b/apps/main.c
@@ -103,7 +103,9 @@ void init(void)
backlight_init();
button_init();
- mpeg_init();
+ mpeg_init( DEFAULT_VOLUME_SETTING,
+ DEFAULT_BASS_SETTING,
+ DEFAULT_TREBLE_SETTING );
}
int main(void)
diff --git a/apps/settings.c b/apps/settings.c
new file mode 100644
index 0000000..f6566f4
--- /dev/null
+++ b/apps/settings.c
@@ -0,0 +1,103 @@
+/***************************************************************************
+ * __________ __ ___.
+ * Open \______ \ ____ ____ | | _\_ |__ _______ ___
+ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+ * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+ * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+ * \/ \/ \/ \/ \/
+ * $Id$
+ *
+ * Copyright (C) 2002 by wavey@wavey.org
+ *
+ * All files in this archive are subject to the GNU General Public License.
+ * See the file COPYING in the source tree root for full license agreement.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ****************************************************************************/
+
+#include <stdio.h>
+#include "config.h"
+#include "settings.h"
+#include "disk.h"
+#include "panic.h"
+#include "debug.h"
+
+struct user_settings global_settings;
+
+/*
+ * persist all runtime user settings to disk
+ */
+int persist_all_settings( void )
+{
+ return 1;
+}
+
+/*
+ * persist all the playlist information to disk
+ */
+int persist_all_playlist_info( void )
+{
+ return 1;
+}
+
+/*
+ * load settings from disk
+ */
+void reload_all_settings( struct user_settings *settings )
+{
+ DEBUGF( "reload_all_settings()\n" );
+
+ /* this is a TEMP stub version */
+
+ /* populate settings with default values */
+
+ reset_settings( settings );
+}
+
+/*
+ * reset all settings to their default value
+ */
+void reset_settings( struct user_settings *settings ) {
+
+ DEBUGF( "reset_settings()\n" );
+
+ settings->volume = DEFAULT_VOLUME_SETTING;
+ settings->balance = DEFAULT_BALANCE_SETTING;
+ settings->bass = DEFAULT_BASS_SETTING;
+ settings->treble = DEFAULT_TREBLE_SETTING;
+ settings->loudness = DEFAULT_LOUDNESS_SETTING;
+ settings->bass_boost = DEFAULT_BASS_BOOST_SETTING;
+ settings->contrast = DEFAULT_CONTRAST_SETTING;
+ settings->poweroff = DEFAULT_POWEROFF_SETTING;
+ settings->backlight = DEFAULT_BACKLIGHT_SETTING;
+ settings->wps_display = DEFAULT_WPS_DISPLAY;
+}
+
+
+/*
+ * dump the list of current settings
+ */
+void display_current_settings( struct user_settings *settings )
+{
+#ifdef DEBUG
+ DEBUGF( "\ndisplay_current_settings()\n" );
+
+ DEBUGF( "\nvolume:\t\t%d\nbalance:\t%d\nbass:\t\t%d\ntreble:\t\t%d\nloudness:\t%d\nbass boost:\t%d\n",
+ settings->volume,
+ settings->balance,
+ settings->bass,
+ settings->treble,
+ settings->loudness,
+ settings->bass_boost );
+
+ DEBUGF( "contrast:\t%d\npoweroff:\t%d\nbacklight:\t%d\n",
+ settings->contrast,
+ settings->poweroff,
+ settings->backlight );
+#else
+ /* Get rid of warning */
+ settings = settings;
+#endif
+}
diff --git a/apps/settings.h b/apps/settings.h
new file mode 100644
index 0000000..b4a8fde
--- /dev/null
+++ b/apps/settings.h
@@ -0,0 +1,86 @@
+/***************************************************************************
+ * __________ __ ___.
+ * Open \______ \ ____ ____ | | _\_ |__ _______ ___
+ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+ * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+ * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+ * \/ \/ \/ \/ \/
+ * $Id$
+ *
+ * Copyright (C) 2002 by wavey@wavey.org
+ *
+ * All files in this archive are subject to the GNU General Public License.
+ * See the file COPYING in the source tree root for full license agreement.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ****************************************************************************/
+
+#ifndef __SETTINGS_H__
+#define __SETTINGS_H__
+
+#include <stdbool.h>
+
+/* data structures */
+
+#define RESUME_NONE 0
+#define RESUME_SONG 1 /* resume song at startup */
+#define RESUME_PLAYLIST 2 /* resume playlist at startup */
+
+struct user_settings
+{
+ /* audio settings */
+
+ int volume; /* audio output volume: 0-100 0=off 100=max */
+ int balance; /* stereo balance: 0-100 0=left 50=bal 100=right */
+ int bass; /* bass eq: 0-100 0=off 100=max */
+ int treble; /* treble eq: 0-100 0=low 100=high */
+ int loudness; /* loudness eq: 0-100 0=off 100=max */
+ int bass_boost; /* bass boost eq: 0-100 0=off 100=max */
+
+ /* device settings */
+
+ int contrast; /* lcd contrast: 0-100 0=low 100=high */
+ int poweroff; /* power off timer: 0-100 0=never:each 1% = 60 secs */
+ int backlight; /* backlight off timer: 0-100 0=never:each 1% = 10 secs */
+
+ /* resume settings */
+
+ int resume; /* power-on song resume: 0=no. 1=yes song. 2=yes pl */
+ int track_time; /* number of seconds into the track to resume */
+
+ /* misc options */
+
+ int loop_playlist; /* do we return to top of playlist at end? */
+ bool mp3filter;
+
+ /* while playing screen settings */
+ int wps_display;
+
+};
+
+/* prototypes */
+
+int persist_all_settings( void );
+void reload_all_settings( struct user_settings *settings );
+void reset_settings( struct user_settings *settings );
+void display_current_settings( struct user_settings *settings );
+
+/* global settings */
+extern struct user_settings global_settings;
+
+/* system defines */
+
+#define DEFAULT_VOLUME_SETTING 70
+#define DEFAULT_BALANCE_SETTING 50
+#define DEFAULT_BASS_SETTING 50
+#define DEFAULT_TREBLE_SETTING 50
+#define DEFAULT_LOUDNESS_SETTING 0
+#define DEFAULT_BASS_BOOST_SETTING 0
+#define DEFAULT_CONTRAST_SETTING 0
+#define DEFAULT_POWEROFF_SETTING 0
+#define DEFAULT_BACKLIGHT_SETTING 5
+#define DEFAULT_WPS_DISPLAY 0
+
+#endif /* __SETTINGS_H__ */
diff --git a/firmware/backlight.c b/firmware/backlight.c
index 729b22b..e47a58a 100644
--- a/firmware/backlight.c
+++ b/firmware/backlight.c
@@ -24,7 +24,6 @@
#include "i2c.h"
#include "debug.h"
#include "rtc.h"
-#include "settings.h"
#define BACKLIGHT_ON 1
#define BACKLIGHT_OFF 2
@@ -34,6 +33,7 @@ static char backlight_stack[0x100];
static struct event_queue backlight_queue;
static int backlight_timer;
+static int backlight_timeout = 5;
void backlight_thread(void)
{
@@ -45,7 +45,7 @@ void backlight_thread(void)
switch(ev.id)
{
case BACKLIGHT_ON:
- backlight_timer = HZ*global_settings.backlight;
+ backlight_timer = HZ*backlight_timeout;
if(backlight_timer)
{
#ifdef HAVE_RTC
@@ -76,6 +76,12 @@ void backlight_off(void)
queue_post(&backlight_queue, BACKLIGHT_OFF, NULL);
}
+void backlight_time(int seconds)
+{
+ backlight_timeout = seconds;
+ backlight_on();
+}
+
void backlight_tick(void)
{
if(backlight_timer)
diff --git a/firmware/backlight.h b/firmware/backlight.h
index 2a59800..dca1f21 100644
--- a/firmware/backlight.h
+++ b/firmware/backlight.h
@@ -23,5 +23,6 @@ void backlight_init(void);
void backlight_on(void);
void backlight_off(void);
void backlight_tick(void);
+void backlight_time(int seconds);
#endif
diff --git a/firmware/mpeg.c b/firmware/mpeg.c
index 31e50ca..8523e7f 100644
--- a/firmware/mpeg.c
+++ b/firmware/mpeg.c
@@ -27,7 +27,6 @@
#include "thread.h"
#include "panic.h"
#include "file.h"
-#include "settings.h"
#include "id3.h"
#define MPEG_STACK_SIZE 0x2000
@@ -672,7 +671,7 @@ void mpeg_treble(int percent)
#endif
}
-void mpeg_init(void)
+void mpeg_init(int volume, int bass, int treble)
{
#ifdef ARCHOS_RECORDER
int rc;
@@ -737,8 +736,7 @@ void mpeg_init(void)
dac_config(0x04); /* DAC on, all else off */
#endif
- mpeg_bass(DEFAULT_BASS_SETTING);
- mpeg_treble(DEFAULT_TREBLE_SETTING);
- mpeg_volume(DEFAULT_VOLUME_SETTING);
-
+ mpeg_bass(bass);
+ mpeg_treble(treble);
+ mpeg_volume(volume);
}
diff --git a/firmware/mpeg.h b/firmware/mpeg.h
index 063ab3f..908eabc 100644
--- a/firmware/mpeg.h
+++ b/firmware/mpeg.h
@@ -19,7 +19,7 @@
#ifndef _MPEG_H_
#define _MPEG_H_
-void mpeg_init(void);
+void mpeg_init(int volume, int bass, int treble);
void mpeg_play(char* trackname);
void mpeg_stop(void);
void mpeg_pause(void);