forgotten commit. disabled until egl is adapted.
[AROS-Contrib.git] / FryingPan / Optical / OptItem.h
blob703ccb94b028b3ad3f53b97404b97c38921fc2f0
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 _OPTITEM_H_
21 #define _OPTITEM_H_
23 #include <Generic/LibrarySpool.h>
24 #include "Optical.h"
25 #include "IOptItem.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
39 Synchronizer di_sync;
40 uint32 di_opencnt;
42 VectorT<IOptItem*>di_children;
43 IOptItem *di_parent;
45 EItemType di_itemtype;
46 uint16 di_number;
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
59 bool di_preemph; //
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)
68 String di_artist;
69 String di_message;
70 String di_lyrics;
71 String di_composer;
72 String di_director;
74 uint32 di_discid; // disc, from which the track originates
77 protected:
78 virtual ~OptItem();
79 virtual IOptItem *addChild(IOptItem* child);
81 protected:
82 static bool sFreeChild(IOptItem* const& child);
84 public:
86 * own methods go here
89 OptItem(IOptItem *parent);
90 void printReport(DbgHandler *dbg) const;
92 public:
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);
165 #endif //_OPTITEM_H_