1 /*
2 	xcdroast.h
3 */
4 
5 #include "config.h"
6 
7 #define XCDROAST_VERSION VERSION
8 #define MAXLINE 1024
9 #define CDDAFRAME 2352
10 #define DATASECTORSIZE 2048
11 #define SUNDATASECTORSIZE 512
12 #define XCDRLOGO "icons/xcdrlogo.gif"
13 #define CDDBLOGO "icons/cddblogo.gif"
14 #define BURNPROOFLOGO "icons/burnproof.gif"
15 #define IMG_EXTENSIONS { ".iso", ".raw", ".img", ".wav", ".toc", NULL }
16 #define CDR_TYPES_MIN {20,21,23,27,30,34,50,63,74,-80,89,99,0} /* negative value is default */
17 #define DVD_TYPES_MB { 2600, 3950, 4700, 5200, 9400, 0 }
18 
19 #define TMP_XCDR_DIR "/tmp"
20 #define XCDROAST_INFO_EXT ".xinf"
21 #define CDDA2WAV_INFO_EXT ".inf"
22 
23 /* which is base of all filetree-selectors? Set to "$HOME" to have
24    this automatically be the home-directory of the current user */
25 #define FILETREEBASE "/"
26 /* #define FILETREEBASE "$HOME" */
27 
28 /* texts to write/blank modes */
29 #define WRITE_MODES { \
30 	N_("Disk-At-Once (DAO)"), \
31 	N_("Track-At-Once (TAO)"), \
32 	N_("TAO with zero pregap"), \
33 	N_("RAW writing (raw96r)"), \
34 	N_("RAW writing (raw96p)"), \
35 	N_("RAW writing (raw16)"), \
36 	NULL }
37 
38 #define HELP_WRITE_MODES { \
39 	N_("Write CD in Disk-At-Once mode. This will create an exact copy without any pauses between tracks. Currently doesn't work with all supported writers."), \
40 	N_("Write CD in Track-At-Once mode. Generates a 2 second pause between each track, but is supported on all writers."), \
41 	N_("Write CD in Track-At-Once mode, but eliminates the 2 second pause. So this looks very much like a DAO-CD, but only works for some TEAC/Traxdata-writers."), \
42 	N_("Write CD in RAW writing mode. It will write with 2352 byte sectors plus 96 bytes of raw P-W subchannel data resulting in a sector size of 2448 bytes. This is the preferred raw writing mode as it gives best control over the CD writing process. (For expert usage only!)"), \
43 	N_("Write CD in RAW writing mode. It will write with 2352 byte sectors plus 96 bytes of packed P-W subchannel data resulting in a sector size of 2448 bytes. This is the less preferred raw writing mode as only a few recordes support it. (For expert usage only!)"), \
44 	N_("Write CD in RAW writing mode. It will write with 2352 byte sectors plus 16 bytes of P-Q subchannel data resulting in a sector size of 2368 bytes. If a recorder does not support raw96r, this is the preferred raw writing mode. It does not allow to write CD-Text but it is the only raw writing mode in cheap CD writers. As these cheap writers in most cases do not support DAO mode. (For expert usage only!)"), \
45 	NULL }
46 
47 #define BLANK_MODES { \
48 	N_("blank the entire disk"), \
49 	N_("minimally blank the entire disk (PMA, TOC, pregap)"), \
50 	N_("blank a track"), \
51 	N_("unreserve a track"), \
52 	N_("blank a track tail"), \
53 	N_("unclose last session"), \
54 	N_("blank last session"), \
55 	NULL }
56 
57 #define VIEW_MODES { \
58 	N_("Small"), \
59 	N_("Normal"), \
60 	N_("Extended"), \
61 	NULL }
62 
63 #define CONTEXT_MSTRMENU { \
64 	N_("Select all"), \
65 	N_("Unselect all"), \
66 	N_("Load list"), \
67 	N_("Save list"), \
68 	N_("Clear list"), \
69 	NULL }
70 
71 /* icons for dialogs (borrowed from gnome) */
72 #define ICO_ERROR "icons/dialog_error.png"
73 #define ICO_INFO "icons/dialog_information.png"
74 #define ICO_WARN "icons/dialog_warning.png"
75 #define ICO_QUEST "icons/dialog_question.png"
76 #define ICO_DEF "icons/dialog_default.png"
77 
78 /* external called programms */
79 #ifndef hpux
80 # define DF "/bin/df -k"
81 # define DF2 "/usr/bin/df -k"
82 #else
83 # define DF "/bin/df -b"
84 # define DF2 "/usr/bin/df -b"
85 #endif
86 #define UNAME "/bin/uname -a"
87 #define UNAME2 "/usr/bin/uname -a"
88 
89 #define CHOWNGRPMOD_PATH "/bin:/usr/bin:/sbin:/usr/sbin"
90 #define CHOWN "chown"
91 #define CHGRP "chgrp"
92 #define CHMOD "chmod"
93 
94 #define SUDO "/usr/bin/sudo"
95 
96 /* HISTORIC - no longer used
97 #if defined(__FreeBSD__)
98 # define GROUPADD "/usr/sbin/pw"
99 #else
100 # define GROUPADD "/usr/sbin/groupadd"
101 #endif
102 */
103 
104 #define WAVPLAY "bin/wavplay"
105 #define RMTOOL "bin/rmtool"
106 #define VRFYTOOL "bin/vrfytool"
107 #define CDDBTOOL "bin/cddbtool"
108 #define WRAPPER "bin/xcdrwrap"
109 
110 /* this paths can be specified relative to lib-dir or absolute */
111 /* xcdroast will look for these first in $LIBDIR/ and if not found
112    then in $PREFIX (e.g. /usr/bin/cdrecord instead of
113    /usr/local/lib/xcdroast-0.98/bin/cdrecord) */
114 
115 #define CDRECORD "bin/cdrecord"
116 #define CDDA2WAV "bin/cdda2wav"
117 #define READCD "bin/readcd"
118 #define MKISOFS "bin/mkisofs"
119 
120 /* MINIMUM required versions. Greater versions are now silently
121    accepted.
122    Distribution-Vendors: DO NOT TOUCH THESE!
123    IT WONT WORK WITH LOWER VERSIONS, EVEN WHEN YOU THINK IT DOES! */
124 
125 #define CDRECORD_VERSION "2.01"
126 #define CDRECORD_PRODVD_VERSION "2.01a11"
127 #define CDRECORD_VERSION_WITH_ONTHFLYAUDIO "2.01a13"
128 #define MKISOFS_VERSION "2.01"
129 #define CDDA2WAV_VERSION "2.01"
130 #define READCD_VERSION "2.01"
131 
132 /* group to use for non-root-mode */
133 /* #define NONROOTMODEGROUP "xcdwrite"  - HISTORIC */
134 
135 /* demo sound */
136 #define DSPTESTSOUND "sound/test.wav"
137 
138 /* max scanned scsi devices */
139 #define MAXDEVICES 128
140 
141 /* max support for cdrecord-drivers (as in cdrecord driver=help) */
142 #define MAXDRIVERS 64
143 
144 /* max support for blank-modes (as in cdrecord blank=help) */
145 #define MAXBLANKMODES 16
146 
147 /* max support for joliet charsets */
148 #define MAXCHARSETS 64
149 
150 /* max tracks a CD can have */
151 #define MAXTRACKS 100
152 
153 /* max CDDB matches */
154 #define MAXCDDB 100
155 
156 /* max args for pipes */
157 #define MAXPIPEARGS 1024
158 
159 /* timeout in seconds for CDDB queries over network */
160 #define NETIOTIMEOUT 10;
161 
162 /* default image-file-prefix */
163 #define IMGFILEPREFIX "track"
164 
165 /* default filenames for process-output-savefiles */
166 #define SAVEOUTCDRECORD "cdrecord.out"
167 #define SAVEREADTRACKS "readtracks.out"
168 #define SAVEVERIFYTRACKS "verifytracks.out"
169 #define SAVEMASTERTRACK "mkisofs.out"
170 #define SAVEMASTERCALC "mkisofscalc.out"
171 #define SAVEMASTERLIST "xcdrmaster.lst"
172 
173 /* default paths/configfile */
174 #define PREFIX "/usr/local"
175 #define LIBDIR "lib/xcdroast-0.98"
176 #define CONFIGDIR "~/.xcdroast"
177 #define CONFFILE "xcdr098.cfg"
178 #define LOGFILE "xcdr098.log"
179 #define ISOOPTFILE "isoopt.cfg"
180 #define ISOHEADERFILE "isoheader.cfg"
181 #define WRITEOPTFILE "writeopt.cfg"
182 #define NONROOTBAK "nonrootflags.cfg"
183 /* rootconfig is stored in $sysconfdir (/usr/local/etc by default) */
184 #define ROOTCONFIG "xcdroast.conf"
185 
186 /* font definitions */
187 #define NORMFONT "-*-helvetica-medium-r-normal-*-*-120-*-*-p-*-*,-default-*-medium-r-*--14-*-*-*-*-*-*-*,*-medium-r-*,*"
188 #define BOLDFONT "-*-helvetica-bold-r-normal-*-*-120-*-*-p-*-*,-default-*-bold-r-*--16-*-*-*-*-*-*-*,*-bold-r-*,*"
189 #define BIGFONT "-*-helvetica-bold-r-normal-*-*-240-*-*-p-*-*,-default-*-bold-r-*--24-*-*-*-*-*-*-*,*-bold-r-*,*"
190 #define SLANTFONT "-*-helvetica-medium-o-normal-*-*-100-*-*-*-*-*-*,-default-*-medium-i-*--12-*-*-*-*-*-*-*,*-medium-i-*,*"
191 #define FIXEDFONT "-*-fixed-medium-r-normal-*-*-120-*-*-*-*-*-*,*"
192 
193 /* default window sizes - usage autodetected */
194 /* 75dpi fonts */
195 #define XCDR_TOPLEVEL_X0 790
196 #define XCDR_TOPLEVEL_Y0 550
197 /* 100dpi fonts */
198 #define XCDR_TOPLEVEL_X1 980
199 #define XCDR_TOPLEVEL_Y1 670
200 
201 /* color definitions
202    - may not be used at all because they interfere with themes */
203 #define TOOLTIPCOL "light yellow"
204 #define GTKLISTCOL "gray95"
205 #define SELECTEDCLISTCOL "gray70"
206 #define ENABLEDCOLOR "black"
207 #define DISABLEDCOLOR "gray40"
208 
209 /* text shortcuts */
210 #define T_XCDROAST "X-CD-Roast"
211 #define T_YES _("Yes")
212 #define T_NO _("No")
213 #define T_CANCEL _("Cancel")
214 #define T_OK _("Ok")
215 #define T_CLOSE _("Close")
216 #define T_ANYWAY _("Continue anyway")
217 
218 /* predefined master iso-opitions */
219 /* there must be the same number of TYPES as TEXTS (minus the NULL element) */
220 #define MASTER_TEXTS { \
221 	N_("Rock Ridge + Joliet"), \
222 	N_("Rock Ridge only"), \
223 	N_("MS-DOS"), \
224 	NULL }
225 #define MASTER_TYPES { 	{ 1,1,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }, \
226 			{ 1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }, \
227 			{ 0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } }
228 
229 #define DEF_BOOT_CATALOG "boot.catalog"
230 
231 /* some defines for drag&drop */
232 
233 #define DRAG_TAR_NAME_0         "text/plain"
234 #define DRAG_TAR_INFO_0         0
235 #define DRAG_TAR_NAME_1         "text/uri-list"
236 #define DRAG_TAR_INFO_1         1
237 #define DRAG_TAR_NAME_2         "STRING"
238 #define DRAG_TAR_INFO_2         2
239 
240 /* long long format */
241 #if __x86_64 || __ppc64 || __sparc64
242 #  define LL_FORMAT "ld"
243 #else
244 #  define LL_FORMAT "lld"
245 #endif
246