add new skin stuff
[enigma2.git] / lib / dvb / decoder.cpp
index 1bec997d856d69d80da12a535a5bd9ca7921ae1e..362289f3196dc20cd2c29a73a78a37c2847e3501 100644 (file)
@@ -137,6 +137,19 @@ 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");
+}
+
 int eDVBAudio::getPTS(pts_t &now)
 {
        return ::ioctl(m_fd, AUDIO_GET_PTS, &now);
@@ -552,6 +565,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)