if(!openflage)return open(name);
mwave wav;
if(!wav.open(name))return false;
mmtime time;
//获得wav文件当前播放位置
time.wtype=time_bytes;
if(waveoutgetposition(hwaveout,&time,sizeof(mmtime)))
time.u.cb=0;
dword start=((time.u.cb>>1)<<1);
dword end=min(datasize_start,wav.datasize);
register wavdata* lpd=lpdata+start;
for(register dword i=0;i<end;i++)
{
//将两组wav文件数据相加,并检测数据大小是否合法,如果//数据大小越界,则分别取最大值和最小值
x=(((*(lpd+i))+(*(wav.lpdata+i))))_128;
if(x<0)x=0;
if(x>255)x=255;
*(lpd+i)=(byte)(x);
}
return true;
}
int mwave::stop()
{return !waveoutreset(hwaveout);}
int mwave::close()
{
if(hwaveout)
{
waveoutreset(hwaveout);
waveoutclose(hwaveout);