home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FreeWare Collection 2
/
FreeSoftwareCollection2pd199x-jp.img
/
demo
/
music.c
< prev
next >
Wrap
Text File
|
1990-06-14
|
1KB
|
79 lines
#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;
}