summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Gmeiner <christian.gmeiner@gmail.com>2010-02-17 20:22:37 +0100
committerChristian Gmeiner <christian.gmeiner@gmail.com>2010-02-17 20:22:37 +0100
commit884a7ad99d2b60f3932c79cbf88f7b4cbccdaa0a (patch)
tree71c86850a1fed92bcfe02d22f55603c17480ea4a
parent0265b061dc0706a450b1037e5c89da50d8dbcb44 (diff)
downloadvdr-plugin-dxr3-884a7ad99d2b60f3932c79cbf88f7b4cbccdaa0a.tar.gz
vdr-plugin-dxr3-884a7ad99d2b60f3932c79cbf88f7b4cbccdaa0a.tar.bz2
fix channel switching
-rw-r--r--dxr3device.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/dxr3device.c b/dxr3device.c
index 7b3f754..4d933ad 100644
--- a/dxr3device.c
+++ b/dxr3device.c
@@ -119,6 +119,7 @@ bool cDxr3Device::CanReplay() const
bool cDxr3Device::SetPlayMode(ePlayMode PlayMode)
{
dsyslog("[dxr3-device] setting playmode %d", PlayMode);
+ uint32_t val;
switch (PlayMode) {
case pmNone:
@@ -127,6 +128,13 @@ bool cDxr3Device::SetPlayMode(ePlayMode PlayMode)
audioOut->setEnabled(false);
scrSet = false;
playCount = 0;
+
+ // here we use some magic
+ // set the scr into future so that the firmware/hardware
+ // clears the buffers.
+ CHECK(ioctl(fdControl, EM8300_IOCTL_SCR_GET, &val));
+ val += 10000;
+ CHECK(ioctl(fdControl, EM8300_IOCTL_SCR_SET, &val));
break;
case pmAudioVideo: