diff options
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); |
