summaryrefslogtreecommitdiff
path: root/dxr3device.c
diff options
context:
space:
mode:
authorChristian Gmeiner <christian.gmeiner@gmail.com>2009-03-28 12:20:45 +0100
committerChristian Gmeiner <christian.gmeiner@gmail.com>2009-03-28 12:20:45 +0100
commitecc3dd09be579348e8a17e968415fecaaed47d84 (patch)
tree7cbc2db0ee8634c76ab208e403bed2ee67d3b308 /dxr3device.c
parent7cc46900f0a8795bcd586eec983d7172ebe439b4 (diff)
downloadvdr-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.c42
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;
}