disable the unrecognized nls and x flags
[AROS-Contrib.git] / FryingPan / FP / IEngine.h
blob6762d51bd3160b395ca4ed532d9e4b6545aeaa34
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 _IENGINE_H_
21 #define _IENGINE_H_
23 #include "Engine/Calls.h"
24 #include <Optical/IOptItem.h>
25 #include "ITrack.h"
26 #include <Generic/VectorT.h>
27 #include <Generic/RWSyncT.h>
29 class Hook;
30 class IBrowser;
31 class ClElement;
33 enum EngineMessage
35 Eng_Update = 0x1ff00000,
36 Eng_JobStarted,
37 Eng_JobFinished,
38 Eng_DisableISO,
39 Eng_EnableISO,
40 Eng_UpdateLayout,
43 class IEngine
45 public:
46 virtual void registerHandler(const Hook*) = 0; // IEngine*, Message*
47 virtual void unregisterHandler(const Hook*) = 0; //
49 virtual const char *getName() = 0;
50 virtual void setName(const char* name) = 0;
52 virtual VectorT<const char*> &getDataExports() = 0;
53 virtual VectorT<const char*> &getAudioExports() = 0;
54 virtual VectorT<const char*> &getSessionExports() = 0;
56 virtual const char* getDataExport() = 0;
57 virtual const char* getAudioExport() = 0;
58 virtual const char* getSessionExport() = 0;
59 virtual void setDataExport(const char* name) = 0;
60 virtual void setAudioExport(const char* name) = 0;
61 virtual void setSessionExport(const char* name) = 0;
63 virtual IBrowser* getISOBrowser() = 0;
64 virtual void addISOItem(const char* path) = 0;
65 virtual void remISOItem(ClElement* elem) = 0;
66 virtual void makeISODir(const char* name) = 0;
67 /*
68 * Open & Close device
71 virtual bool openDevice(const char* name, int unit) = 0;
72 virtual const char *getDevice() = 0;
73 virtual int getUnit() = 0;
74 virtual void closeDevice() = 0;
75 virtual bool isOpened() = 0;
77 /*
78 * drive information
81 virtual const char *getDriveVendor() = 0;
82 virtual const char *getDriveProduct() = 0;
83 virtual const char *getDriveVersion() = 0;
85 virtual DRT_Mechanism getMechanismType() = 0;
86 virtual unsigned long getReadableMedia() = 0;
87 virtual unsigned long getWritableMedia() = 0;
88 virtual unsigned long getCapabilities() = 0;
89 virtual DiscSpeed *getReadSpeeds() = 0;
90 virtual DiscSpeed *getWriteSpeeds() = 0;
91 virtual uint16 getWriteSpeed() = 0;
92 virtual uint16 getReadSpeed() = 0;
93 virtual void setWriteSpeed(uint16) = 0;
94 virtual void setReadSpeed(uint16) = 0;
95 virtual bool isRegistered() = 0;
98 * media information
100 virtual bool isDiscInserted() = 0;
101 virtual bool isDVD() = 0;
102 virtual bool isCD() = 0;
103 virtual bool isBD() = 0;
104 virtual DRT_Profile getDiscType() = 0;
105 virtual DRT_SubType getDiscSubType() = 0;
106 virtual const char *getDiscVendor() = 0;
107 virtual bool isRecordable() = 0;
108 virtual bool isErasable() = 0;
109 virtual bool isFormatable() = 0;
110 virtual bool isOverwritable() = 0;
111 virtual uint32 getDiscSize() = 0;
114 * actions
117 virtual void updateAll() = 0;
118 virtual const char *getActionName() = 0;
119 virtual const char *getLayoutInfo() = 0;
120 virtual uint32 getLayoutSize() = 0;
121 virtual unsigned short getActionProgress() = 0;
122 virtual void loadTray() = 0;
123 virtual void ejectTray() = 0;
124 virtual void closeSession() = 0;
125 virtual void closeDisc() = 0;
126 virtual void closeTracks() = 0;
127 virtual void repairDisc() = 0;
128 virtual void quickErase() = 0;
129 virtual void completeErase() = 0;
130 virtual void quickFormat() = 0;
131 virtual void completeFormat() = 0;
132 virtual void structureDisc() = 0;
134 virtual const IOptItem *getContents() = 0;
135 virtual void layoutTracks(bool, bool) = 0;
137 virtual void downloadTrack(const IOptItem*, const char*) = 0;
138 virtual void createImage(const char*) = 0;
139 virtual void addTrack(const char*) = 0;
140 virtual void remTrack(ITrack *track) = 0;
141 virtual RWSyncT< VectorT<ITrack*> > &tracks() = 0;
143 virtual bool importSession(const char*) = 0;
144 virtual const IOptItem *getSessionContents() = 0;
146 virtual void recordDisc(bool masterize, bool closedisc)= 0;
147 virtual void recordSession() = 0; // upload only the session
149 virtual void setDOSDevice(const char*) = 0;
150 virtual const char *getDOSDevice() = 0;
151 virtual void setDOSInhibit(bool flag) = 0;
152 virtual bool getDOSInhibit() = 0;
153 virtual const char *findMatchingDOSDevice() = 0;
156 #endif