X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/0877ce3b6f6cee972818a8c0a2d1bc862c8482be..e126edab6b5649fef4c00f871925e06f24338843:/lib/dvb/volume.cpp diff --git a/lib/dvb/volume.cpp b/lib/dvb/volume.cpp index bc3d6574..202de33e 100644 --- a/lib/dvb/volume.cpp +++ b/lib/dvb/volume.cpp @@ -68,8 +68,8 @@ void eDVBVolumecontrol::setVolume(int left, int right) leftVol = checkVolume(left); rightVol = checkVolume(right); - left = 63 - leftVol / 100.0 * 63.0; - right = 63 - rightVol / 100.0 * 63.0; + left = 63 - leftVol * 63 / 100; + right = 63 - rightVol * 63 / 100; #if HAVE_DVB_API_VERSION < 3 audioMixer_t mixer; @@ -90,6 +90,17 @@ void eDVBVolumecontrol::setVolume(int left, int right) printf("Setvolume: %d %d\n", leftVol, rightVol); printf("Setvolume: %d %d\n", left, right); + + //HACK? + FILE *f; + if((f = fopen("/proc/stb/avs/0/volume", "wb")) == NULL) { + printf("cannot open /proc/stb/avs/0/volume\n"); + return; + } + + fprintf(f, "%d", left); + + fclose(f); } int eDVBVolumecontrol::getVolume() @@ -109,6 +120,7 @@ void eDVBVolumecontrol::volumeMute() { int fd = openMixer(); #ifdef HAVE_DVB_API_VERSION + printf("ioctl AUDIO_SET_MUTE,1 %d\n",fd); ioctl(fd, AUDIO_SET_MUTE, true); #endif closeMixer(fd); @@ -119,6 +131,7 @@ void eDVBVolumecontrol::volumeUnMute() { int fd = openMixer(); #ifdef HAVE_DVB_API_VERSION + printf("ioctl AUDIO_SET_MUTE,0\n"); ioctl(fd, AUDIO_SET_MUTE, false); #endif closeMixer(fd); @@ -133,4 +146,4 @@ void eDVBVolumecontrol::volumeToggleMute() else volumeMute(); -} \ No newline at end of file +}