summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2003-02-14 01:49:50 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2003-02-14 01:49:50 +0000
commitebe0752469021dfb09f2fb2b0752e192833e9f23 (patch)
treebd7a31557614be6a258b18a9afbd51c36ad9e2b0
parentcc9b62f6b2814cc29b104f9a7b5635cbeb104cc0 (diff)
downloadrockbox-ebe0752469021dfb09f2fb2b0752e192833e9f23.zip
rockbox-ebe0752469021dfb09f2fb2b0752e192833e9f23.tar.gz
rockbox-ebe0752469021dfb09f2fb2b0752e192833e9f23.tar.bz2
rockbox-ebe0752469021dfb09f2fb2b0752e192833e9f23.tar.xz
Correct saving of channel config (patch by Remo Hofer)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3252 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/main.c3
-rw-r--r--apps/settings.c6
-rw-r--r--firmware/export/mpeg.h2
-rw-r--r--firmware/mpeg.c9
4 files changed, 13 insertions, 7 deletions
diff --git a/apps/main.c b/apps/main.c
index fd9b376..5e14297 100644
--- a/apps/main.c
+++ b/apps/main.c
@@ -169,7 +169,8 @@ void init(void)
global_settings.balance,
global_settings.loudness,
global_settings.bass_boost,
- global_settings.avc );
+ global_settings.avc,
+ global_settings.channel_config );
status_init();
usb_start_monitoring();
diff --git a/apps/settings.c b/apps/settings.c
index 200f9e1..bc78e82 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -320,8 +320,9 @@ int settings_save( void )
config_block[0x10] = (unsigned char)
((global_settings.ff_rewind_min_step & 15) << 4 |
(global_settings.ff_rewind_accel & 15));
- config_block[0x11] = (unsigned char)(global_settings.avc ||
- global_settings.channel_config << 2);
+ config_block[0x11] = (unsigned char)
+ ((global_settings.avc & 0x03) |
+ ((global_settings.channel_config & 0x03) << 2));
memcpy(&config_block[0x12], &global_settings.resume_index, 4);
memcpy(&config_block[0x16], &global_settings.resume_offset, 4);
@@ -448,6 +449,7 @@ void settings_apply(void)
mpeg_sound_set(SOUND_TREBLE, global_settings.treble);
mpeg_sound_set(SOUND_BALANCE, global_settings.balance);
mpeg_sound_set(SOUND_VOLUME, global_settings.volume);
+ mpeg_sound_set(SOUND_CHANNELS, global_settings.channel_config);
#ifdef HAVE_MAS3587F
mpeg_sound_set(SOUND_LOUDNESS, global_settings.loudness);
diff --git a/firmware/export/mpeg.h b/firmware/export/mpeg.h
index 75ec710..9b7388c 100644
--- a/firmware/export/mpeg.h
+++ b/firmware/export/mpeg.h
@@ -56,7 +56,7 @@ struct mpeg_debug
};
void mpeg_init(int volume, int bass, int treble, int balance,
- int loudness, int bass_boost, int avc);
+ int loudness, int bass_boost, int avc, int channel_config);
void mpeg_play(int offset);
void mpeg_stop(void);
void mpeg_pause(void);
diff --git a/firmware/mpeg.c b/firmware/mpeg.c
index 5335c3d..d86b51f 100644
--- a/firmware/mpeg.c
+++ b/firmware/mpeg.c
@@ -2809,10 +2809,12 @@ static void mpeg_thread(void)
}
#endif
-void mpeg_init(int volume, int bass, int treble, int balance, int loudness, int bass_boost, int avc)
+void mpeg_init(int volume, int bass, int treble, int balance, int loudness,
+ int bass_boost, int avc, int channel_config)
{
#ifdef SIMULATOR
- volume = bass = treble = balance = loudness = bass_boost = avc;
+ volume = bass = treble = balance = loudness
+ = bass_boost = avc = channel_config;
create_thread(mpeg_thread, mpeg_stack,
sizeof(mpeg_stack), mpeg_thread_name);
#else
@@ -2893,7 +2895,7 @@ void mpeg_init(int volume, int bass, int treble, int balance, int loudness, int
mas_writereg(MAS_REG_KPRESCALE, 0xe9400);
dac_config(0x04); /* DAC on, all else off */
- mpeg_sound_channel_config(MPEG_SOUND_STEREO);
+ mpeg_sound_channel_config(channel_config);
#endif
#ifdef HAVE_MAS3587F
@@ -2910,6 +2912,7 @@ void mpeg_init(int volume, int bass, int treble, int balance, int loudness, int
mpeg_sound_set(SOUND_VOLUME, volume);
#ifdef HAVE_MAS3587F
+ mpeg_sound_channel_config(channel_config);
mpeg_sound_set(SOUND_LOUDNESS, loudness);
mpeg_sound_set(SOUND_SUPERBASS, bass_boost);
mpeg_sound_set(SOUND_AVC, avc);