aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/sid/decoder_sid.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-04-28 11:08:29 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-04-28 11:08:29 +0000
commit7681777e32a6c645c2d986f9f70f6de232ae00b1 (patch)
tree7d79d4a60c7dc4605ffbb653748580ea9bf8a70c /src/plugins/Input/sid/decoder_sid.cpp
parent83cfe6146a5fa7e0a310da94bc4e3c4f6370bd1c (diff)
downloadqmmp-7681777e32a6c645c2d986f9f70f6de232ae00b1.tar.gz
qmmp-7681777e32a6c645c2d986f9f70f6de232ae00b1.tar.bz2
qmmp-7681777e32a6c645c2d986f9f70f6de232ae00b1.zip
sid plugin: added config support
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3423 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Input/sid/decoder_sid.cpp')
-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))
{