Bringing ChocolateCaste-0.7 into the main branch.
[AROS-Contrib.git] / FryingPan / Optical / Disc_DVD_ROM.h
blob3815d5858188e2e0da87993b0363da93aecf6bd7
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_DVD_ROM_H
21 #define __DISC_DVD_ROM_H
23 #include "Disc_Generic.h"
24 #include <Generic/VectorT.h>
26 using namespace GenNS;
28 class Disc_DVD_ROM : public Disc
30 protected:
31 cmd_ReadDVDStructure rdvd;
32 VectorT<uint32> dcbs;
33 DVDStructure<DVD_DiscControlBlock> cb;
34 public:
35 Disc_DVD_ROM(class Drive*);
36 virtual ~Disc_DVD_ROM(void);
38 virtual void Init(void); // OUGHT TO BE INHERITED EVERYWHERE!
40 virtual int LayoutTracks(const IOptItem *) { return ODE_IllegalCommand; };
41 virtual bool AllowMultiSessionLayout() { return false; };
42 virtual bool AllowMultiTrackLayout() { return false; };
43 virtual int SessionGapSize() { return 0; };
44 virtual int TrackGapSize() { return 0; };
45 virtual bool IsCD() { return false; };
46 virtual bool IsDVD() { return true; };
47 virtual bool IsFormatted() { return false; };
48 virtual bool IsWritable() { return false; };
49 virtual bool IsErasable() { return false; };
50 virtual bool IsFormatable() { return false; };
51 virtual bool IsOverwritable() { return false; };
52 virtual int EraseDisc(int) { return ODE_IllegalCommand; };
53 virtual int FormatDisc(int) { return ODE_IllegalCommand; };
54 virtual int StructureDisc() { return ODE_IllegalCommand; };
55 virtual int DiscType() { return DRT_Profile_DVD_ROM;};
56 virtual int DiscSubType() { return 0; };
57 virtual int LayoutAdjustment() { return 0; };
58 virtual int BeginTrackWrite(const IOptItem*) { return ODE_IllegalCommand; };
59 virtual int EndTrackWrite(const IOptItem*) { return ODE_IllegalCommand; };
61 virtual int CheckItemData(const IOptItem*);
62 virtual void FillDiscSpeed(DiscSpeed&);
66 #endif