#include <sys/ioctl.h>
#include <unistd.h>
-#if HAVE_DVB_API_VERSION < 3
-#define VIDEO_DEV "/dev/dvb/card0/video0"
-#define AUDIO_DEV "/dev/dvb/card0/audio0"
-#include <ost/audio.h>
-#include <ost/video.h>
-#else
#define VIDEO_DEV "/dev/dvb/adapter0/video0"
#define AUDIO_DEV "/dev/dvb/adapter0/audio0"
#include <linux/dvb/audio.h>
#include <linux/dvb/video.h>
-#endif
eDVBVolumecontrol* eDVBVolumecontrol::instance = NULL;
right = 63 - rightVol * 63 / 100;
/* now range is 63..0, where 0 is loudest */
-#if HAVE_DVB_API_VERSION < 3
- audioMixer_t mixer;
-#else
audio_mixer_t mixer;
-#endif
-#if HAVE_DVB_API_VERSION < 3
- /* convert to linear scale. 0 = loudest, ..63 */
- mixer.volume_left = 63.0-pow(1.068241, 63-left);
- mixer.volume_right = 63.0-pow(1.068241, 63-right);
-#else
mixer.volume_left = left;
mixer.volume_right = right;
-#endif
eDebug("Setvolume: %d %d (raw)", leftVol, rightVol);
eDebug("Setvolume: %d %d (-1db)", left, right);
-#if HAVE_DVB_API_VERSION < 3
- eDebug("Setvolume: %d %d (lin)", mixer.volume_left, mixer.volume_right);
-#endif
int fd = openMixer();
if (fd >= 0)
{
-#ifdef HAVE_DVB_API_VERSION
ioctl(fd, AUDIO_SET_MIXER, &mixer);
-#endif
closeMixer(fd);
return;
}
void eDVBVolumecontrol::volumeMute()
{
int fd = openMixer();
-#ifdef HAVE_DVB_API_VERSION
ioctl(fd, AUDIO_SET_MUTE, true);
-#endif
closeMixer(fd);
muted = true;
void eDVBVolumecontrol::volumeUnMute()
{
int fd = openMixer();
-#ifdef HAVE_DVB_API_VERSION
ioctl(fd, AUDIO_SET_MUTE, false);
-#endif
closeMixer(fd);
muted = false;