vdr  1.7.27
dvbhddevice.c
Go to the documentation of this file.
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!