Index: mythdvd/mythdvd/dvdripbox.cpp =================================================================== --- mythdvd/mythdvd/dvdripbox.cpp (revision 8742) +++ mythdvd/mythdvd/dvdripbox.cpp (working copy) @@ -439,12 +439,19 @@ QString line_from_server = QString::fromUtf8(client_socket->readLine()); line_from_server = line_from_server.replace( QRegExp("\n"), "" ); line_from_server = line_from_server.replace( QRegExp("\r"), "" ); - line_from_server.simplifyWhiteSpace(); - // cout << "Getting \"" << line_from_server.local8Bit() << "\"" << endl ; - QStringList tokens = QStringList::split(" ", line_from_server); - if(tokens.count() > 0) + + if (line_from_server.startsWith("error")) { - parseTokens(tokens); + handleError(line_from_server); + } else + { + line_from_server.simplifyWhiteSpace(); + // cout << "Getting \"" << line_from_server.local8Bit() << "\"" << endl ; + QStringList tokens = QStringList::split(" ", line_from_server); + if(tokens.count() > 0) + { + parseTokens(tokens); + } } } } @@ -481,6 +488,12 @@ } } +void DVDRipBox::handleError(const QString& error) const +{ + MythPopupBox::showOkPopup(gContext->GetMainWindow(), tr("Error in MTD"), error); +} + + void DVDRipBox::startStatusPolling() { status_timer->start(1000); Index: mythdvd/mythdvd/dvdripbox.h =================================================================== --- mythdvd/mythdvd/dvdripbox.h (revision 8742) +++ mythdvd/mythdvd/dvdripbox.h (working copy) @@ -120,6 +120,7 @@ void wireUpTheme(); void createSocket(); + void handleError(const QString& errort) const; QSocket *client_socket; QTimer *status_timer; Index: mythdvd/mtd/mtd.cpp =================================================================== --- mythdvd/mtd/mtd.cpp (revision 8742) +++ mythdvd/mtd/mtd.cpp (working copy) @@ -258,7 +258,8 @@ QString job_command = iterator->getJobString(); if(problem.length() > 0) { - emit writeToLog(QString("job failed: %1").arg(job_command)); + emit writeToLog(QString("job failed: %1\nreason: %2").arg(job_command).arg(problem)); + errors_to_report << (QString("Problem: %1 Job: %2").arg(problem).arg(command)); //emit writeToLog(QString(" reason: %1").arg(problem)); } else @@ -424,7 +425,11 @@ // each job. // - + for (uint i = 0; i < errors_to_report.count(); i++) + { + sendMessage(socket,"error "+errors_to_report[i]); + } + errors_to_report.clear(); sendMessage(socket, QString("status dvd summary %1").arg(job_threads.count())); Index: mythdvd/mtd/mtd.h =================================================================== --- mythdvd/mtd/mtd.h (revision 8742) +++ mythdvd/mtd/mtd.h (working copy) @@ -103,6 +103,7 @@ QMutex *concurrent_transcodings_mutex; int concurrent_transcodings; int max_concurrent_transcodings; + QStringList errors_to_report; }; #endif // mtd_h_