From ecc3dd09be579348e8a17e968415fecaaed47d84 Mon Sep 17 00:00:00 2001 From: Christian Gmeiner Date: Sat, 28 Mar 2009 12:20:45 +0100 Subject: rework pmExtern_THIS_SHOULD_BE_AVOIDED playmode This commit removes all checks if the device is external released as it is not possible/wanted to set playmode to pmExtern_THIS_SHOULD_BE_AVOIDED and call play methods of device class. Also I removed DON and DOF svdr commands, as in my opinion these two commands are not useful at all. If somebody who needs them give me an example usage for these commands, I will bring them back. --- dxr3device.c | 42 ++++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 22 deletions(-) (limited to 'dxr3device.c') diff --git a/dxr3device.c b/dxr3device.c index 9103b5c..2d3c449 100644 --- a/dxr3device.c +++ b/dxr3device.c @@ -82,32 +82,30 @@ bool cDxr3Device::CanReplay() const // ================================== bool cDxr3Device::SetPlayMode(ePlayMode PlayMode) { - if (PlayMode == pmExtern_THIS_SHOULD_BE_AVOIDED) { - Tools::WriteInfoToOsd(tr("DXR3: releasing devices")); - cDxr3Interface::Instance().ExternalReleaseDevices(); - audioOut->releaseDevice(); - } else { - cDxr3Interface::Instance().ExternalReopenDevices(); + if (PlayMode != pmExtern_THIS_SHOULD_BE_AVOIDED) { + cDxr3Interface::Instance().ClaimDevices(); audioOut->openDevice(); } - if (PlayMode == pmAudioOnlyBlack) - { - m_PlayMode = pmAudioOnly; - } - else - { - m_PlayMode = PlayMode; - } + dsyslog("setting playmode %d", PlayMode); - if (m_PlayMode == pmAudioVideo) - { - m_DemuxDevice.SetReplayMode(); - } + switch (PlayMode) { + case pmExtern_THIS_SHOULD_BE_AVOIDED: + Tools::WriteInfoToOsd(tr("DXR3: releasing devices")); + cDxr3Interface::Instance().ReleaseDevices(); + audioOut->releaseDevice(); + break; - if (m_PlayMode == pmNone) - { - m_DemuxDevice.Stop(); + case pmNone: + //m_DemuxDevice.Stop(); + break; + + case pmAudioVideo: + case pmAudioOnly: + case pmAudioOnlyBlack: + case pmVideoOnly: + + m_PlayMode = PlayMode; } return true; @@ -196,7 +194,7 @@ void cDxr3Device::StillPicture(const uchar *Data, int Length) bool cDxr3Device::Poll(cPoller &Poller, int TimeoutMs) { if ((m_DemuxDevice.GetDemuxMode() == DXR3_DEMUX_TRICK_MODE && - m_DemuxDevice.GetTrickState() == DXR3_FREEZE) || cDxr3Interface::Instance().IsExternalReleased()) { + m_DemuxDevice.GetTrickState() == DXR3_FREEZE)) { cCondWait::SleepMs(TimeoutMs); return false; } -- cgit v1.2.3