diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2007-09-18 17:43:25 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2007-09-18 17:43:25 +0000 |
| commit | d80498e562ae70cfe5f0d2400046e6e4db6af260 (patch) | |
| tree | f45e3480c94b6cf1c756b4f35a5c42eead8fabc4 /lib/downloader.cpp | |
| parent | 41c154d03342aa03cc3932ca032eba387c7a2bff (diff) | |
| download | qmmp-d80498e562ae70cfe5f0d2400046e6e4db6af260.tar.gz qmmp-d80498e562ae70cfe5f0d2400046e6e4db6af260.tar.bz2 qmmp-d80498e562ae70cfe5f0d2400046e6e4db6af260.zip | |
improved stream support
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@157 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'lib/downloader.cpp')
| -rw-r--r-- | lib/downloader.cpp | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/lib/downloader.cpp b/lib/downloader.cpp index a83c68ef2..b9a9c67ab 100644 --- a/lib/downloader.cpp +++ b/lib/downloader.cpp @@ -38,6 +38,7 @@ static size_t curl_write_data(void *data, size_t size, size_t nmemb, dl->stream()->buf = (char *)realloc (dl->stream()->buf, dl->stream()->buf_fill); memcpy (dl->stream()->buf + buf_start, data, data_size); dl->mutex()->unlock(); + dl->checkBuffer(); return data_size; } @@ -232,7 +233,7 @@ void Downloader::run() curl_easy_setopt(m_handle, CURLOPT_PROGRESSFUNCTION, curl_progress); // Any kind of authentication curl_easy_setopt(m_handle, CURLOPT_HTTPAUTH, CURLAUTH_ANY); - //curl_easy_setopt(m_handle, CURLOPT_VERBOSE, 1); + curl_easy_setopt(m_handle, CURLOPT_VERBOSE, 1); // Auto referrer curl_easy_setopt(m_handle, CURLOPT_AUTOREFERER, 1); // Follow redirections @@ -250,6 +251,7 @@ void Downloader::run() m_stream.buf = 0; m_stream.aborted = FALSE; m_stream.header.clear (); + m_ready = FALSE; int return_code; qDebug("Downloader: starting libcurl"); m_mutex.unlock(); @@ -284,6 +286,22 @@ const QString &Downloader::title() const return m_title; } +void Downloader::checkBuffer() +{ + if(m_stream.buf_fill > BUFFER_SIZE && !m_ready) + { + m_ready = TRUE; + qDebug("Downloader: ready"); + emit readyRead(); + } + +} + +bool Downloader::isReady() +{ + return m_ready; +} + void Downloader::readICYMetaData() { uint8_t packet_size; |
