aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/Input/sid/decoder_sid.cpp18
-rw-r--r--src/plugins/Input/sid/decoder_sid.h1
2 files changed, 19 insertions, 0 deletions
diff --git a/src/plugins/Input/sid/decoder_sid.cpp b/src/plugins/Input/sid/decoder_sid.cpp
index 320fba03d..89e05feac 100644
--- a/src/plugins/Input/sid/decoder_sid.cpp
+++ b/src/plugins/Input/sid/decoder_sid.cpp
@@ -26,6 +26,7 @@
#include <sidplayfp/builders/residfp.h>
#include <sidplayfp/SidInfo.h>
#include <sidplayfp/SidTuneInfo.h>
+#include <sidplayfp/SidDatabase.h>
#include "decoder_sid.h"
// Decoder class
@@ -106,6 +107,21 @@ bool DecoderSID::initialize()
configure(44100, 2);
qDebug("DecoderSID: initialize succes");
+
+
+ char md5[SidTune::MD5_LENGTH];
+ tune->createMD5(md5);
+
+ SidDatabase database;
+
+ database.open("/home/user/.qmmp/Songlengths.txt");
+
+
+
+ qDebug("length = %d", database.length(md5, track));
+ m_length = database.length(md5, track);
+
+
return true;
}
@@ -126,5 +142,7 @@ int DecoderSID::bitrate()
qint64 DecoderSID::read(char *data, qint64 size)
{
+ if(m_player->time() > m_length)
+ return 0;
return m_player->play((short *)data, size/2) * 2;
}
diff --git a/src/plugins/Input/sid/decoder_sid.h b/src/plugins/Input/sid/decoder_sid.h
index 9f11c5d21..04c2cbaa1 100644
--- a/src/plugins/Input/sid/decoder_sid.h
+++ b/src/plugins/Input/sid/decoder_sid.h
@@ -45,6 +45,7 @@ private:
qint64 m_totalTime;
QString m_url;
sidplayfp *m_player;
+ int m_length;
};
#endif // DECODER_SID_H