home *** CD-ROM | disk | FTP | other *** search
- #include "demo.h"
- #include <cdr.h>
-
- int MusicFlag = 1;
-
- struct TOC{
- char min;
- char sec;
- char frame;
- } tracktime[99],disktime,starttime,endtime,nowtime,disktime;
-
- void
- MusicInit()
- {
- SND_elevol_set(0,0,0);
- SND_elevol_set(1,127,127);
- SND_elevol_set(2,0,0);
- SND_elevol_set(3,0,0);
- SND_elevol_mute(0x30);
- SND_elevol_all_mute(-1);
- }
-
- void
- MusicOut()
- {
- int i,j;
- for(i=127;i!=0;i--) {
- SND_elevol_set(1,i,i);
- SND_elevol_mute(0x30);
- for(j=0;j<10000;j++);
- }
- }
-
- void
- MusicStart(no)
- int no;
- {
- int ret,cnt,status,nowno;
- int cdtype,start,end;
-
- MusicOut();
- for(cnt=0,ret=1;(cnt<10) && (ret!=0);cnt++) {
- ret = cdr_cdinfo(0,&cdtype,&start,&end,(char *)&tracktime[0],(char *)&disktime);
- cdr_pause(0) ;
- }
- if (ret) {
- MusicFlag = 0;
- return;
- }
-
- starttime.min = tracktime[no].min;
- starttime.sec = tracktime[no].sec;
- starttime.frame = tracktime[no].frame;
-
- endtime.min = tracktime[no+1].min;
- endtime.sec = tracktime[no+1].sec;
- endtime.frame = tracktime[no+1].frame;
-
- for (cnt=0,status=0;(cnt<10) && (status==0);cnt++) {
- SND_elevol_set(1,127,127);
- ret = cdr_mtrplay(0,(char *)&starttime,(char *)&endtime,99);
- cdr_mphase(0,&status,&nowno,(char *)&nowtime,(char *)&disktime);
- }
- if (status == 0) {
- MusicFlag = 0;
- } else {
- MusicFlag = 1;
- NowMusic = no;
- }
- }
-
- void
- MusicStop()
- {
- MusicOut();
- cdr_mstop(0);
- MusicFlag = 0;
- }