1 
2 /*
3  * xa_config.h
4  *
5  * Copyright (C) 1990-1998,1999 by Mark Podlipec.
6  * All rights reserved.
7  *
8  * This software may be freely used, copied and redistributed without
9  * fee for non-commerical purposes provided that this copyright
10  * notice is preserved intact on all copies.
11  *
12  * There is no warranty or other guarantee of fitness of this software.
13  * It is provided solely "as is". The author disclaims all
14  * responsibility and liability with respect to this software's usage
15  * or its effect upon hardware or computer systems.
16  *
17  */
18 
19 
20 /* These defines are used to initialize the various flags that control
21  * the behavious of XAnim. They all can be overriden on the command
22  * line except for DEFAULT_PLUS_IS_ON and DEFAULT_X11_VERBOSE_FLAG.
23  */
24 
25 
26 /* If this is aTRUE then '+' will turn an option on and '-' will turn it off.
27  * if this is xaFALSE then '+' will turn an option off and '-' will turn
28  * it on.
29  */
30 #define DEFAULT_PLUS_IS_ON	xaTRUE
31 
32 /* If xaTRUE then animations will be buffered ahead of time. Uses more memory.
33  */
34 #define DEFAULT_BUFF_FLAG	xaFALSE
35 
36 /* If xaTRUE then animations will be read from disk. This and BUFF_FLAG are
37  * mutually exclusive with BUFF_FLAG having priority.
38  */
39 #define DEFAULT_FILE_FLAG	xaTRUE
40 
41 /* If xaTRUE then iff animations will always loop back to 1st frame instead
42  * of to the 2nd delta. There is no easy way of knowing this ahead of time
43  * and and is rare and so it should be kept xaFALSE.
44  */
45 #define DEFAULT_IFF_LOOP_OFF	xaFALSE
46 
47 /* If xaTRUE then IFF CRNG (color cycling chunks) will be activated for
48  * single image IFF files.
49  */
50 #define DEFAULT_CYCLE_IMAGE_FLAG	xaTRUE
51 
52 /* If xaTRUE then IFF CRNG (color cycling chunks) will be activated for
53  * IFF animation files.
54  */
55 #define DEFAULT_CYCLE_ANIM_FLAG		xaFALSE
56 
57 /* If xaTRUE then image height is reduced by half if an IFF image/animation
58  * is interlaced.
59  */
60 #define DEFAULT_ALLOW_LACE_FLAG		xaFALSE
61 
62 /* If xaTRUE then the cmap will fade to black between files. Only works
63  * on PSEUDO_COLOR displays.
64  */
65 /* NOTE: CURRENTLY NOT SUPPORTED */
66 #define DEFAULT_FADE_FLAG	xaFALSE
67 #define DEFAULT_FADE_TIME	20
68 
69 /* If xaTRUE then window will be the size of the largest image. Smaller
70  * images and animations will be in upper left hand corner.
71  */
72 
73 #define DEFAULT_NORESIZE_FLAG	xaFALSE
74 
75 /* If xaTRUE then a window can be resized with the mouse. This results
76  * in the animation being scaled to fit and window. This also overrides
77  * DEFAULT_NORESIZE_FLAG.
78  */
79 #define DEFAULT_ALLOW_RESIZING	xaFALSE
80 
81 /* This affect IFF type 5 and J compressions as well as most FLI/FLC type
82  * compressions. Only the minimum area of the screen is updated that
83  * contains the changes from one image to the next. This is forced off
84  * in MONOCHROME mode due to peculiarities of the Floyd-Steinburg
85  * dithering algorithm. Having this on can cause "apparent" pauses in
86  * the animation because of the time difference between updating the
87  * entire screen and just part of it. This will occur if your hardware
88  * can not display the images at the specified rate. Turning optimization
89  * off will force the entire animation to go at the slower rate.
90  */
91 #define DEFAULT_OPTIMIZE_FLAG	xaTRUE
92 
93 /* If this is xaTRUE and DEFAULT_BUFF_FLAG is xaTRUE, the images will be
94  * put into pixmaps. Pixmaps have the following advantages:
95  *     they are stored locally  (in case you're running remotely)
96  *     they aren't copied twice (like most X11 servers do with XImages)
97  *     they could be in display memory(if your hardware has enough of it)
98  * It usually speeds things up.
99  */
100 #define DEFAULT_PIXMAP_FLAG	xaFALSE
101 /* If xaTRUE then Floyd-Steinberg dithering is used for MONOCHROME displays
102  */
103 #define DEFAULT_DITHER_FLAG	xaTRUE
104 
105 /* This cause XAnim to print out debugging information. Valid levels are
106  * from 1 to 5, with 0 being off.
107  */
108 #define DEFAULT_DEBUG		0
109 
110 /* When this is xaTRUE it causes XAnim to print out extra information about
111  * the animations
112  */
113 #define DEFAULT_VERBOSE		xaFALSE
114 
115 /* When this is xaTRUE it prevents XAnim from printing out revision and
116  * copyright info. Useful if being called up from WWW browser.
117  * This is overriden by -q option.  This is also overridden by verbose option
118  * and debug option.
119  */
120 #define DEFAULT_QUIET		xaFALSE
121 
122 /* This is the default number of times to loop through each file before
123  * continuing on.
124  */
125 #define DEFAULT_LOOPEACH_FLAG	1
126 
127 /* When this is xaTRUE it causes XAnim to "ping-pong" an animation. In other
128  * words, the anim will be played forwards to the end and then backwards
129  * to the beginning. This will be counted as one loop.
130  */
131 #define DEFAULT_PINGPONG_FLAG	xaFALSE
132 
133 /* This is the number of milliseconds between frames of the animation.
134  * If 0 then the number of milliseconds is taken from the animation
135  * itself.
136  */
137 #define DEFAULT_JIFFY_FLAG	0
138 
139 /* This is the number of milliseconds for single image cycling IFF files.
140  */
141 #define DEFAULT_CYCLING_TIME   8000
142 
143 /* Not yet supported
144  */
145 #define DEFAULT_PACK_FLAG	xaFALSE
146 
147 /* This causes XAnim to print out more information about the X11
148  * display on which it is running.
149  */
150 #define DEFAULT_X11_VERBOSE_FLAG	xaFALSE
151 
152 
153 /* COLOR DITHERING. Currently only NONE and FLOYD are supported. FLOYD
154  * dithering can add substantially to run and start up times.
155  */
156 #define CMAP_DITHER_NONE	0
157 #define CMAP_DITHER_FLOYD	1
158 #define CMAP_DITHER_ORDERED	2
159 
160 /* COLOR MAP STUFF.
161  *    luma_sort:   sorts the color map based on color's brightness
162  *    map_to_1st:  remaps new cmaps into 1st cmap. If try_to_1st fails
163  *		   or isn't set.
164  *    map_to_one:  Creates one colormap from all color maps and then
165  *		   remaps all images/anims to that cmap. Eliminates
166  *		   flickering, but may reduce color quality.
167  *    play_nice:   Allocate colors from X11 defaults cmap. Screen colors
168  *		   won't change when mouse is moved into and out of
169  *		   animation window. Color Cyling impossible with this
170  *		   option. If you are running with non-default Visual,
171  *		   X11 might have to change the colormap anyways.
172  *    hist_flag:   If XAnim needs to generate one cmap from multiple
173  *		   (ie map_to_one/play_nice or cmap > X11's cmap) then
174  *		   do histograms on any uncompressed images to aid in
175  *		   color reductions if necessary. More time at startup
176  *		   but might help color quality.
177  */
178 #define DEFAULT_CMAP_LUMA_SORT	xaFALSE
179 #define DEFAULT_CMAP_MAP_TO_1ST	xaFALSE
180 #define DEFAULT_CMAP_MAP_TO_ONE	xaFALSE
181 #define DEFAULT_CMAP_PLAY_NICE  xaTRUE
182 #define DEFAULT_CMAP_HIST_FLAG  xaFALSE
183 #define DEFAULT_CMAP_DITHER_TYPE CMAP_DITHER_NONE
184 
185 /*
186  * Options for Median Cut stuff.
187  */
188 #define CMAP_MEDIAN_SUM    0
189 #define CMAP_MEDIAN_CENTER 1
190 #define DEFAULT_CMAP_MEDIAN_TYPE 0
191 
192 /* These are for TrueColor animatons such and HAM,HAM8 or 24 bit RLE files.
193  * true_to_332 means images are truncated to 3 bits red, 3 bits green and
194  * 	2 bits blue in order to fit in a 256 entry cmap. If your X11 display
195  * 	supports less than 256 cmap entries, these numbers will be less.
196  *
197  * true_to_gray means TrueColor anims are converted to 8bits of gray.
198  * true_to_1st means TrueColor anims have a cmap created by running
199  * 	a median cut algorithm on their 1st image and then using that
200  *	for the remainder of the images. Anim must be buffered.
201  * true_to_all means TrueColor anims have a cmap created by running a
202  *	median cut algorithm on each image to create a cmap for each
203  *	image. Adds substantially to start up time. Anim must be buffered.
204  * true_to_map: This is automatically set when true_to_1st and true_to_all
205  *	are turned on. It can be optionally used with true_to_332 and
206  *	true_to_gray to used more bits(than332) when dithering TrueColor
207  *	anims down to the Displays cmap. Really doesn't make any sense
208  *	to set this with true_to_gray unless your display has less than
209  *	8 bits of grayscale.
210  */
211 #define DEFAULT_TRUE_TO_332     xaTRUE
212 #define DEFAULT_TRUE_TO_GRAY    xaFALSE
213 #define DEFAULT_TRUE_TO_1ST     xaFALSE
214 #define DEFAULT_TRUE_TO_ALL     xaFALSE
215 #define DEFAULT_TRUE_MAP_FLAG	xaFALSE
216 
217 /* 6 is 256K, 7 is 2M and 8 is 16M */
218 #define CMAP_CACHE_MAX_BITS 6
219 #define DEFAULT_CMAP_MEDIAN_CACHE xaFALSE
220 
221 /*
222  * Title Options
223  *
224  * NONE		Title is just "XAnim"
225  * FILE		Title is just anim name while running. When stopped the
226  *		frame number is included.
227  * FRAME	Title is anim anim and frame number while running.
228  */
229 
230 #define XA_TITLE_NONE   0
231 #define XA_TITLE_FILE   1
232 #define XA_TITLE_FRAME  2
233 
234 #define DEFAULT_XA_TITLE_FLAG  1
235 
236 /*
237  * GAMMA Options.
238  *
239  * DISP_GAMMA:	Is the default gamma of your display. This is to be
240  *		used to universally darken or lighten animations. Also
241  *		may be used to help gamma correct your display. :^)
242  *
243  * ANIM_GAMMA:	This is used to specify that all anims(unless specified
244  *		on the command line) are treated as if they were color
245  *		compensated to this gamma value. Unfortunately, for
246  *		the majority of the cases, you have no clue what gamma
247  *		value the animation was compensated to.
248  */
249 #define DEFAULT_DISP_GAMMA 1.0
250 #define DEFAULT_ANIM_GAMMA 1.0
251 
252 /*
253  * At the end of displaying the command line, xanim will either loop
254  * through again(xaFALSE), exit(xaTRUE), or pause and wait user input(xaPAUSE).
255  */
256 #define DEFAULT_XA_EXIT_FLAG  xaFALSE
257 
258 /*
259  * This determines if a remote control window should come up by default
260  * or not. It can still be overridden by the command line. This is only
261  * valid if REMOTE control support is compiled in.
262  */
263 #define DEFAULT_XA_REMOTE_FLAG  xaTRUE
264 
265 
266 /* Which Type of Remote to have
267  *    0   Normal remote with seek/loop scroll bars on the bottom
268  *    1   Remote with seek/loop scrollbars on right side
269  *
270  */
271 #define DEFAULT_XA_REMOTE_TYPE  0
272 
273 /* Default XPOS,YPOS of the Remote Control Window. NOTE: your window manager
274  * may or may not honor these settings
275  */
276 #define DEFAULT_XA_REMOTE_XPOS  20
277 #define DEFAULT_XA_REMOTE_YPOS  20
278 
279 /* Default XPOS,YPOS of the Video Window. NOTE: your window manager
280  * may or may not honor these settings
281  */
282 #define DEFAULT_XA_VIDEO_XPOS  20
283 #define DEFAULT_XA_VIDEO_YPOS  180
284 
285 /* Default Width of Seek ScrollBar */
286 #define DEFAULT_XA_REMOTE_SEEKW  100
287 
288 /* Default Height of Seek ScrollBar */
289 #define DEFAULT_XA_REMOTE_SEEKH  12
290 
291 
292 /* xaTRUE or xaFALSE */
293 #define DEFAULT_XA_AUDIO_ENABLE xaTRUE
294 
295 /* 0 - 100 */
296 #define DEFAULT_XA_AUDIO_VOLUME 40
297 
298 /* This is the default Audio Port that is enabled.
299  * This value may be overridden by the env SPEAKER variable if defined.
300  * NOTE: on some machines EXTERNAL and HEADPHONES are the same.
301  *
302  * DEFAULT_XA_AUDIO_PORT settings:
303  *   XA_AUDIO_PORT_INT      Internal speaker
304  *   XA_AUDIO_PORT_HEAD     Headphones
305  *   XA_AUDIO_PORT_EXT      Line Out
306  *   XA_AUDIO_PORT_NONE	  None - no sound OR no change from before(SPARC)
307  *
308  * SPEAKER environment variable settings:
309  *   INTERNAL		Internal speaker(also speaker box on Sparcs)
310  *   HEADPHONES		Headphones
311  *   EXTERNAL		LineOut/External speakers
312  */
313 
314 #define DEFAULT_XA_AUDIO_PORT   XA_AUDIO_PORT_INT
315 
316 /* Currently only used for AIX */
317 /* Some AIX machines have "/dev/acpa0/1" instead. */
318 /* Some AIX machines have "/dev/baud0/1" instead. UltiMedia Sound system */
319 #ifdef XA_AIX_AUDIO
320 #define DEFAULT_AUDIO_DEVICE_NAME   "/dev/paud0/1"
321 #else
322 #define DEFAULT_AUDIO_DEVICE_NAME   "/dev/audio"
323 #endif
324 
325