diff options
author | scop <scop> | 2007-04-05 20:34:23 +0000 |
---|---|---|
committer | scop <scop> | 2007-04-05 20:34:23 +0000 |
commit | 67e5fecd1bb9e828f0fbc3996bf089edc506d3b2 (patch) | |
tree | 5bc0293bc2b39cb4fac671839fe9a01c4387bf3d /dxr3interface.c | |
parent | 39d4e92582f103193250408ee18b5bf524b36bbe (diff) | |
download | vdr-plugin-dxr3-67e5fecd1bb9e828f0fbc3996bf089edc506d3b2.tar.gz vdr-plugin-dxr3-67e5fecd1bb9e828f0fbc3996bf089edc506d3b2.tar.bz2 |
Apply patches/vdr-dxr3-ac3.patch, start countdown to 0.2.7.
Diffstat (limited to 'dxr3interface.c')
-rw-r--r-- | dxr3interface.c | 42 |
1 files changed, 26 insertions, 16 deletions
diff --git a/dxr3interface.c b/dxr3interface.c index 951dac7..5122925 100644 --- a/dxr3interface.c +++ b/dxr3interface.c @@ -139,26 +139,36 @@ void cDxr3Interface::SetAudioDigitalPCM() //! set audio output to digital ac3 void cDxr3Interface::SetAudioDigitalAC3() { - if (m_audioMode != EM8300_AUDIOMODE_DIGITALAC3) - { - int ioval = 0; - Lock(); + int ioval = 0; + Lock(); - if (!m_ExternalReleased && m_audioMode != EM8300_AUDIOMODE_DIGITALAC3) + if (!m_ExternalReleased && m_audioMode != EM8300_AUDIOMODE_DIGITALAC3) + { + m_audioMode = ioval = EM8300_AUDIOMODE_DIGITALAC3; + isyslog("dxr3: setting digital AC3 audio mode"); + if (ioctl(m_fdControl, EM8300_IOCTL_SET_AUDIOMODE, &ioval) < 0) { - m_audioMode = ioval = EM8300_AUDIOMODE_DIGITALAC3; - isyslog("dxr3: setting digital AC3 audio mode"); - if (ioctl(m_fdControl, EM8300_IOCTL_SET_AUDIOMODE, &ioval) < 0) - { - esyslog("dxr3: unable to set AC3 audio mode: %m"); - } - ReOpenAudio(); + esyslog("dxr3: unable to set AC3 audio mode: %m"); } - - Unlock(); + ReOpenAudio(); } + + Unlock(); +} + + +// ================================= +//! get current audio mode +int cDxr3Interface::GetAudioMode() +{ + int audioMode; + Lock(); + ioctl(m_fdControl, EM8300_IOCTL_GET_AUDIOMODE, &audioMode); + Unlock(); + return audioMode; } + // ================================== //! set audio speed void cDxr3Interface::SetAudioSpeed(uint32_t speed) @@ -591,7 +601,7 @@ void cDxr3Interface::PlayAudioFrame(cFixedLengthFrame* pFrame) if (!m_ExternalReleased) { - if (!cDxr3ConfigData::Instance().GetAc3OutPut()) + if (!cDxr3Interface::Instance().IsAudioModeAC3()) ResampleVolume((short*)pFrame->GetData(), pFrame->GetCount()); written = write(m_fdAudio, pFrame->GetData(), pFrame->GetCount()); @@ -619,7 +629,7 @@ void cDxr3Interface::PlayAudioFrame(uint8_t* pBuf, int length) if (!m_ExternalReleased) { - if (!cDxr3ConfigData::Instance().GetAc3OutPut()) + if (!cDxr3Interface::Instance().IsAudioModeAC3()) ResampleVolume((short*)pBuf, length); if ((written = write(m_fdAudio, pBuf, length)) < 0) |