summaryrefslogtreecommitdiffstats
path: root/mixer.c
diff options
context:
space:
mode:
authorarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-02-17 20:43:24 +0000
committerarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-02-17 20:43:24 +0000
commit99157727740dcc27ff8965071a862ec40c9c16aa (patch)
tree0b3794a3825c3bd2ae801bb8c08e898f829cc8b5 /mixer.c
parent17a4d061f47a8ba7e2154e24bd31cab3b683b4b0 (diff)
downloadmpv-99157727740dcc27ff8965071a862ec40c9c16aa.tar.bz2
mpv-99157727740dcc27ff8965071a862ec40c9c16aa.tar.xz
DVB mixer control added (very big messy hack)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4750 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'mixer.c')
-rw-r--r--mixer.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/mixer.c b/mixer.c
index 07cb54b2df..ff589a12b7 100644
--- a/mixer.c
+++ b/mixer.c
@@ -8,6 +8,12 @@
#include "config.h"
#include "mixer.h"
+#ifdef HAVE_DVB
+#include <ost/audio.h>
+audioMixer_t dvb_mixer={255,255};
+extern int vo_mpegpes_fd;
+extern int vo_mpegpes_fd2;
+#endif
#if defined(USE_OSS_AUDIO)
@@ -25,6 +31,15 @@ void mixer_getvolume( float *l,float *r )
{
int fd,v,cmd,devs;
+#ifdef HAVE_DVB
+ if(vo_mpegpes_fd2>=0){
+ // DVB card
+ *l=dvb_mixer.volume_left/2.56;
+ *r=dvb_mixer.volume_right/2.56;
+ return;
+ }
+#endif
+
fd=open( mixer_device,O_RDONLY );
if ( fd != -1 )
{
@@ -47,6 +62,22 @@ void mixer_getvolume( float *l,float *r )
void mixer_setvolume( float l,float r )
{
int fd,v,cmd,devs;
+
+#ifdef HAVE_DVB
+ if(vo_mpegpes_fd2>=0){
+ // DVB card
+ dvb_mixer.volume_left=l*2.56;
+ dvb_mixer.volume_right=r*2.56;
+ if(dvb_mixer.volume_left>255) dvb_mixer.volume_left=255;
+ if(dvb_mixer.volume_right>255) dvb_mixer.volume_right=255;
+// printf("Setting DVB volume: %d ; %d \n",dvb_mixer.volume_left,dvb_mixer.volume_right);
+ if ( (ioctl(vo_mpegpes_fd2,AUDIO_SET_MIXER, &dvb_mixer) < 0)){
+ perror("DVB AUDIO SET MIXER: ");
+ return -1;
+ }
+ return;
+ }
+#endif
fd=open( mixer_device,O_RDONLY );
if ( fd != -1 )