diff src/OSS4/audio.c @ 1243:4cf6ccace89c

made OSS report latest set volume when not having opened a vmix device; removed the balance hack because Hannu will implement it soon
author Cristi Magherusan <majeru@atheme-project.org>
date Thu, 12 Jul 2007 17:51:36 +0300
parents cc04ccffaa8d
children d0f1e147cf62
line wrap: on
line diff
--- a/src/OSS4/audio.c	Thu Jul 12 14:59:38 2007 +0900
+++ b/src/OSS4/audio.c	Thu Jul 12 17:51:36 2007 +0300
@@ -36,7 +36,7 @@
 
 #define NFRAGS		32
 
-static gint fd = 0;
+static gint fd = 0,temp_vol=0x6464;
 static char *buffer;
 static gboolean going, prebuffer, paused, unpause, do_pause, remove_prebuffer;
 static gint device_buffer_used, buffer_size, prebuffer_size, blk_size;
@@ -739,7 +739,8 @@
 {
     int v;
     long cmd=SNDCTL_DSP_GETPLAYVOL;
-    ioctl(fd, cmd, &v);
+    if(ioctl(fd, cmd, &v) == -1)
+        v=temp_vol;
     *r = (v & 0xFF00) >> 8;
     *l = (v & 0x00FF);
 }
@@ -747,11 +748,9 @@
 void
 oss_set_volume(int l, int r)
 {   
-    if(l!=r)
-        l=r=((l>r) ? l : r);
     long cmd=SNDCTL_DSP_SETPLAYVOL;   
-    int v = (r << 8) | l;
-    ioctl(fd, cmd, &v);
+    temp_vol = (r << 8) | l;
+    ioctl(fd, cmd, &temp_vol);
 }
 
 void