/usr/include/qpxtool/qpx_writer.h is in libqpx-dev 0.7.2-4.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | /*
* This file is part of the QPxTool project.
* Copyright (C) 2009-2010 Gennady "ShultZ" Kozlov <qpxtool@mail.ru>
*
* 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 QPXWRITER_H
#define QPXWRITER_H
class drive_info;
class qpxwriter {
public:
qpxwriter(drive_info *idev);
virtual ~qpxwriter() {};
virtual void setSimul(bool isimul);
virtual int send_opc();
virtual int open_session();
virtual int open_track(uint32_t size);
virtual int close_track();
virtual int fixate();
virtual int write_data(int32_t lba, int sects);
void stop();
protected:
virtual int mmc_write(int32_t lba, int sects);
drive_info *dev;
bool stop_req;
bool simul;
};
// CD-R/W
// mostly usable, SAO only, tested on CD-RW
class qpxwriter_cd : public qpxwriter {
public:
qpxwriter_cd(drive_info *idev) : qpxwriter(idev) {};
virtual ~qpxwriter_cd() {};
virtual int send_opc();
// virtual int open_session();
virtual int open_track(uint32_t size);
virtual int close_track();
virtual int fixate();
protected:
int set_write_parameters_def(bool bfree, bool simul);
int send_cue_sheet(uint32_t tsize);
int write_lead_in();
};
// DVD-R(W) [/DL]
// tested on single layer media only, both -R and -RW OK
class qpxwriter_dvdminus : public qpxwriter {
public:
qpxwriter_dvdminus(drive_info *idev) : qpxwriter(idev) {};
virtual ~qpxwriter_dvdminus() {};
virtual int open_session();
virtual int open_track(uint32_t size);
virtual int close_track();
virtual int fixate();
};
// DVD+R(W) [/DL]
// tested on single layer media only, both +R and +RW OK
class qpxwriter_dvdplus : public qpxwriter {
public:
qpxwriter_dvdplus(drive_info *idev) : qpxwriter(idev) {};
virtual ~qpxwriter_dvdplus() {};
virtual int open_session();
virtual int open_track(uint32_t size);
virtual int close_track();
virtual int fixate();
private:
int fixate_rw();
int fixate_r();
};
// DVD-RAM
// OK
class qpxwriter_dvdram : public qpxwriter {
public:
qpxwriter_dvdram(drive_info *idev) : qpxwriter(idev) {};
virtual ~qpxwriter_dvdram() {};
};
// BD-R/RE
// untested!!!
class qpxwriter_bd : public qpxwriter {
public:
qpxwriter_bd(drive_info *idev) : qpxwriter(idev) {};
virtual ~qpxwriter_bd() {};
virtual int open_track(uint32_t size);
virtual int close_track();
virtual int fixate();
private:
int fixate_re();
int fixate_r();
};
#endif
|