/* cdrdao - write audio CD-Rs in disc-at-once mode * * Copyright (C) 1998 Andreas Mueller * * 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. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* * $Log: PQSubChannel16.h,v $ * Revision 1.3 2002/06/29 17:23:09 andreasm * Some cosmetic fixes. * * Revision 1.2 2000/12/17 10:51:22 andreasm * Default verbose level is now 2. Adaopted message levels to have finer * grained control about the amount of messages printed by cdrdao. * Added CD-TEXT writing support to the GenericMMCraw driver. * Fixed CD-TEXT cue sheet creating for the GenericMMC driver. * * Revision 1.1.1.1 2000/02/05 01:35:04 llanero * Uploaded cdrdao 1.1.3 with pre10 patch applied. * * Revision 1.4 1999/04/05 11:04:48 mueller * Added decoding of media catalog number and ISRC code. * * Revision 1.3 1999/03/27 20:58:55 mueller * Added various access functions. * * Revision 1.2 1998/08/30 19:10:32 mueller * Added handling of Catalog Number and ISRC codes. * * Revision 1.1 1998/08/29 21:31:36 mueller * Initial revision * * */ #ifndef __PQ_SUB_CHANNEL_16_H__ #define __PQ_SUB_CHANNEL_16_H__ #include "SubChannel.h" class PQSubChannel16 : public SubChannel { public: PQSubChannel16(); virtual ~PQSubChannel16(); // virtual constructors: // create sub channel with specified q-mode SubChannel *makeSubChannel(Type); // create sub channel with reading sub channel data from given buffer SubChannel *makeSubChannel(unsigned char *); // initialize sub-channel from given buffer (16 bytes) void init(unsigned char *); void type(unsigned char); // set Q type Type type() const; // returns Q mode type long dataLength() const; // returns number of sub channel bytes void pChannel(int); // sets P channel bit void ctl(int); // sets control flags unsigned char ctl() const; // return control nibbles in bits 0-3 void trackNr(int); // sets track number (QMODE1DATA) int trackNr() const; // returns track number (QMODE1DATA) void indexNr(int); // sets index number (QMODE1DATA) int indexNr() const; // returns index number (QMODE1DATA) void point(int); // sets point filed (QMODE1TOC) void min(int); // track relative time (QMODE1TOC, QMODE1DATA) int min() const; void sec(int); // track relative time (QMODE1TOC, QMODE1DATA) int sec() const; void frame(int); // track relative time (QMODE1TOC, QMODE1DATA) int frame() const; void amin(int); // absolute time (QMODE1DATA) int amin() const; void asec(int); // absolute time (QMODE1DATA) int asec() const; void aframe(int); // absolute time (QMODE1DATA) int aframe() const; void pmin(int); // track start time (QMODE1TOC) void psec(int); // track start time (QMODE1TOC) void pframe(int); // track start time (QMODE1TOC) void zero(int); // zero field (QMODE5TOC) void catalog(char, char, char, char, char, char, char, char, char, char, char, char, char); const char *catalog() const; void isrc(char, char, char, char, char, char, char, char, char, char, char, char); const char *isrc() const; void print() const; void calcCrc(); // calculates crc and stores it in crc fields int checkCrc() const; int checkConsistency(); const unsigned char *data() const; protected: unsigned char data_[16]; // P and Q sub channel data }; #endif