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)20sound_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)36sounds_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)56void 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