summaryrefslogtreecommitdiff
path: root/dxr3interface.c
diff options
context:
space:
mode:
authorscop <scop>2007-04-05 20:34:23 +0000
committerscop <scop>2007-04-05 20:34:23 +0000
commit67e5fecd1bb9e828f0fbc3996bf089edc506d3b2 (patch)
tree5bc0293bc2b39cb4fac671839fe9a01c4387bf3d /dxr3interface.c
parent39d4e92582f103193250408ee18b5bf524b36bbe (diff)
downloadvdr-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.c42
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)