1 /*
2    XMascot Ver 2.6
3    Copyright(c) 1996,1997 Go Watanabe     go@cclub.tutcc.tut.ac.jp
4                           Tsuyoshi IIda   iida@cclub.tutcc.tut.ac.jp
5 */
6 
7 #ifdef SOUND
8 
9 #include <stdio.h>
10 #include <stdlib.h>
11 #include <sys/types.h>
12 #include <unistd.h>
13 
14 #include "xmascot.h"
15 
16 extern AppData  adat;
17 
18 /* �������� (1�Ĥ���) */
19 void
sound_play(char * name)20 sound_play(char *name)
21 {
22 	pid_t           pid;
23 	char            cmdline[1024];
24 	name = search(name);
25 	if (adat.snd_cmd != NULL && name != NULL) {
26 		sprintf(cmdline, adat.snd_cmd, name);
27 		if ((pid = fork()) == 0) {
28 			system(cmdline);
29 			exit(0);
30 		}
31 	}
32 }
33 
34 /* Ϣ³���� */
35 void
sounds_play(char ** names,int num)36 sounds_play(char **names, int num)
37 {
38 	int             i;
39 	pid_t           p;
40 	char            cmdline[1024];
41 	char           *name;
42 
43 	if (adat.snd_cmd != NULL && num > 0) {
44 		if ((p = fork()) == 0) {
45 			for (i = 0; i < num; i++) {
46 				if ((name = search(names[i])) != NULL) {
47 					sprintf(cmdline, adat.snd_cmd, name);
48 					system(cmdline);
49 				}
50 			}
51 			exit(0);
52 		}
53 	}
54 }
55 
xmascot_sound(XMascotData * adat,SoundType num)56 void xmascot_sound(XMascotData *adat, SoundType num)
57 {
58 	switch(num) {
59 	case SOUND_START:
60 		sound_play(adat->mascot_menus[adat->menu_no].
61 				   mascots[adat->mascot_number].start_snd);
62 		break;
63 	case SOUND_END:
64 		sound_play(adat->mascot_menus[adat->menu_no].
65 				   mascots[adat->mascot_number].end_snd);
66 		break;
67 	case SOUND_CLICK:
68 		sound_play(adat->mascot_menus[adat->menu_no].
69 				   mascots[adat->mascot_number].click_snd);
70 		break;
71 #ifdef BIFF
72 	case SOUND_MAIL:
73 		sound_play(adat->mascot_menus[adat->menu_no].
74 				   mascots[adat->mascot_number].mail_snd);
75 		break;
76 #endif
77 	}
78 }
79 
80 
81 #endif
82