diff options
author | Christian Gmeiner <christian.gmeiner@gmail.com> | 2009-03-28 12:20:45 +0100 |
---|---|---|
committer | Christian Gmeiner <christian.gmeiner@gmail.com> | 2009-03-28 12:20:45 +0100 |
commit | ecc3dd09be579348e8a17e968415fecaaed47d84 (patch) | |
tree | 7cbc2db0ee8634c76ab208e403bed2ee67d3b308 /dxr3device.c | |
parent | 7cc46900f0a8795bcd586eec983d7172ebe439b4 (diff) | |
download | vdr-plugin-dxr3-ecc3dd09be579348e8a17e968415fecaaed47d84.tar.gz vdr-plugin-dxr3-ecc3dd09be579348e8a17e968415fecaaed47d84.tar.bz2 |
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.
Diffstat (limited to 'dxr3device.c')
-rw-r--r-- | dxr3device.c | 42 |
1 files changed, 20 insertions, 22 deletions
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; } |