summaryrefslogtreecommitdiff
path: root/dxr3interface.c
diff options
context:
space:
mode:
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)