From 59d1a6b1f2a69e8f24279a00b38848f29ed92726 Mon Sep 17 00:00:00 2001 From: Johns Date: Fri, 4 Jan 2013 18:50:14 +0100 Subject: [PATCH] Adds function to stop PIP. --- softhddevice.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/softhddevice.cpp b/softhddevice.cpp index e1c4e31..f931f76 100644 --- a/softhddevice.cpp +++ b/softhddevice.cpp @@ -1476,6 +1476,8 @@ void cSoftReceiver::Receive(uchar * data, int size) ////////////////////////////////////////////////////////////////////////////// +static cSoftReceiver * PipReceiver; ///< PIP receiver + /** ** Prepare new PIP. */ @@ -1490,13 +1492,28 @@ static void NewPip(void) && (channel = Channels.GetByNumber(cDevice::CurrentChannel())) && (device = cDevice::GetDevice(channel, 1, false))) { fprintf(stderr, "pip: %d %p %p\n", channel_nr, channel, device); + + delete PipReceiver; + PipReceiver = NULL; + device->SwitchChannel(channel, false); receiver = new cSoftReceiver(channel); device->AttachReceiver(receiver); fprintf(stderr, "pip: attached\n"); + PipReceiver = receiver; } } +/** +** Stop PIP. +*/ +static void DelPip(void) +{ + fprintf(stderr, "pip: stopped\n"); + delete PipReceiver; + PipReceiver = NULL; +} + #endif ////////////////////////////////////////////////////////////////////////////// @@ -1743,6 +1760,9 @@ eOSState cSoftHdMenu::ProcessKey(eKeys key) case osUser2: NewPip(); return osEnd; + case osUser8: + DelPip(); + return osEnd; #endif default: Create();