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
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.
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.
23 #include "Disc_CD_ROM.h"
26 using namespace GenNS
;
28 class Disc_CD_R
: public Disc_CD_ROM
33 const IOptItem
*pLastTrack
;
37 unsigned long lLeadInLength
;
38 unsigned long lLeadInStart
;
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;