diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2009-08-23 18:19:23 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2009-08-23 18:19:23 +0000 |
| commit | 0661e2522ecfe2b9bc2125b0cef23d787c0b56e8 (patch) | |
| tree | acfdf47a6d0287b6842a04314ebcb0de6985272c /src/plugins | |
| parent | abb8c72df21ffd84ed511a06daf0764dae607457 (diff) | |
| download | qmmp-0661e2522ecfe2b9bc2125b0cef23d787c0b56e8.tar.gz qmmp-0661e2522ecfe2b9bc2125b0cef23d787c0b56e8.tar.bz2 qmmp-0661e2522ecfe2b9bc2125b0cef23d787c0b56e8.zip | |
fixed cue parsing, fixed jack
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1152 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins')
| -rw-r--r-- | src/plugins/Input/cue/cueparser.cpp | 5 | ||||
| -rw-r--r-- | src/plugins/Input/flac/cueparser.cpp | 11 | ||||
| -rw-r--r-- | src/plugins/Input/wavpack/cueparser.cpp | 11 | ||||
| -rw-r--r-- | src/plugins/Output/jack/outputjack.cpp | 2 |
4 files changed, 19 insertions, 10 deletions
diff --git a/src/plugins/Input/cue/cueparser.cpp b/src/plugins/Input/cue/cueparser.cpp index 3b4053867..34a7c74f6 100644 --- a/src/plugins/Input/cue/cueparser.cpp +++ b/src/plugins/Input/cue/cueparser.cpp @@ -42,6 +42,7 @@ CUEParser::CUEParser(const QString &fileName) QTextCodec *codec = QTextCodec::codecForName(settings.value("CUE/encoding","ISO-8859-1").toByteArray ()); textStream.setCodec(codec); QString artist; + bool skip_index = FALSE; while (!textStream.atEnd()) { QString line = textStream.readLine().trimmed(); @@ -81,13 +82,15 @@ CUEParser::CUEParser(const QString &fileName) m_infoList << info; m_offsets << 0; m_files << m_filePath; + skip_index = FALSE; } else if (words[0] == "INDEX") { - if (m_infoList.isEmpty() || words[1] != "01") + if (m_infoList.isEmpty() || skip_index) continue; m_infoList.last ().setLength(getLength(words[2])); m_offsets.last() = getLength(words[2]); + skip_index = (words[1] == "01"); //use 01 index only } else if (words[0] == "REM") { diff --git a/src/plugins/Input/flac/cueparser.cpp b/src/plugins/Input/flac/cueparser.cpp index f2582cbec..873beb7b5 100644 --- a/src/plugins/Input/flac/cueparser.cpp +++ b/src/plugins/Input/flac/cueparser.cpp @@ -32,6 +32,7 @@ CUEParser::CUEParser(const QByteArray &array, const QString &fileName) textStream.setCodec("UTF-8"); m_filePath = fileName; QString artist; + bool skip_index = FALSE; while (!textStream.atEnd()) { QString line = textStream.readLine().trimmed(); @@ -66,13 +67,15 @@ CUEParser::CUEParser(const QByteArray &array, const QString &fileName) info.setMetaData(Qmmp::TRACK, words[1].toInt()); m_infoList << info; m_offsets << 0; + skip_index = FALSE; } else if (words[0] == "INDEX") { - if (m_infoList.isEmpty() || words[1] != "01") - continue; - m_infoList.last ().setLength(getLength(words[2])); - m_offsets.last() = getLength(words[2]); + if (m_infoList.isEmpty() || skip_index) + continue; + m_infoList.last ().setLength(getLength(words[2])); + m_offsets.last() = getLength(words[2]); + skip_index = (words[1] == "01"); //use 01 index only } else if (words[0] == "REM") { diff --git a/src/plugins/Input/wavpack/cueparser.cpp b/src/plugins/Input/wavpack/cueparser.cpp index 1130639d1..f9cecf264 100644 --- a/src/plugins/Input/wavpack/cueparser.cpp +++ b/src/plugins/Input/wavpack/cueparser.cpp @@ -32,6 +32,7 @@ CUEParser::CUEParser(const QByteArray &array, const QString &fileName) textStream.setCodec("UTF-8"); m_filePath = fileName; QString artist; + bool skip_index = FALSE; while (!textStream.atEnd()) { QString line = textStream.readLine().trimmed(); @@ -66,13 +67,15 @@ CUEParser::CUEParser(const QByteArray &array, const QString &fileName) info.setMetaData(Qmmp::TRACK, words[1].toInt()); m_infoList << info; m_offsets << 0; + skip_index = FALSE; } else if (words[0] == "INDEX") { - if (m_infoList.isEmpty() || words[1] != "01") - continue; - m_infoList.last ().setLength(getLength(words[2])); - m_offsets.last() = getLength(words[2]); + if (m_infoList.isEmpty() || skip_index) + continue; + m_infoList.last ().setLength(getLength(words[2])); + m_offsets.last() = getLength(words[2]); + skip_index = (words[1] == "01"); //use 01 index only } else if (words[0] == "REM") { diff --git a/src/plugins/Output/jack/outputjack.cpp b/src/plugins/Output/jack/outputjack.cpp index 374300783..b064590f4 100644 --- a/src/plugins/Output/jack/outputjack.cpp +++ b/src/plugins/Output/jack/outputjack.cpp @@ -87,7 +87,7 @@ qint64 OutputJACK::latency() qint64 OutputJACK::writeAudio(unsigned char *data, qint64 maxSize) { if(!m_configure) - return 0; + return -1; m = JACK_Write(jack_device, (unsigned char*)data, maxSize); if (!m) usleep(2000); |
