summaryrefslogtreecommitdiffstats
path: root/libk3b/projects/videocd/k3bvcdjob.h
diff options
context:
space:
mode:
Diffstat (limited to 'libk3b/projects/videocd/k3bvcdjob.h')
-rw-r--r--libk3b/projects/videocd/k3bvcdjob.h115
1 files changed, 115 insertions, 0 deletions
diff --git a/libk3b/projects/videocd/k3bvcdjob.h b/libk3b/projects/videocd/k3bvcdjob.h
new file mode 100644
index 0000000..917c8b1
--- /dev/null
+++ b/libk3b/projects/videocd/k3bvcdjob.h
@@ -0,0 +1,115 @@
+/*
+*
+* $Id: k3bvcdjob.h 619556 2007-01-03 17:38:12Z trueg $
+* Copyright (C) 2003-2004 Christian Kvasny <chris@k3b.org>
+*
+* This file is part of the K3b project.
+* Copyright (C) 1998-2007 Sebastian Trueg <trueg@k3b.org>
+*
+* This program is free software; you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation; either version 2 of the License, or
+* (at your option) any later version.
+* See the file "COPYING" for the exact licensing terms.
+*/
+
+#ifndef K3BVCDJOB_H
+#define K3BVCDJOB_H
+
+#include <k3bjob.h>
+
+class K3bVcdDoc;
+class K3bVcdTrack;
+class QString;
+class K3bProcess;
+class KProcess;
+class QDataStream;
+class K3bAbstractWriter;
+class K3bDevice::Device;
+
+
+class K3bVcdJob : public K3bBurnJob
+{
+ Q_OBJECT
+
+ public:
+ K3bVcdJob( K3bVcdDoc*, K3bJobHandler*, QObject* parent = 0, const char* name = 0 );
+ ~K3bVcdJob();
+
+ K3bDoc* doc() const;
+ K3bVcdDoc* vcdDoc() const
+ {
+ return m_doc;
+ }
+ K3bDevice::Device* writer() const;
+
+ QString jobDescription() const;
+ QString jobDetails() const;
+
+ public slots:
+ void start();
+ void cancel();
+
+ private slots:
+ void cancelAll();
+
+ protected slots:
+ void slotVcdxBuildFinished();
+ void slotParseVcdxBuildOutput( KProcess*, char* output, int len );
+
+ void slotWriterJobPercent( int p );
+ void slotProcessedSize( int cs, int ts );
+ void slotWriterNextTrack( int t, int tt );
+ void slotWriterJobFinished( bool success );
+
+
+ private:
+ bool prepareWriterJob();
+
+ void xmlGen();
+ void vcdxBuild();
+ void parseInformation( const QString& );
+ void startWriterjob();
+
+ int m_copies;
+ int m_finishedCopies;
+
+ unsigned long m_blocksToCopy;
+ unsigned long m_bytesFinishedTracks;
+ unsigned long m_bytesFinished;
+
+ enum { stageUnknown, stageScan, stageWrite, _stage_max };
+
+ K3bVcdDoc* m_doc;
+ K3bDevice::Device* m_writer;
+ K3bDevice::Device* m_reader;
+ K3bVcdTrack* m_currentWrittenTrack;
+
+ int m_speed;
+ int m_stage;
+ int m_currentcopy;
+ int m_currentWrittenTrackNumber;
+
+ double m_createimageonlypercent;
+
+ bool firstTrack;
+ bool m_burnProof;
+ bool m_keepImage;
+ bool m_onlyCreateImage;
+ bool m_onTheFly;
+ bool m_dummy;
+ bool m_fastToc;
+ bool m_readRaw;
+ bool m_imageFinished;
+ bool m_canceled;
+
+ QString m_tempPath;
+ QString m_cueFile;
+ QString m_xmlFile;
+ QString m_collectedOutput;
+
+ K3bAbstractWriter* m_writerJob;
+ K3bProcess* m_process;
+};
+
+#endif