1 #include <lib/dvb/volume.h>
8 #if HAVE_DVB_API_VERSION < 3
9 #define VIDEO_DEV "/dev/dvb/card0/video0"
10 #define AUDIO_DEV "/dev/dvb/card0/audio0"
11 #include <ost/audio.h>
12 #include <ost/video.h>
14 #define VIDEO_DEV "/dev/dvb/adapter0/video0"
15 #define AUDIO_DEV "/dev/dvb/adapter0/audio0"
16 #include <linux/dvb/audio.h>
17 #include <linux/dvb/video.h>
20 eDVBVolumecontrol* eDVBVolumecontrol::instance = NULL;
22 eDVBVolumecontrol* eDVBVolumecontrol::getInstance()
25 instance = new eDVBVolumecontrol;
29 eDVBVolumecontrol::eDVBVolumecontrol()
35 int eDVBVolumecontrol::openMixer()
37 return open( AUDIO_DEV, O_RDWR );
40 void eDVBVolumecontrol::closeMixer(int fd)
45 void eDVBVolumecontrol::volumeUp(int left, int right)
47 printf("[volume.cpp] Volume up\n");
48 setVolume(leftVol + left, rightVol + right);
51 void eDVBVolumecontrol::volumeDown(int left, int right)
53 printf("[volume.cpp] Volume down\n");
54 setVolume(leftVol - left, rightVol - right);
57 int eDVBVolumecontrol::checkVolume(int vol)
66 void eDVBVolumecontrol::setVolume(int left, int right)
68 leftVol = checkVolume(left);
69 rightVol = checkVolume(right);
71 left = 63 - leftVol / 100.0 * 63.0;
72 right = 63 - rightVol / 100.0 * 63.0;
74 #if HAVE_DVB_API_VERSION < 3
80 #ifdef HAVE_DVB_API_VERSION
81 mixer.volume_left = (left * left) / 64;
82 mixer.volume_right = (right * right) / 64;
86 #ifdef HAVE_DVB_API_VERSION
87 ioctl(fd, AUDIO_SET_MIXER, &mixer);
91 printf("Setvolume: %d %d\n", leftVol, rightVol);
92 printf("Setvolume: %d %d\n", left, right);
95 int eDVBVolumecontrol::getVolume()
102 bool eDVBVolumecontrol::isMuted()
108 void eDVBVolumecontrol::volumeMute()
110 int fd = openMixer();
111 #ifdef HAVE_DVB_API_VERSION
112 ioctl(fd, AUDIO_SET_MUTE, true);
118 void eDVBVolumecontrol::volumeUnMute()
120 int fd = openMixer();
121 #ifdef HAVE_DVB_API_VERSION
122 ioctl(fd, AUDIO_SET_MUTE, false);
128 void eDVBVolumecontrol::volumeToggleMute()