aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2009-08-23 18:19:23 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2009-08-23 18:19:23 +0000
commit0661e2522ecfe2b9bc2125b0cef23d787c0b56e8 (patch)
treeacfdf47a6d0287b6842a04314ebcb0de6985272c /src
parentabb8c72df21ffd84ed511a06daf0764dae607457 (diff)
downloadqmmp-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')
-rw-r--r--src/plugins/Input/cue/cueparser.cpp5
-rw-r--r--src/plugins/Input/flac/cueparser.cpp11
-rw-r--r--src/plugins/Input/wavpack/cueparser.cpp11
-rw-r--r--src/plugins/Output/jack/outputjack.cpp2
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);