aboutsummaryrefslogtreecommitdiff
path: root/lib/downloader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/downloader.cpp')
-rw-r--r--lib/downloader.cpp20
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;