summaryrefslogtreecommitdiff
path: root/streamdevice.c
diff options
context:
space:
mode:
authorzwer <zwer@1f4bef6d-8e0a-0410-8695-e467da8aaccf>2007-02-18 21:57:59 +0000
committerzwer <zwer@1f4bef6d-8e0a-0410-8695-e467da8aaccf>2007-02-18 21:57:59 +0000
commit1b942dd8aab5eed24ef5196a8dffdb645f2ff227 (patch)
tree7aa90cacc87b823e79ca550cde813a8281e92718 /streamdevice.c
parentc8eb1459144bd0117d9dbd2ab4c1d1927d4fa13b (diff)
downloadvdr-plugin-ffnetdev-1b942dd8aab5eed24ef5196a8dffdb645f2ff227.tar.gz
vdr-plugin-ffnetdev-1b942dd8aab5eed24ef5196a8dffdb645f2ff227.tar.bz2
- vor- und zurückspulen mit versch. Geschwindigkeiten, Pause
- DVD-Wedergabe macht Probleme git-svn-id: svn://svn.berlios.de/ffnetdev/trunk@29 1f4bef6d-8e0a-0410-8695-e467da8aaccf
Diffstat (limited to 'streamdevice.c')
-rw-r--r--streamdevice.c55
1 files changed, 31 insertions, 24 deletions
diff --git a/streamdevice.c b/streamdevice.c
index d15b66a..17b33f2 100644
--- a/streamdevice.c
+++ b/streamdevice.c
@@ -75,16 +75,18 @@ bool cStreamDevice::SetPlayMode(ePlayMode PlayMode)
cControl *pControl = cControl::Control();
if (pControl)
{
- bool Forward;
- int Speed;
- pControl->GetReplayMode(m_Playing, Forward, Speed);
- if (!cClientControl::SendPlayState(PlayMode, m_Playing, Forward, Speed))
+ pControl->GetReplayMode(m_Playing, m_Forward, m_Speed);
+ if (m_Speed == -1)
+ m_Speed = 0;
+ if (!cClientControl::SendPlayState(PlayMode, m_Playing, m_Forward, m_Speed))
m_PlayState = psPlay;
}
else
{
m_Playing = false;
- if (!cClientControl::SendPlayState(PlayMode, false, false, 0))
+ m_Forward = true;
+ m_Speed = 0;
+ if (!cClientControl::SendPlayState(PlayMode, m_Playing, m_Forward, m_Speed))
m_PlayState = psPlay;
}
return true;
@@ -93,15 +95,14 @@ bool cStreamDevice::SetPlayMode(ePlayMode PlayMode)
void cStreamDevice::TrickSpeed(int Speed)
{
dsyslog("[ffnetdev] Device: Trickspeed. Speed: %d\n", Speed);
+
cControl *pControl = cControl::Control();
if (pControl)
- {
- bool Forward;
- int Speed;
- pControl->GetReplayMode(m_Playing, Forward, Speed);
- if (!cClientControl::SendPlayState(m_PlayMode, m_Playing, Forward, Speed))
- m_PlayState = psPlay;
- }
+ pControl->GetReplayMode(m_Playing, m_Forward, m_Speed);
+
+ m_Speed = Speed;
+ if (!cClientControl::SendPlayState(m_PlayMode, m_Playing, m_Forward, m_Speed))
+ m_PlayState = psPlay;
}
void cStreamDevice::Clear(void)
@@ -113,28 +114,34 @@ void cStreamDevice::Play(void)
{
dsyslog("[ffnetdev] Device: Play.\n");
- cControl *pControl = cControl::Control();
- if (pControl)
- {
- bool Forward;
- int Speed;
- pControl->GetReplayMode(m_Playing, Forward, Speed);
- if (!cClientControl::SendPlayState(m_PlayMode, m_Playing, Forward, Speed))
- m_PlayState = psPlay;
- }
-
+ m_PlayMode = pmAudioVideo;
+ m_Playing = true;
+ m_Forward = true;
+ m_Speed = 0;
+ if (!cClientControl::SendPlayState(m_PlayMode, m_Playing, m_Forward, m_Speed))
+ m_PlayState = psPlay;
+
// cDevice::Play();
}
void cStreamDevice::Freeze(void)
{
- dsyslog("[ffnetdev] Device: Freeze(not implemented).\n");
+ dsyslog("[ffnetdev] Device: Freeze.\n");
+
+ m_Playing = false;
+ cClientControl::SendSFreeze();
+
// cDevice::Freeze();
}
void cStreamDevice::Mute(void)
{
- dsyslog("[ffnetdev] Device: Mute(not implemented).\n");
+ dsyslog("[ffnetdev] Device: Mute.\n");
+
+ m_PlayMode = pmVideoOnly;
+ if (!cClientControl::SendPlayState(m_PlayMode, m_Playing, m_Forward, m_Speed))
+ m_PlayState = psPlay;
+
// cDevice::Mute();
}