spu: get rid of iSPUIRQWait
[pcsx_rearmed.git] / plugins / dfsound / oss.c
index f4dd215..04d7446 100644 (file)
@@ -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
   }