spu: also return on decoder irqs
authornotaz <notasas@gmail.com>
Thu, 3 Jan 2013 00:00:44 +0000 (02:00 +0200)
committernotaz <notasas@gmail.com>
Thu, 3 Jan 2013 00:00:44 +0000 (02:00 +0200)
plugins/dfsound/spu.c

index 2466569..9f91b8b 100644 (file)
@@ -689,7 +689,7 @@ static int do_samples(int forced_updates)
  int ch,d,silentch;
  int bIRQReturn=0;
 
  int ch,d,silentch;
  int bIRQReturn=0;
 
- while(1)
+ while(!bIRQReturn)
   {
    // ok, at the beginning we are looking if there is
    // enuff free place in the dsound/oss buffer to
   {
    // ok, at the beginning we are looking if there is
    // enuff free place in the dsound/oss buffer to
@@ -863,6 +863,7 @@ static int do_samples(int forced_updates)
      {
       //printf("decoder irq %x\n", decode_pos);
       do_irq();
      {
       //printf("decoder irq %x\n", decode_pos);
       do_irq();
+      bIRQReturn = 1;
      }
    }
   decode_pos = (decode_pos + NSSIZE) & 0x1ff;
      }
    }
   decode_pos = (decode_pos + NSSIZE) & 0x1ff;