X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=plugins%2Fdfsound%2Foss.c;h=04d74463536544b6b4063e03796c14993169e897;hp=f4dd215ddeb90e1499440e237bb12f7d3ad29128;hb=c67af2ac1a8305c7377c7dda844257c5bc1545e3;hpb=ef79bbde537d6b9c745a7d86cb9df1d04c35590d diff --git a/plugins/dfsound/oss.c b/plugins/dfsound/oss.c index f4dd215d..04d74463 100644 --- a/plugins/dfsound/oss.c +++ b/plugins/dfsound/oss.c @@ -46,9 +46,7 @@ void SetupSound(void) 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; @@ -65,9 +63,10 @@ void SetupSound(void) } // 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) { @@ -89,17 +88,12 @@ void SetupSound(void) 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"); @@ -135,13 +129,13 @@ unsigned long SoundGetBytesBuffered(void) 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 }