int myfrag;
int oss_speed, oss_stereo;
- if(iDisStereo) pstereo=OSS_MODE_MONO;
- else pstereo=OSS_MODE_STEREO;
-
+ pstereo = OSS_MODE_STEREO;
oss_speed = pspeed;
oss_stereo = pstereo;
}
// we use 64 fragments with 1024 bytes each
+ // rearmed: now using 10*4096 for better latency
- fragsize=10;
- myfrag=(63<<16)|fragsize;
+ fragsize=12;
+ myfrag=(10<<16)|fragsize;
if(ioctl(oss_audio_fd,SNDCTL_DSP_SETFRAGMENT,&myfrag)==-1)
{
return;
}
- if(ioctl(oss_audio_fd,SNDCTL_DSP_STEREO,&oss_stereo)==-1)
+ if(ioctl(oss_audio_fd,SNDCTL_DSP_STEREO,&oss_stereo)==-1 || !oss_stereo)
{
printf("Stereo mode not supported!\n");
return;
}
- if(oss_stereo!=1)
- {
- iDisStereo=1;
- }
-
if(ioctl(oss_audio_fd,SNDCTL_DSP_SPEED,&oss_speed)==-1)
{
printf("Sound frequency not supported\n");
audio_buf_info info;
unsigned long l;
- if(oss_audio_fd == -1) return SOUNDSIZE;
+ if(oss_audio_fd == -1) return 1;
if(ioctl(oss_audio_fd,SNDCTL_DSP_GETOSPACE,&info)==-1)
l=0;
else
{
if(info.fragments<(info.fragstotal>>1)) // can we write in at least the half of fragments?
- l=SOUNDSIZE; // -> no? wait
+ l=1; // -> no? wait
else l=0; // -> else go on
}