vdr
1.7.27
|
00001 /* 00002 * dvbhddevice.c: A plugin for the Video Disk Recorder 00003 * 00004 * See the README file for copyright information and how to reach the author. 00005 * 00006 * $Id: dvbhddevice.c 1.16 2012/02/08 15:10:30 kls Exp $ 00007 */ 00008 00009 #include <vdr/plugin.h> 00010 #include <vdr/shutdown.h> 00011 #include "dvbhdffdevice.h" 00012 #include "menu.h" 00013 #include "setup.h" 00014 00015 static const char *VERSION = "0.0.4"; 00016 static const char *DESCRIPTION = trNOOP("HD Full Featured DVB device"); 00017 static const char *MAINMENUENTRY = "dvbhddevice"; 00018 00019 class cPluginDvbhddevice : public cPlugin { 00020 private: 00021 cDvbHdFfDeviceProbe *probe; 00022 bool mIsUserInactive; 00023 public: 00024 cPluginDvbhddevice(void); 00025 virtual ~cPluginDvbhddevice(); 00026 virtual const char *Version(void) { return VERSION; } 00027 virtual const char *Description(void) { return tr(DESCRIPTION); } 00028 virtual void MainThreadHook(void); 00029 virtual const char *MainMenuEntry(void); 00030 virtual cOsdObject *MainMenuAction(void); 00031 virtual cMenuSetupPage *SetupMenu(void); 00032 virtual bool SetupParse(const char *Name, const char *Value); 00033 }; 00034 00035 cPluginDvbhddevice::cPluginDvbhddevice(void) 00036 : mIsUserInactive(true) 00037 { 00038 probe = new cDvbHdFfDeviceProbe; 00039 } 00040 00041 cPluginDvbhddevice::~cPluginDvbhddevice() 00042 { 00043 delete probe; 00044 } 00045 00046 void cPluginDvbhddevice::MainThreadHook(void) 00047 { 00048 bool isUserInactive = ShutdownHandler.IsUserInactive(); 00049 if (isUserInactive != mIsUserInactive) 00050 { 00051 mIsUserInactive = isUserInactive; 00052 if (gHdffSetup.CecEnabled && gHdffSetup.CecTvOn) 00053 { 00054 HDFF::cHdffCmdIf * hdffCmdIf = cDvbHdFfDevice::GetHdffCmdHandler(); 00055 if (!mIsUserInactive) 00056 { 00057 hdffCmdIf->CmdHdmiSendCecCommand(HDFF_CEC_COMMAND_TV_ON); 00058 } 00059 } 00060 } 00061 } 00062 00063 const char *cPluginDvbhddevice::MainMenuEntry(void) 00064 { 00065 return gHdffSetup.HideMainMenu ? NULL : MAINMENUENTRY; 00066 } 00067 00068 cOsdObject *cPluginDvbhddevice::MainMenuAction(void) 00069 { 00070 return new cHdffMenu(cDvbHdFfDevice::GetHdffCmdHandler()); 00071 } 00072 00073 cMenuSetupPage *cPluginDvbhddevice::SetupMenu(void) 00074 { 00075 return new cHdffSetupPage(cDvbHdFfDevice::GetHdffCmdHandler()); 00076 } 00077 00078 bool cPluginDvbhddevice::SetupParse(const char *Name, const char *Value) 00079 { 00080 return gHdffSetup.SetupParse(Name, Value); 00081 } 00082 00083 VDRPLUGINCREATOR(cPluginDvbhddevice); // Don't touch this!