diff options
author | Alder Hornbridge <ahornbridge@yahoo.co.in> | 2010-10-27 21:16:24 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2010-10-27 21:16:24 +0200 |
commit | 4e945169127fcd8aae418cc3e6a05fc011963492 (patch) | |
tree | 185bab44dcfbff8a2e862cc859be9cb20ebef1e2 /src/decoder/sidplay_decoder_plugin.cxx | |
parent | dadb6747adc88495e2c10daf26fdc0509a0d5dc0 (diff) | |
download | mpd-4e945169127fcd8aae418cc3e6a05fc011963492.tar.gz mpd-4e945169127fcd8aae418cc3e6a05fc011963492.tar.xz mpd-4e945169127fcd8aae418cc3e6a05fc011963492.zip |
decoder/sidplay: play monaural SID tunes in mono
Diffstat (limited to 'src/decoder/sidplay_decoder_plugin.cxx')
-rw-r--r-- | src/decoder/sidplay_decoder_plugin.cxx | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/decoder/sidplay_decoder_plugin.cxx b/src/decoder/sidplay_decoder_plugin.cxx index a2eb21ae4..dad0759e0 100644 --- a/src/decoder/sidplay_decoder_plugin.cxx +++ b/src/decoder/sidplay_decoder_plugin.cxx @@ -201,6 +201,7 @@ static void sidplay_file_decode(struct decoder *decoder, const char *path_fs) { int ret; + int channels; /* load the tune */ @@ -256,7 +257,7 @@ sidplay_file_decode(struct decoder *decoder, const char *path_fs) config.clockSpeed = SID2_CLOCK_CORRECT; config.frequency = 48000; config.optimisation = SID2_DEFAULT_OPTIMISATION; - config.playback = sid2_stereo; + config.precision = 16; config.sidDefault = SID2_MOS6581; config.sidEmulation = &builder; @@ -267,6 +268,13 @@ sidplay_file_decode(struct decoder *decoder, const char *path_fs) #else config.sampleFormat = SID2_BIG_SIGNED; #endif + if (tune.isStereo()) { + config.playback = sid2_stereo; + channels = 2; + } else { + config.playback = sid2_mono; + channels = 1; + } iret = player.config(config); if (iret != 0) { @@ -277,7 +285,7 @@ sidplay_file_decode(struct decoder *decoder, const char *path_fs) /* initialize the MPD decoder */ struct audio_format audio_format; - audio_format_init(&audio_format, 48000, SAMPLE_FORMAT_S16, 2); + audio_format_init(&audio_format, 48000, SAMPLE_FORMAT_S16, channels); assert(audio_format_valid(&audio_format)); decoder_initialized(decoder, &audio_format, true, (float)song_len); |