1 /* main */
2
3 #include "configure.h"
4
5 #include "XFireworks.h"
6 #include "arguments.h"
7
8 #ifndef VERSION
9 #define VERSION "XFireworks-unknown-version"
10 #endif
11
12 #ifndef XFIREWORKS_CONF_DIRECTRY
13 #define XFIREWORKS_CONF_DIRECTRY "/usr/X11R6/etc"
14 #endif
15
16 #ifndef DEFAULT_DISPLAY
17 #define DEFAULT_DISPLAY NULL
18 #endif
19
20 #ifndef DEFAULT_DIRECT_DRAW
21 #define DEFAULT_DIRECT_DRAW 1
22 #endif
23
24 #ifndef DEFAULT_BACKGROUND_COLOR
25 #define DEFAULT_BACKGROUND_COLOR "black"
26 #endif
27
28 #ifndef DEFAULT_FILENAME
29 #define DEFAULT_FILENAME "xfireworks.conf"
30 #endif
31
32 #ifndef DEFAULT_STUDYING_FLAG
33 #define DEFAULT_STUDYING_FLAG 0
34 #endif
35
36 #ifndef DEFAULT_CACHE_FLAG
37 #define DEFAULT_CACHE_FLAG 1
38 #endif
39
40 #ifndef DEFAULT_CACHE_SIZE
41 #define DEFAULT_CACHE_SIZE 10
42 #endif
43
44 #ifndef DEFAULT_HASH_NUMBER
45 #define DEFAULT_HASH_NUMBER 64
46 #endif
47
48 #ifndef DEFAULT_PIECES_MAX_NUMBER
49 #define DEFAULT_PIECES_MAX_NUMBER 100
50 #endif
51
52 #ifndef DEFAULT_FINE
53 #define DEFAULT_FINE 100
54 #endif
55
56 #ifndef DEFAULT_WAIT
57 #define DEFAULT_WAIT 0
58 #endif
59
60 #ifndef DEFAULT_GRADATION
61 #define DEFAULT_GRADATION 16
62 #endif
63
64 #ifndef DEFAULT_PROBABILITY_MAGNIFICATION
65 #define DEFAULT_PROBABILITY_MAGNIFICATION 100
66 #endif
67
68 #ifndef DEFAULT_SIZE_MAGNIFICATION
69 #define DEFAULT_SIZE_MAGNIFICATION 100
70 #endif
71
72 #ifndef DEFAULT_AIR_MAGNIFICATION
73 #define DEFAULT_AIR_MAGNIFICATION 100
74 #endif
75
76 #ifndef DEFAULT_GRAVITY_MAGNIFICATION
77 #define DEFAULT_GRAVITY_MAGNIFICATION 100
78 #endif
79
80 #ifndef DEFAULT_TRANSMISSION_MAGNIFICATION
81 #define DEFAULT_TRANSMISSION_MAGNIFICATION 100
82 #endif
83
84 #ifndef DEFAULT_AFTER_IMAGE_MAGNIFICATION
85 #define DEFAULT_AFTER_IMAGE_MAGNIFICATION 100
86 #endif
87
88 #ifndef DEFAULT_COLOR_LENGTH_MAGNIFICATION
89 #define DEFAULT_COLOR_LENGTH_MAGNIFICATION 100
90 #endif
91
92 #ifndef DEFAULT_NEXT_POWER_MAGNIFICATION
93 #define DEFAULT_NEXT_POWER_MAGNIFICATION 100
94 #endif
95
96 #ifndef DEFAULT_NEXT_NUMBER_MAGNIFICATION
97 #define DEFAULT_NEXT_NUMBER_MAGNIFICATION 100
98 #endif
99
100 static char * display_name = DEFAULT_DISPLAY;
101 static int direct_draw = DEFAULT_DIRECT_DRAW;
102 static char * background_color = DEFAULT_BACKGROUND_COLOR;
103 static char * filename = DEFAULT_FILENAME;
104
105 static int studying_flag = DEFAULT_STUDYING_FLAG;
106 static int cache_flag = DEFAULT_CACHE_FLAG;
107 static int cache_size = DEFAULT_CACHE_SIZE;
108 static int hash_number = DEFAULT_HASH_NUMBER;
109 static int pieces_max_number = DEFAULT_PIECES_MAX_NUMBER;
110 static int fine = DEFAULT_FINE;
111 static int wait_time = DEFAULT_WAIT;
112 static int gradation = DEFAULT_GRADATION;
113
114 static int probability_magnification = DEFAULT_PROBABILITY_MAGNIFICATION;
115 static int size_magnification = DEFAULT_SIZE_MAGNIFICATION;
116 static int air_magnification = DEFAULT_AIR_MAGNIFICATION;
117 static int gravity_magnification = DEFAULT_GRAVITY_MAGNIFICATION;
118 static int transmission_magnification = DEFAULT_TRANSMISSION_MAGNIFICATION;
119 static int after_image_magnification = DEFAULT_AFTER_IMAGE_MAGNIFICATION;
120 static int color_length_magnification = DEFAULT_COLOR_LENGTH_MAGNIFICATION;
121 static int next_power_magnification = DEFAULT_NEXT_POWER_MAGNIFICATION;
122 static int next_number_magnification = DEFAULT_NEXT_NUMBER_MAGNIFICATION;
123
help()124 void help()
125 {
126 printf("%s\n\n", VERSION);
127 printf("XFireworks Copyright (c) 2000 Sakai Hiroaki.\n");
128 printf("All Rights Reserved.\n\n");
129 printf("Usage:\n");
130 printf(" xfireworks [options]\n\n");
131 printf("Options:\n");
132 printf(" -h, -help\n");
133 printf(" -display [displayname]\n");
134 printf(" -bg, -background, -background-color [backgroundcolor]\n");
135 printf(" -f, -file [filename]\n");
136 printf(" -wait [micro seconds]\n");
137 printf(" -fine [number]\n");
138 printf(" -gradation [number]\n");
139 printf(" -direct-draw, -no-direct-draw\n");
140 printf(" -probability, -probability-magnification [number]\n");
141 printf(" -size, -size-magnification [number]\n");
142 printf(" -air, -air-magnification [number]\n");
143 printf(" -gravity, -gravity-magnification [number]\n");
144 printf(" -transmission, -transmission-magnification [number]\n");
145 printf(" -after-image, -after-image-magnification [number]\n");
146 printf(" -color-length, -color-length-magnification [number]\n");
147 printf(" -next-power, -next-power-magnification [number]\n");
148 printf(" -next-number, -next-number-magnification [number]\n");
149 printf("\n");
150 exit (0);
151 }
152
153 Argument arguments[] = {
154 {"-h", ARGUMENTS_FUNCTION, (void *)(&help)},
155 {"-help", ARGUMENTS_FUNCTION, (void *)(&help)},
156 {"-display", ARGUMENTS_STRING, (void *)(&display_name)},
157 {"-bg", ARGUMENTS_STRING, (void *)(&background_color)},
158 {"-background", ARGUMENTS_STRING, (void *)(&background_color)},
159 {"-background-color", ARGUMENTS_STRING, (void *)(&background_color)},
160 {"-f", ARGUMENTS_STRING, (void *)(&filename)},
161 {"-file", ARGUMENTS_STRING, (void *)(&filename)},
162 {"-wait", ARGUMENTS_INTEGER, (void *)(&wait_time)},
163 {"-fine", ARGUMENTS_INTEGER, (void *)(&fine)},
164 {"-gradation", ARGUMENTS_INTEGER, (void *)(&gradation)},
165 {"-direct-draw", ARGUMENTS_FLAG_ON, (void *)(&direct_draw)},
166 {"-no-direct-draw", ARGUMENTS_FLAG_OFF, (void *)(&direct_draw)},
167
168 {"-probability",
169 ARGUMENTS_INTEGER, (void *)(&probability_magnification)},
170 {"-probability-magnification",
171 ARGUMENTS_INTEGER, (void *)(&probability_magnification)},
172
173 {"-size", ARGUMENTS_INTEGER, (void *)(&size_magnification)},
174 {"-size-magnification", ARGUMENTS_INTEGER, (void *)(&size_magnification)},
175
176 {"-air", ARGUMENTS_INTEGER, (void *)(&air_magnification)},
177 {"-air-magnification", ARGUMENTS_INTEGER, (void *)(&air_magnification)},
178
179 {"-gravity",
180 ARGUMENTS_INTEGER, (void *)(&gravity_magnification)},
181 {"-gravity-magnification",
182 ARGUMENTS_INTEGER, (void *)(&gravity_magnification)},
183
184 {"-transmission", ARGUMENTS_INTEGER, (void *)(&transmission_magnification)},
185 {"-transmission-magnification",
186 ARGUMENTS_INTEGER, (void *)(&transmission_magnification)},
187
188 {"-after-image", ARGUMENTS_INTEGER, (void *)(&after_image_magnification)},
189 {"-after-image-magnification",
190 ARGUMENTS_INTEGER, (void *)(&after_image_magnification)},
191
192 {"-color-length", ARGUMENTS_INTEGER, (void *)(&color_length_magnification)},
193 {"-color-length-magnification",
194 ARGUMENTS_INTEGER, (void *)(&color_length_magnification)},
195
196 {"-next-power", ARGUMENTS_INTEGER, (void *)(&next_power_magnification)},
197 {"-next-power-magnification",
198 ARGUMENTS_INTEGER, (void *)(&next_power_magnification)},
199
200 {"-next-number", ARGUMENTS_INTEGER, (void *)(&next_number_magnification)},
201 {"-next-number-magnification",
202 ARGUMENTS_INTEGER, (void *)(&next_number_magnification)},
203
204 /* �������鲼�ϥ��塼�˥��Ѥα������ץ����Ǥ� */
205
206 {"-pieces-max-number",ARGUMENTS_INTEGER, (void *)(&pieces_max_number)},
207
208 /* �ؽ���ǽ�����Ѥ��������ˤϡ��ʲ���ͭ���ˤ��ޤ��� */
209 /* �ؽ���ǽ�ȥ���å����ʻ�ѤǤ��ޤ�����ʻ�Ѥ��Ƥ⤢�ޤ��̣�Ϥ���ޤ���*/
210 /* �ؽ���ǽ�����Ѥ���ȡ��������� instance ��ꥹ�Ȥ���Ƭ�˻��ä� */
211 /* ����褦�ˤʤ�ޤ�������Ϥ���ǹ�®�� */
212 /* �ؽ���ǽ��̵�����ȡ������Ȥ��Ƴ�Ǽ����Τǡ���������Ȥ��ˡ� */
213 /* ������Ǽ����Ƥ��ʤ��ä��Ф����ˡ������˸������Ǥ��ڤ뤳�Ȥ��Ǥ���褦��*/
214 /* �ʤ�ޤ�������Ϥ���ǹ�®�� */
215 {"-studying", ARGUMENTS_FLAG_ON, (void *)(&studying_flag)},
216 {"-no-studying", ARGUMENTS_FLAG_OFF, (void *)(&studying_flag)},
217
218 /* �ʲ���ͭ���ˤ���ȡ�����å������Ѥ���褦�ˤʤ�ޤ��� */
219
220 {"-cache", ARGUMENTS_FLAG_ON, (void *)(&cache_flag)},
221 {"-no-cache", ARGUMENTS_FLAG_OFF, (void *)(&cache_flag)},
222
223 /* ����å���Υ���������ꤷ�ޤ��� */
224 {"-cache-size", ARGUMENTS_INTEGER, (void *)(&cache_size)},
225
226 /* �ϥå���Υ���������ꤷ�ޤ��� */
227 {"-hash-number", ARGUMENTS_INTEGER, (void *)(&hash_number)},
228
229 {NULL, ARGUMENTS_NONE, NULL}
230 };
231
main(int argc,char * argv[])232 int main(int argc, char * argv[])
233 {
234 XFireworks xfireworks;
235
236 Arguments_Read(&argc, argv, arguments);
237
238 if (cache_size < 1) cache_size = 1;
239 if (hash_number < 1) hash_number = 1;
240 if (fine < 1) fine = 1;
241 if (gradation < 1) gradation = 1;
242 if (pieces_max_number < 1) pieces_max_number = 1;
243 if (wait_time < 0) wait_time = 0;
244
245 if (probability_magnification < 0) probability_magnification = 0;
246 if (size_magnification < 0) size_magnification = 0;
247 if (air_magnification < 0) air_magnification = 0;
248 if (gravity_magnification < 0) gravity_magnification = 0;
249 if (transmission_magnification < 0) transmission_magnification = 0;
250 if (after_image_magnification < 0) after_image_magnification = 0;
251 if (color_length_magnification < 0) color_length_magnification = 0;
252 if (next_power_magnification < 0) next_power_magnification = 0;
253 if (next_number_magnification < 0) next_number_magnification = 0;
254
255 xfireworks = XFireworks_Create(display_name,
256 direct_draw,
257 background_color,
258 XFIREWORKS_CONF_DIRECTRY,
259 filename,
260 studying_flag,
261 cache_flag,
262 cache_size,
263 hash_number,
264 fine,
265 gradation,
266 probability_magnification,
267 size_magnification,
268 air_magnification,
269 gravity_magnification,
270 transmission_magnification,
271 after_image_magnification,
272 color_length_magnification,
273 next_power_magnification,
274 next_number_magnification);
275 XFireworks_Start(xfireworks, pieces_max_number, wait_time);
276 XFireworks_Destroy(xfireworks);
277
278 exit (0);
279 }
280
281 /* End of Program */
282