Don't do an "or" operation of the return IDs with TAGBASE_NATMEG
[AROS-Contrib.git] / FryingPan / Optical / Disc_CD_R.h
blobc596bffb5a25e938c13afaa5a135c64e0ddd20fe
1 /*
2 * FryingPan - Amiga CD/DVD Recording Software (User Interface and supporting Libraries only)
3 * Copyright (C) 2001-2011 Tomasz Wiszkowski Tomasz.Wiszkowski at gmail.com
4 *
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public License
7 * as published by the Free Software Foundation; either version 2.1
8 * of the License, or (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU Lesser General Public License for more details.
15 * You should have received a copy of the GNU Lesser General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20 #ifndef __DISC_CD_R_H
21 #define __DISC_CD_R_H
23 #include "Disc_CD_ROM.h"
24 #include "CDText.h"
26 using namespace GenNS;
28 class Disc_CD_R : public Disc_CD_ROM
30 bool bWriteSAO;
31 bool bCDXA;
32 bool bCDI;
33 const IOptItem *pLastTrack;
34 int lSAOTrackGap;
35 uint8 *pCueSheet;
36 int lCueElements;
37 unsigned long lLeadInLength;
38 unsigned long lLeadInStart;
39 int lAdjustment;
40 CDText *builder;
41 bool cdText;
43 protected:
45 TOC_ATIP *atip;
47 public:
48 Disc_CD_R(class Drive*);
49 virtual ~Disc_CD_R(void);
51 virtual void Init(void); // OUGHT TO BE INHERITED EVERYWHERE!
52 virtual int CloseDisc(int type, int lTrackNo);
54 virtual int OnChangeWriteMethod();
56 virtual bool AllowMultiSessionLayout() { return true; };
57 virtual bool AllowMultiTrackLayout() { return true; };
58 virtual int SessionGapSize();
59 virtual int TrackGapSize();
60 virtual bool IsCD(void) { return true; };
61 virtual bool IsDVD(void) { return false; };
62 virtual bool IsFormatted(void) { return false; };
63 virtual bool IsErasable(void) { return false; };
64 virtual bool IsFormatable(void) { return false; };
65 virtual int EraseDisc(int) { return ODE_IllegalCommand; };
66 virtual int FormatDisc(int) { return ODE_IllegalCommand; };
67 virtual int StructureDisc(void) { return ODE_IllegalCommand; };
68 virtual int DiscType(void) { return DRT_Profile_CD_R; };
69 virtual int LayoutAdjustment() { return lAdjustment; };
70 virtual int LayoutTracks(const IOptItem *pDI) { return Disc::LayoutTracks(pDI); };
71 virtual int BeginTrackWrite(const IOptItem*pDI);
72 virtual int EndTrackWrite(const IOptItem*pDI);
73 virtual int CheckItemData(const IOptItem*);
74 virtual int DiscSubType(void);
75 virtual bool IsWritable(void);
76 virtual int UploadLayout(const IOptItem *pDI);
77 virtual const char *DiscVendor();
78 virtual uint32 GetDiscSize();
80 virtual bool wantCDText() const;
84 #endif