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 <Generic/LibrarySpool.h>
26 #include <Generic/String.h>
27 #include <Generic/VectorT.h>
28 #include <Generic/Synchronizer.h>
29 #include <Generic/Debug.h>
32 * this file is for Optical's internal use only.
35 using namespace GenNS
;
37 class OptItem
: public IOptItem
42 VectorT
<IOptItem
*>di_children
;
45 EItemType di_itemtype
;
47 uint16 di_flags
; // DIF_xxx
48 EDataType di_datatype
;
50 int32 di_start
; // first block
51 uint16 di_pregap
; // automatically generated pregap
52 uint16 di_postgap
; // automatically generated postgap
53 int32 di_datasize
; // real data size (end = start + pregap + data + postgap - 1)
55 uint32 di_actual
; // how many sectors have actually been written so far? (equals to "size" in most cases)
56 uint16 di_sectorsize
; // size of sector
58 bool di_prot
; // digital protection
60 bool di_incremental
; // packet / incrermental data track
61 bool di_blank
; // blank
62 bool di_cdtext
; // cdtext information available?
63 bool di_complete
; // disc complete
65 uint16 di_packetlength
; // packet length (only when incremental set to 1)
67 String di_title
; // cdtext information (only when cd_text set to 1)
74 uint32 di_discid
; // disc, from which the track originates
79 virtual IOptItem
*addChild(IOptItem
* child
);
82 static bool sFreeChild(IOptItem
* const& child
);
89 OptItem(IOptItem
*parent
);
90 void printReport(DbgHandler
*dbg
) const;
94 * inherited methods go here
97 virtual void claim() const;
98 virtual void dispose() const;
100 virtual EItemType
getItemType() const;
101 virtual void setItemType(EItemType lNewType
);
102 virtual uint16
getItemNumber() const;
103 virtual void setItemNumber(uint16 number
);
104 virtual EDataType
getDataType() const;
105 virtual void setDataType(EDataType lNewType
);
106 virtual uint16
getPreGapSize() const;
107 virtual void setPreGapSize(uint16 lNewSize
);
108 virtual uint16
getPostGapSize() const;
109 virtual void setPostGapSize(uint16 lNewSize
);
110 virtual int32
getStartAddress() const;
111 virtual void setStartAddress(int32 lNewAddress
);
112 virtual int32
getEndAddress() const;
113 virtual void setEndAddress(int32 lNewAddress
);
114 virtual int32
getBlockCount() const;
115 virtual int32
getDataBlockCount() const;
116 virtual void setDataBlockCount(int32 count
);
117 virtual int32
getDataStartAddress() const;
118 virtual int32
getDataEndAddress() const;
120 virtual bool isProtected() const;
121 virtual void setProtected(bool bProtected
);
122 virtual bool isPreemphasized() const;
123 virtual void setPreemphasized(bool bPreemph
);
124 virtual bool isIncremental() const;
125 virtual void setIncremental(bool bState
);
126 virtual bool hasCDText() const;
127 virtual void setCDText(bool bCDText
);
129 virtual const char* getCDTTitle() const;
130 virtual void setCDTTitle(const char* sNewTitle
);
131 virtual const char* getCDTArtist() const;
132 virtual void setCDTArtist(const char* sNewArtist
);
133 virtual const char* getCDTMessage() const;
134 virtual void setCDTMessage(const char* sNewMessage
);
135 virtual const char* getCDTLyrics() const;
136 virtual void setCDTLyrics(const char* sNewLyrics
);
137 virtual const char* getCDTComposer() const;
138 virtual void setCDTComposer(const char* sNewComposer
);
139 virtual const char* getCDTDirector() const;
140 virtual void setCDTDirector(const char* sNewDirector
);
142 virtual const IOptItem
* getParent() const;
143 virtual const IOptItem
* getChild(int32 num
) const;
144 virtual int32
getChildCount() const;
146 virtual bool isBlank() const;
147 virtual void setBlank(bool blank
);
149 virtual uint16
getSectorSize() const;
150 virtual void setSectorSize(uint16 size
);
152 virtual uint32
getDiscID() const;
153 virtual void setDiscID(uint32 id
);
155 virtual uint16
getPacketSize() const;
156 virtual void setPacketSize(uint16 lNewSize
);
158 virtual uint16
getFlags() const;
159 virtual void setFlags(uint16 lNewFlags
);
161 virtual bool isComplete() const;
162 virtual void setComplete(bool complete
);