void DownloadItem::updateInfoLabel() { if (m_reply->error() != QNetworkReply::NoError) return; qint64 bytesTotal = m_reply->header(QNetworkRequest::ContentLengthHeader).toULongLong(); bool running = !downloadedSuccessfully(); // update info label double speed = currentSpeed(); double timeRemaining = remainingTime(); QString info; if (running) { QString remaining; if (bytesTotal != 0) { remaining = DownloadManager::timeString(timeRemaining); } info = QString(tr("%1 of %2 (%3/sec) - %4")) .arg(DownloadManager::dataString(m_bytesReceived)) .arg(bytesTotal == 0 ? tr("?") : DownloadManager::dataString(bytesTotal)) .arg(DownloadManager::dataString((int)speed)) .arg(remaining); } else { if (m_bytesReceived == bytesTotal) info = DownloadManager::dataString(m_output.size()); else info = tr("%1 of %2 - Stopped") .arg(DownloadManager::dataString(m_bytesReceived)) .arg(DownloadManager::dataString(bytesTotal)); } downloadInfoLabel->setText(info); }
double DownloadItem::remainingTime() const { if (!downloading()) return -1.0; double timeRemaining = ((double)(bytesTotal() - bytesReceived())) / currentSpeed(); // When downloading the eta should never be 0 if (timeRemaining == 0) timeRemaining = 1; return timeRemaining; }
double DownloadItem::remainingTime() const { if (m_finishedDownloading) return -1.0; double speed = currentSpeed(); double timeRemaining = 0.0; if (speed > 0.0) timeRemaining = ((double)(bytesTotal() - bytesReceived())) / speed; // When downloading the eta should never be 0 if (timeRemaining == 0) timeRemaining = 1; return timeRemaining; }
size_t RawPlayer::framesUntilUpdate() const { return SampleRate * (currentSpeed() ? currentSpeed() : 0xffff) / 1193180; // timer oscillator speed / wait register = clock // frequency }