diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2011-03-02 19:13:55 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2011-03-02 19:13:55 +0000 |
| commit | ffef9491700965c061f4bdb7dd61c125d2eb2bf9 (patch) | |
| tree | e1f08a8187996e57943c692a33d7af6b540e37a6 /src/plugins | |
| parent | 402f1a35b2cbe029381fd94a2b538beb4323e3f6 (diff) | |
| download | qmmp-ffef9491700965c061f4bdb7dd61c125d2eb2bf9.tar.gz qmmp-ffef9491700965c061f4bdb7dd61c125d2eb2bf9.tar.bz2 qmmp-ffef9491700965c061f4bdb7dd61c125d2eb2bf9.zip | |
added possibility to skip invalid tracks (Fixes issue 400) (Fixes issue
413)
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2079 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins')
| -rw-r--r-- | src/plugins/Transports/http/httpinputsource.cpp | 1 | ||||
| -rw-r--r-- | src/plugins/Transports/http/httpstreamreader.cpp | 11 | ||||
| -rw-r--r-- | src/plugins/Transports/mms/mmsinputsource.cpp | 1 | ||||
| -rw-r--r-- | src/plugins/Transports/mms/mmsstreamreader.cpp | 9 |
4 files changed, 19 insertions, 3 deletions
diff --git a/src/plugins/Transports/http/httpinputsource.cpp b/src/plugins/Transports/http/httpinputsource.cpp index c64a3c445..8e806cb66 100644 --- a/src/plugins/Transports/http/httpinputsource.cpp +++ b/src/plugins/Transports/http/httpinputsource.cpp @@ -25,6 +25,7 @@ HTTPInputSource::HTTPInputSource(const QString &url, QObject *parent) : InputSou { m_reader = new HttpStreamReader(url, this); connect(m_reader, SIGNAL(ready()),SIGNAL(ready())); + connect(m_reader, SIGNAL(error()),SIGNAL(error())); } QIODevice *HTTPInputSource::ioDevice() diff --git a/src/plugins/Transports/http/httpstreamreader.cpp b/src/plugins/Transports/http/httpstreamreader.cpp index 83617c8a3..3df0c432c 100644 --- a/src/plugins/Transports/http/httpstreamreader.cpp +++ b/src/plugins/Transports/http/httpstreamreader.cpp @@ -271,6 +271,7 @@ qint64 HttpStreamReader::bytesAvailable() const void HttpStreamReader::run() { qDebug("HttpStreamReader: starting download thread"); + char errorBuffer[CURL_ERROR_SIZE]; m_handle = curl_easy_init(); //proxy if (QmmpSettings::instance()->isProxyEnabled()) @@ -316,6 +317,8 @@ void HttpStreamReader::run() QString user_agent = QString("qmmp/%1").arg(Qmmp::strVersion()); curl_easy_setopt(m_handle, CURLOPT_USERAGENT, qPrintable(user_agent)); curl_easy_setopt(m_handle, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); + // error message + curl_easy_setopt(m_handle, CURLOPT_ERRORBUFFER, errorBuffer); struct curl_slist *http200_aliases = curl_slist_append(NULL, "ICY"); struct curl_slist *http_headers = curl_slist_append(NULL, "Icy-MetaData: 1"); @@ -331,8 +334,12 @@ void HttpStreamReader::run() qDebug("HttpStreamReader: starting libcurl"); m_mutex.unlock(); return_code = curl_easy_perform(m_handle); - qDebug("curl_easy_perform %d", return_code); - qDebug("HttpStreamReader: thread finished"); + qDebug("HttpStreamReader: curl thread finished with code %d (%s)", return_code, errorBuffer); + if(!m_stream.aborted && !m_ready) + { + setErrorString(errorBuffer); + emit error(); + } } qint64 HttpStreamReader::readBuffer(char* data, qint64 maxlen) diff --git a/src/plugins/Transports/mms/mmsinputsource.cpp b/src/plugins/Transports/mms/mmsinputsource.cpp index d6b303800..436b3c033 100644 --- a/src/plugins/Transports/mms/mmsinputsource.cpp +++ b/src/plugins/Transports/mms/mmsinputsource.cpp @@ -25,6 +25,7 @@ MMSInputSource::MMSInputSource(const QString &url, QObject *parent) : InputSourc { m_reader = new MMSStreamReader(url, this); connect(m_reader, SIGNAL(ready()),SIGNAL(ready())); + connect(m_reader, SIGNAL(error()),SIGNAL(error())); } QIODevice *MMSInputSource::ioDevice() diff --git a/src/plugins/Transports/mms/mmsstreamreader.cpp b/src/plugins/Transports/mms/mmsstreamreader.cpp index 712432546..4d4ce34af 100644 --- a/src/plugins/Transports/mms/mmsstreamreader.cpp +++ b/src/plugins/Transports/mms/mmsstreamreader.cpp @@ -139,6 +139,8 @@ void MMSStreamReader::run() if(!m_handle) { qWarning("MMSStreamReader: connection failed"); + setErrorString("connection failed"); + emit error(); return; } m_mutex.lock(); @@ -162,8 +164,13 @@ void MMSStreamReader::run() len = mmsx_read (0, m_handle, m_buffer + m_buffer_at, to_read); if(len < 0) { - qWarning("MMSStreamReader: error: %s", strerror(len)); m_mutex.unlock(); + qWarning("MMSStreamReader: mms thread funished with code %lld (%s)", len, strerror(len)); + if(!m_aborted && !m_ready) + { + setErrorString(strerror(len)); + emit error(); + } break; } m_buffer_at += len; |
