Beispiel #1
0
//slot
void AnalyserQueue::slotUpdateProgress() {
    if (m_progressInfo.current_track) {
        m_progressInfo.current_track->setAnalyserProgress(m_progressInfo.track_progress);
    }
    emit(trackProgress(m_progressInfo.track_progress/10));
    if (m_progressInfo.track_progress == 1000) {
        emit(trackFinished(m_progressInfo.queue_size));
    }
    m_progressInfo.sema.release();
}
	string TrackableDownloadItem::formatRunningStatus() const noexcept {
		auto p = find_if(downloads | map_values, PathInfo::IsRunning());

		if (p.base() != downloads.end() && p->trackProgress()) {
			if (p->downloaded == -1) {
				return STRING(DOWNLOAD_STARTING);
			}

			return STRING_F(RUNNING_PCT, p->getDownloadedPercentage());
		}

		return "Downloading";
	}
Beispiel #3
0
void Splitter::parseOut()
{
    Track *track = disk()->track(0);

    bool deletePregap = !OutFormat::currentFormat()->createCue();
    char c;
    QByteArray buf;

    while(mProcess->waitForReadyRead(-1))
    {
        while (mProcess->read(&c, 1))
        {
            // .......................................
            if (c == '\n')
            {
                if (buf.contains(": error:"))
                {
                    error(track, QString::fromLocal8Bit(buf.mid(17)));
                    return;
                }
                buf = "";
            }


            // .......................................
            else if (c == '%')
            {
                bool ok;
                int percent = buf.right(3).trimmed().toInt(&ok);
                if (!ok)
                    continue;


                // Splitting [/home/user/inDir/input.wav] (10:00.000) --> [/home/user/outDir/tmp-15196-00000.wav] (0:00.440) : 100% OK

                QString pattern = "[" +  mWorkDir + "/" + mFilePrefix;
                QString sbuf = QString::fromLocal8Bit(buf);
                int n = sbuf.indexOf(pattern, disk()->audioFileName().length() + 20);

                if (n < 0 && sbuf.length() < n + pattern.length() + 4)
                {
                    qWarning() << "I can't parse" << sbuf;
                    continue;
                }

                QString fileName = sbuf.mid(n + 1, + pattern.length() - 1 + 4 + 4); // -1 for leading "[", 4 for 4 digits tracknum, 4 - file ext ".wav"

                int trackNum = fileName.mid(fileName.length() - 8, 4).toInt(&ok);

                if (!ok)
                {
                    qWarning() << "I can't parse" << sbuf;
                    continue;
                }



                if (trackNum > disk()->count())
                {
                    error(disk()->track(0), tr("The number of tracks is higher than expected."));
                    return;
                }

                track = (trackNum == 0) ? disk()->preGapTrack() : disk()->track(trackNum - 1);
                mPreGapExists = mPreGapExists || (trackNum == 0);

                emit trackProgress(track, Track::Splitting, percent);

                if (percent == 100)
                {
                    if (trackNum == 0 && deletePregap)
                        deleteFile(fileName);
                    else
                        emit trackReady(track, fileName);
                }
            }

            // .......................................
            else
            {
                buf += c;
            }

            //std::cerr << c;
        }
    }
}