void K3b::VerificationJob::start() { jobStarted(); d->canceled = false; d->alreadyReadSectors = 0; waitForMedium( d->device, K3b::Device::STATE_COMPLETE|K3b::Device::STATE_INCOMPLETE, K3b::Device::MEDIA_WRITABLE ); // make sure the job is initialized if( !d->trackEntries.isEmpty() ) { d->currentTrackEntry = d->trackEntries.begin(); } else { emit infoMessage( i18n( "Internal Error: Verification job improperly initialized (%1)", i18n("no tracks added") ), MessageError ); jobFinished( false ); return; } emit newTask( i18n("Checking medium") ); d->mediumHasBeenReloaded = false; connect( K3b::Device::sendCommand( K3b::Device::DeviceHandler::CommandLoad, d->device ), SIGNAL(finished(K3b::Device::DeviceHandler*)), this, SLOT(slotMediaLoaded()) ); }
void K3b::VerificationJob::slotMediaLoaded() { // we always need to wait for the medium. Otherwise the diskinfo below // may run before the drive is ready! waitForMedium( d->device, K3b::Device::STATE_COMPLETE|K3b::Device::STATE_INCOMPLETE, K3b::Device::MEDIA_WRITABLE ); connect( K3b::Device::sendCommand( K3b::Device::DeviceHandler::CommandMediaInfo, d->device ), SIGNAL(finished(K3b::Device::DeviceHandler*)), this, SLOT(slotDiskInfoReady(K3b::Device::DeviceHandler*)) ); }
void K3b::DvdFormattingJob::start() { d->canceled = false; d->running = true; d->error = false; jobStarted(); if( !d->device ) { emit infoMessage( i18n("No device set"), MessageError ); d->running = false; jobFinished(false); return; } // FIXME: check the return value if( K3b::isMounted( d->device ) ) { emit infoMessage( i18n("Unmounting medium"), MessageInfo ); K3b::unmount( d->device ); } // // first wait for a dvd+rw, dvd-rw, or bd-re // Be aware that an empty DVD-RW might be reformatted to another writing mode // so we also wait for empty dvds // if( waitForMedium( d->device, Device::STATE_COMPLETE|Device::STATE_INCOMPLETE|Device::STATE_EMPTY, Device::MEDIA_REWRITABLE_DVD|Device::MEDIA_BD_RE, 0, i18n("Please insert a rewritable DVD or Blu-ray medium into drive<p><b>%1 %2 (%3)</b>.", d->device->vendor(), d->device->description(), d->device->blockDeviceName()) ) == Device::MEDIA_UNKNOWN ) { emit canceled(); d->running = false; jobFinished(false); return; } emit infoMessage( i18n("Checking medium"), MessageInfo ); emit newTask( i18n("Checking medium") ); connect( Device::sendCommand( Device::DeviceHandler::CommandDiskInfo, d->device ), SIGNAL(finished(K3b::Device::DeviceHandler*)), this, SLOT(slotDeviceHandlerFinished(K3b::Device::DeviceHandler*)) ); }
void K3b::BlankingJob::slotStartErasing() { m_canceled = false; if( m_writerJob ) delete m_writerJob; if( m_writingApp == K3b::WritingAppCdrdao ) { K3b::CdrdaoWriter* writer = new K3b::CdrdaoWriter( m_device, this ); m_writerJob = writer; writer->setCommand( K3b::CdrdaoWriter::BLANK ); writer->setBlankMode( m_mode ); writer->setForce( m_force ); writer->setBurnSpeed( m_speed ); } else { K3b::CdrecordWriter* writer = new K3b::CdrecordWriter( m_device, this ); m_writerJob = writer; writer->setFormattingMode( m_mode ); writer->setForce( m_force ); writer->setBurnSpeed( m_speed ); } connect(m_writerJob, SIGNAL(finished(bool)), this, SLOT(slotFinished(bool))); connect(m_writerJob, SIGNAL(infoMessage(QString,int)), this,SIGNAL(infoMessage(QString,int))); connect( m_writerJob, SIGNAL(debuggingOutput(QString,QString)), this, SIGNAL(debuggingOutput(QString,QString)) ); if( waitForMedium( m_device, K3b::Device::STATE_COMPLETE|K3b::Device::STATE_INCOMPLETE, K3b::Device::MEDIA_CD_RW, 0, i18n("Please insert a rewritable CD medium into drive<p><b>%1 %2 (%3)</b>.", m_device->vendor(), m_device->description(), m_device->blockDeviceName()) ) == Device::MEDIA_UNKNOWN ) { emit canceled(); jobFinished(false); return; } m_writerJob->start(); }
void K3b::VcdJob::startWriterjob() { qDebug() << QString( "(K3b::VcdJob) writing copy %1 of %2" ).arg( m_currentcopy ).arg( m_doc->copies() ); if ( prepareWriterJob() ) { if ( waitForMedium( m_doc->burner() ) == Device::MEDIA_UNKNOWN ) { cancel(); return ; } // just to be sure we did not get canceled during the async discWaiting if ( m_canceled ) return ; if ( m_doc->copies() > 1 ) emit newTask( i18n( "Writing Copy %1 of %2" , m_currentcopy , m_doc->copies() ) ); emit burning( true ); m_writerJob->start(); } }