diff options
Diffstat (limited to 'src/plugins/Input')
| -rw-r--r-- | src/plugins/Input/sid/decoder_sid.cpp | 18 | ||||
| -rw-r--r-- | src/plugins/Input/sid/decoder_sid.h | 1 |
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 |
