add ability to selecte the audio channel (mono left, stereo, mono right) from python
[enigma2.git] / lib / dvb / decoder.cpp
index 1bec997d856d69d80da12a535a5bd9ca7921ae1e..76d0f50493be89b823c73283d7cfae3a8fb5fdc1 100644 (file)
@@ -137,6 +137,22 @@ void eDVBAudio::unfreeze()
                eDebug("video: AUDIO_CONTINUE: %m");
 }
 
+void eDVBAudio::setChannel(int channel)
+{
+       int val = AUDIO_STEREO;
+       switch (channel)
+       {
+       case aMonoLeft: val = AUDIO_MONO_LEFT; break;
+       case aMonoRight: val = AUDIO_MONO_RIGHT; break;
+       default:
+               break;
+       }
+       if (::ioctl(m_fd, AUDIO_CHANNEL_SELECT, val) < 0)
+               eDebug("video: AUDIO_CHANNEL_SELECT: %m");
+       else
+               eDebug("AUDIO_CHANNEL_SELECT ok");
+}
+
 int eDVBAudio::getPTS(pts_t &now)
 {
        return ::ioctl(m_fd, AUDIO_GET_PTS, &now);
@@ -552,6 +568,15 @@ RESULT eTSMPEGDecoder::setAudioPID(int apid, int type)
        return 0;
 }
 
+RESULT eTSMPEGDecoder::setAudioChannel(int channel)
+{
+       if (m_audio)
+               m_audio->setChannel(channel);
+       else
+               eDebug("eTSMPEGDecoder::setAudioChannel but no audio decoder exist");
+       return 0;
+}
+
 RESULT eTSMPEGDecoder::setSyncPCR(int pcrpid)
 {
        if (m_pcrpid != pcrpid)