Warning, file /multimedia/k3b/libk3b/projects/k3bcdrskinwriter.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002     SPDX-FileCopyrightText: 2016-2017 Leslie Zhai <lesliezhai@llvm.org.cn>
0003     SPDX-FileCopyrightText: 2003-2009 Sebastian Trueg <trueg@k3b.org>
0004     SPDX-FileCopyrightText: 1998-2009 Sebastian Trueg <trueg@k3b.org>
0005 
0006     SPDX-License-Identifier: GPL-2.0-or-later
0007 */
0008 
0009 
0010 #ifndef K3B_CDRSKIN_WRITER_H
0011 #define K3B_CDRSKIN_WRITER_H
0012 
0013 
0014 #include "k3babstractwriter.h"
0015 
0016 #include <QProcess>
0017 #include <QStringList>
0018 
0019 namespace K3b {
0020     class ExternalBin;
0021     class Process;
0022     namespace Device {
0023         class Device;
0024     }
0025 
0026 
0027     class CdrskinWriter : public AbstractWriter
0028     {
0029         Q_OBJECT
0030 
0031     public:
0032         CdrskinWriter( Device::Device*, JobHandler* hdl,
0033                         QObject* parent = 0 );
0034         ~CdrskinWriter() override;
0035 
0036         bool active() const override;
0037 
0038         /**
0039          * to be used in chain: addArgument(x)->addArgument(y)
0040          */
0041         CdrskinWriter* addArgument( const QString& );
0042         void clearArguments();
0043 
0044         /**
0045          * Write to the writer process.
0046          * FIXME: make this an overloaded method from AbstractWriter
0047          */
0048         qint64 write( const char* data, qint64 maxSize );
0049 
0050         QIODevice* ioDevice() const override;
0051 
0052     public Q_SLOTS:
0053         void start() override;
0054         void cancel() override;
0055 
0056         void setDao( bool b );
0057         void setWritingMode( WritingMode mode );
0058         void setFormattingMode( FormattingMode mode );
0059         void setCueFile( const QString& s);
0060         void setClone( bool b );
0061         void setMulti( bool b );
0062         void setForce( bool b );
0063 
0064         void setRawCdText( const QByteArray& a );
0065 
0066     protected Q_SLOTS:
0067         void slotStdLine( const QString& line );
0068         void slotProcessExited( int exitCode, QProcess::ExitStatus exitStatus );
0069         void slotThroughput( int t );
0070 
0071     protected:
0072         virtual bool prepareProcess();
0073 
0074         enum CdrskinError { UNKNOWN,
0075                              OVERSIZE,
0076                              BAD_OPTION,
0077                              SHMGET_FAILED,
0078                              OPC_FAILED,
0079                              CANNOT_SET_SPEED,
0080                              CANNOT_SEND_CUE_SHEET,
0081                              CANNOT_OPEN_NEW_SESSION,
0082                              CANNOT_FIXATE_DISK,
0083                              WRITE_ERROR,
0084                              PERMISSION_DENIED,
0085                              BUFFER_UNDERRUN,
0086                              HIGH_SPEED_MEDIUM,
0087                              LOW_SPEED_MEDIUM,
0088                              MEDIUM_ERROR,
0089                              DEVICE_BUSY,
0090                              BLANK_FAILED,
0091                              SHORT_READ };
0092 
0093     private:
0094         class Private;
0095         Private* d;
0096     };
0097 }
0098 
0099 #endif