mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Fixed checking for a visible live programme in case a menu or the channel display is currently open
This commit is contained in:
parent
a8dc76a8ac
commit
2a18fb9687
2
HISTORY
2
HISTORY
@ -7183,3 +7183,5 @@ Video Disk Recorder Revision History
|
||||
if the editing point merges two seamlessly fitting parts of the same stream (thanks
|
||||
to Torsten Lang).
|
||||
- Fixed displaying messages in the LCARS skin.
|
||||
- Fixed checking for a visible live programme in case a menu or the channel display
|
||||
is currently open.
|
||||
|
11
menu.c
11
menu.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: menu.c 2.55 2012/06/09 14:27:02 kls Exp $
|
||||
* $Id: menu.c 2.56 2012/06/13 11:24:40 kls Exp $
|
||||
*/
|
||||
|
||||
#include "menu.h"
|
||||
@ -1888,6 +1888,8 @@ eOSState cMenuCommands::ProcessKey(eKeys Key)
|
||||
|
||||
// --- cMenuCam --------------------------------------------------------------
|
||||
|
||||
static bool CamMenuIsOpen = false;
|
||||
|
||||
class cMenuCam : public cOsdMenu {
|
||||
private:
|
||||
cCamSlot *camSlot;
|
||||
@ -1919,6 +1921,7 @@ cMenuCam::cMenuCam(cCamSlot *CamSlot)
|
||||
lastCamExchange = time(NULL);
|
||||
SetNeedsFastResponse(true);
|
||||
QueryCam();
|
||||
CamMenuIsOpen = true;
|
||||
}
|
||||
|
||||
cMenuCam::~cMenuCam()
|
||||
@ -1930,6 +1933,7 @@ cMenuCam::~cMenuCam()
|
||||
ciEnquiry->Abort();
|
||||
delete ciEnquiry;
|
||||
free(input);
|
||||
CamMenuIsOpen = false;
|
||||
}
|
||||
|
||||
void cMenuCam::GenerateTitle(const char *s)
|
||||
@ -2075,6 +2079,11 @@ cOsdObject *CamControl(void)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
bool CamMenuActive(void)
|
||||
{
|
||||
return CamMenuIsOpen;
|
||||
}
|
||||
|
||||
// --- cMenuRecording --------------------------------------------------------
|
||||
|
||||
class cMenuRecording : public cOsdMenu {
|
||||
|
3
menu.h
3
menu.h
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: menu.h 2.10 2012/06/09 12:12:43 kls Exp $
|
||||
* $Id: menu.h 2.11 2012/06/13 11:23:11 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __MENU_H
|
||||
@ -187,6 +187,7 @@ public:
|
||||
};
|
||||
|
||||
cOsdObject *CamControl(void);
|
||||
bool CamMenuActive(void);
|
||||
|
||||
class cMenuRecordingItem;
|
||||
|
||||
|
7
vdr.c
7
vdr.c
@ -22,7 +22,7 @@
|
||||
*
|
||||
* The project's page is at http://www.tvdr.de
|
||||
*
|
||||
* $Id: vdr.c 2.36 2012/06/02 13:10:00 kls Exp $
|
||||
* $Id: vdr.c 2.37 2012/06/13 11:28:41 kls Exp $
|
||||
*/
|
||||
|
||||
#include <getopt.h>
|
||||
@ -570,7 +570,6 @@ int main(int argc, char *argv[])
|
||||
int MaxLatencyTime = 0;
|
||||
bool InhibitEpgScan = false;
|
||||
bool IsInfoMenu = false;
|
||||
bool CheckHasProgramme = false;
|
||||
cSkin *CurrentSkin = NULL;
|
||||
|
||||
// Load plugins:
|
||||
@ -761,7 +760,7 @@ int main(int argc, char *argv[])
|
||||
// Make sure we have a visible programme in case device usage has changed:
|
||||
if (!EITScanner.Active() && cDevice::PrimaryDevice()->HasDecoder() && !cDevice::PrimaryDevice()->HasProgramme()) {
|
||||
static time_t lastTime = 0;
|
||||
if ((!Menu || CheckHasProgramme) && Now - lastTime > MINCHANNELWAIT) { // !Menu to avoid interfering with the CAM if a CAM menu is open
|
||||
if (!CamMenuActive() && Now - lastTime > MINCHANNELWAIT) { // !CamMenuActive() to avoid interfering with the CAM if a CAM menu is open
|
||||
cChannel *Channel = Channels.GetByNumber(cDevice::CurrentChannel());
|
||||
if (Channel && (Channel->Vpid() || Channel->Apid(0) || Channel->Dpid(0))) {
|
||||
if (cDevice::GetDeviceForTransponder(Channel, LIVEPRIORITY) && Channels.SwitchTo(Channel->Number())) // try to switch to the original channel...
|
||||
@ -774,7 +773,6 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
lastTime = Now; // don't do this too often
|
||||
LastTimerChannel = -1;
|
||||
CheckHasProgramme = false;
|
||||
}
|
||||
}
|
||||
// Update the OSD size:
|
||||
@ -1140,7 +1138,6 @@ int main(int argc, char *argv[])
|
||||
DELETE_MENU;
|
||||
cControl::Shutdown();
|
||||
Menu = new cMenuMain(osRecordings);
|
||||
CheckHasProgramme = true; // to have live tv after stopping replay with 'Back'
|
||||
break;
|
||||
case osReplay: DELETE_MENU;
|
||||
cControl::Shutdown();
|
||||
|
Loading…
Reference in New Issue
Block a user