mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Switching the primary device is no longer done via osSwitchDvb, but rather by the main program loop reacting to changes in Setup.PrimaryDVB
This commit is contained in:
parent
bc3b6ed601
commit
950b248220
2
HISTORY
2
HISTORY
@ -9194,3 +9194,5 @@ Video Disk Recorder Revision History
|
|||||||
- If an event in the Schedules menu is marked with a 'T' or 'I' and the user presses the
|
- If an event in the Schedules menu is marked with a 'T' or 'I' and the user presses the
|
||||||
Red button to edit the timer, local timers are now preferred over remote timers
|
Red button to edit the timer, local timers are now preferred over remote timers
|
||||||
in case there is more than one timer that will record that event.
|
in case there is more than one timer that will record that event.
|
||||||
|
- Switching the primary device is no longer done via osSwitchDvb (which has been
|
||||||
|
removed), but rather by the main program loop reacting to changes in Setup.PrimaryDVB.
|
||||||
|
5
menu.c
5
menu.c
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: menu.c 4.43 2017/11/02 15:26:42 kls Exp $
|
* $Id: menu.c 4.44 2017/11/09 14:56:38 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "menu.h"
|
#include "menu.h"
|
||||||
@ -3587,7 +3587,6 @@ void cMenuSetupDVB::Setup(void)
|
|||||||
|
|
||||||
eOSState cMenuSetupDVB::ProcessKey(eKeys Key)
|
eOSState cMenuSetupDVB::ProcessKey(eKeys Key)
|
||||||
{
|
{
|
||||||
int oldPrimaryDVB = ::Setup.PrimaryDVB;
|
|
||||||
int oldVideoDisplayFormat = ::Setup.VideoDisplayFormat;
|
int oldVideoDisplayFormat = ::Setup.VideoDisplayFormat;
|
||||||
bool oldVideoFormat = ::Setup.VideoFormat;
|
bool oldVideoFormat = ::Setup.VideoFormat;
|
||||||
bool newVideoFormat = data.VideoFormat;
|
bool newVideoFormat = data.VideoFormat;
|
||||||
@ -3650,8 +3649,6 @@ eOSState cMenuSetupDVB::ProcessKey(eKeys Key)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (state == osBack && Key == kOk) {
|
if (state == osBack && Key == kOk) {
|
||||||
if (::Setup.PrimaryDVB != oldPrimaryDVB)
|
|
||||||
state = osSwitchDvb;
|
|
||||||
if (::Setup.VideoDisplayFormat != oldVideoDisplayFormat)
|
if (::Setup.VideoDisplayFormat != oldVideoDisplayFormat)
|
||||||
cDevice::PrimaryDevice()->SetVideoDisplayFormat(eVideoDisplayFormat(::Setup.VideoDisplayFormat));
|
cDevice::PrimaryDevice()->SetVideoDisplayFormat(eVideoDisplayFormat(::Setup.VideoDisplayFormat));
|
||||||
if (::Setup.VideoFormat != oldVideoFormat)
|
if (::Setup.VideoFormat != oldVideoFormat)
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: osdbase.h 4.3 2017/11/07 15:31:24 kls Exp $
|
* $Id: osdbase.h 4.4 2017/11/09 14:57:48 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __OSDBASE_H
|
#ifndef __OSDBASE_H
|
||||||
@ -30,7 +30,6 @@ enum eOSState { osUnknown,
|
|||||||
osStopRecord,
|
osStopRecord,
|
||||||
osStopReplay,
|
osStopReplay,
|
||||||
osCancelEdit,
|
osCancelEdit,
|
||||||
osSwitchDvb,
|
|
||||||
osBack,
|
osBack,
|
||||||
osEnd,
|
osEnd,
|
||||||
os_User, // the following values can be used locally
|
os_User, // the following values can be used locally
|
||||||
|
21
vdr.c
21
vdr.c
@ -22,7 +22,7 @@
|
|||||||
*
|
*
|
||||||
* The project's page is at http://www.tvdr.de
|
* The project's page is at http://www.tvdr.de
|
||||||
*
|
*
|
||||||
* $Id: vdr.c 4.20 2017/11/02 14:59:50 kls Exp $
|
* $Id: vdr.c 4.21 2017/11/09 16:15:34 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <getopt.h>
|
#include <getopt.h>
|
||||||
@ -732,6 +732,7 @@ int main(int argc, char *argv[])
|
|||||||
bool InhibitEpgScan = false;
|
bool InhibitEpgScan = false;
|
||||||
bool IsInfoMenu = false;
|
bool IsInfoMenu = false;
|
||||||
cSkin *CurrentSkin = NULL;
|
cSkin *CurrentSkin = NULL;
|
||||||
|
int OldPrimaryDVB = 0;
|
||||||
|
|
||||||
// Load plugins:
|
// Load plugins:
|
||||||
|
|
||||||
@ -834,6 +835,7 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
OldPrimaryDVB = Setup.PrimaryDVB;
|
||||||
|
|
||||||
// Check for timers in automatic start time window:
|
// Check for timers in automatic start time window:
|
||||||
|
|
||||||
@ -1426,12 +1428,6 @@ int main(int argc, char *argv[])
|
|||||||
DELETE_MENU;
|
DELETE_MENU;
|
||||||
cControl::Shutdown();
|
cControl::Shutdown();
|
||||||
break;
|
break;
|
||||||
case osSwitchDvb:
|
|
||||||
DELETE_MENU;
|
|
||||||
cControl::Shutdown();
|
|
||||||
Skins.QueueMessage(mtInfo, tr("Switching primary DVB..."));
|
|
||||||
cDevice::SetPrimaryDevice(Setup.PrimaryDVB);
|
|
||||||
break;
|
|
||||||
case osPlugin: DELETE_MENU;
|
case osPlugin: DELETE_MENU;
|
||||||
Menu = cMenuMain::PluginOsdObject();
|
Menu = cMenuMain::PluginOsdObject();
|
||||||
if (Menu)
|
if (Menu)
|
||||||
@ -1507,6 +1503,17 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Change primary device:
|
||||||
|
int NewPrimaryDVB = Setup.PrimaryDVB;
|
||||||
|
if (NewPrimaryDVB != OldPrimaryDVB) {
|
||||||
|
DELETE_MENU;
|
||||||
|
cControl::Shutdown();
|
||||||
|
Skins.QueueMessage(mtInfo, tr("Switching primary DVB..."));
|
||||||
|
cOsdProvider::Shutdown();
|
||||||
|
cDevice::SetPrimaryDevice(NewPrimaryDVB);
|
||||||
|
OldPrimaryDVB = NewPrimaryDVB;
|
||||||
|
}
|
||||||
|
|
||||||
// SIGHUP shall cause a restart:
|
// SIGHUP shall cause a restart:
|
||||||
if (LastSignal == SIGHUP) {
|
if (LastSignal == SIGHUP) {
|
||||||
if (ShutdownHandler.ConfirmRestart(true) && Interface->Confirm(tr("Press any key to cancel restart"), RESTARTCANCELPROMPT, true))
|
if (ShutdownHandler.ConfirmRestart(true) && Interface->Confirm(tr("Press any key to cancel restart"), RESTARTCANCELPROMPT, true))
|
||||||
|
Loading…
Reference in New Issue
Block a user