void CvsJob::slotReceivedStdout() { const QString output(QString::fromLocal8Bit(d->childproc->readAllStandardOutput())); // accumulate output d->outputLines += output.split('\n'); qCDebug(log_cervisia) << "output:" << output; emit receivedStdout(output); }
int K3Process::childOutput(int fdno) { if (communication & NoRead) { int len = -1; emit receivedStdout(fdno, len); errno = 0; // Make sure errno doesn't read "EAGAIN" return len; } else { char buffer[1025]; int len; len = ::read(fdno, buffer, 1024); if (len > 0) { buffer[len] = 0; // Just in case. emit receivedStdout(this, buffer, len); } return len; } }
long EncoderLame::readInit(long /*size*/){ // Create KProcess d->currentEncodeProcess = new KProcess(); d->tempFile = new KTemporaryFile(); d->tempFile->setSuffix(".mp3"); d->tempFile->open(); d->lastErrorMessage.clear(); d->processHasExited = false; // -r raw/pcm // -s 44.1 (because it is raw you have to specify this) *(d->currentEncodeProcess) << "lame" << "--verbose" << "-r" << "-s" << "44.1"; *(d->currentEncodeProcess) << args; if(Settings::self()->id3_tag()) *d->currentEncodeProcess << trackInfo; // Read in stdin, output to the temp file *d->currentEncodeProcess << "-" << d->tempFile->fileName().toLatin1(); //kDebug(7117) << d->currentEncodeProcess->args(); connect(d->currentEncodeProcess, SIGNAL(readyReadStandardOutput()), this, SLOT(receivedStdout())); connect(d->currentEncodeProcess, SIGNAL(readyReadStandardError()), this, SLOT(receivedStderr())); // connect(d->currentEncodeProcess, SIGNAL(bytesWritten()), // this, SLOT(wroteStdin())); connect(d->currentEncodeProcess, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(processExited(int,QProcess::ExitStatus))); // Launch! d->currentEncodeProcess->setOutputChannelMode(KProcess::SeparateChannels); d->currentEncodeProcess->start(); return 0; }