aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/sid
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/Input/sid')
-rw-r--r--src/plugins/Input/sid/decoder_sid.cpp31
1 files changed, 25 insertions, 6 deletions
diff --git a/src/plugins/Input/sid/decoder_sid.cpp b/src/plugins/Input/sid/decoder_sid.cpp
index bd15965b9..e038c8e96 100644
--- a/src/plugins/Input/sid/decoder_sid.cpp
+++ b/src/plugins/Input/sid/decoder_sid.cpp
@@ -18,7 +18,8 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
-#include <QFile>
+#include <QFileInfo>
+#include <QSettings>
#include <sidplayfp/sidplayfp.h>
#include <sidplayfp/SidTune.h>
#include <sidplayfp/sidbuilder.h>
@@ -84,16 +85,34 @@ bool DecoderSID::initialize()
metadata.insert(Qmmp::URL, m_url);
addMetaData(metadata);
- sidbuilder *rs = new ReSIDfpBuilder("ReSIDfp builder");
+ //read settings
+ QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
+ settings.beginGroup("SID");
+ settings.value("use_hvsc", false).toBool();
+ QString hvsc_default_path = QFileInfo(Qmmp::configFile()).absolutePath() + "/Songlengths.txt";
+ settings.value("hvsc_path", hvsc_default_path).toString();
+
+ sidbuilder *rs = 0;
+ if(settings.value("engine", "residfp").toString() == "residfp")
+ {
+ rs = new ReSIDfpBuilder("ReSIDfp builder");
+ qDebug("DecoderSID: using ReSIDfp emulation");
+ }
+ else
+ {
+ rs = new ReSIDBuilder("ReSID builder");
+ qDebug("DecoderSID: using ReSID emulation");
+ }
rs->create(m_player->info().maxsids());
SidConfig cfg = m_player->config();
-
- cfg.frequency = 44100;
- cfg.samplingMethod = SidConfig::INTERPOLATE;
+ cfg.frequency = settings.value("sample_rate", 44100).toInt();
+ int sm = settings.value("resampling_method", SidConfig::INTERPOLATE).toInt();
+ cfg.samplingMethod = (SidConfig::sampling_method_t) sm;
cfg.playback = SidConfig::STEREO;
cfg.sidEmulation = rs;
- cfg.fastSampling = false;
+ cfg.fastSampling = settings.value("fast_resampling", false).toBool();
+ settings.endGroup();
if(!m_player->config(cfg))
{