vdr  2.4.1
dvbhddevice.c
Go to the documentation of this file.
1 /*
2  * dvbhddevice.c: A plugin for the Video Disk Recorder
3  *
4  * See the README file for copyright information and how to reach the author.
5  */
6 
7 #include <getopt.h>
8 #include <vdr/plugin.h>
9 #include <vdr/shutdown.h>
10 #include "dvbhdffdevice.h"
11 #include "menu.h"
12 #include "setup.h"
13 
14 static const char *VERSION = "2.2.0";
15 static const char *DESCRIPTION = trNOOP("HD Full Featured DVB device");
16 static const char *MAINMENUENTRY = "dvbhddevice";
17 
18 class cPluginDvbhddevice : public cPlugin {
19 private:
22 public:
23  cPluginDvbhddevice(void);
24  virtual ~cPluginDvbhddevice();
25  virtual const char *Version(void) { return VERSION; }
26  virtual const char *Description(void) { return tr(DESCRIPTION); }
27  virtual void MainThreadHook(void);
28  virtual void Stop(void);
29  virtual const char *MainMenuEntry(void);
30  virtual cOsdObject *MainMenuAction(void);
31  virtual cMenuSetupPage *SetupMenu(void);
32  virtual bool SetupParse(const char *Name, const char *Value);
33  virtual const char *CommandLineHelp(void);
34  virtual bool ProcessArgs(int argc, char *argv[]);
35  };
36 
38 : mIsUserInactive(true)
39 {
41 }
42 
44 {
45  delete probe;
46 }
47 
49 {
50  return " -o --outputonly do not receive, just use as output device\n";
51 }
52 
53 bool cPluginDvbhddevice::ProcessArgs(int argc, char *argv[])
54 {
55  static struct option long_options[] = {
56  { "outputonly", no_argument, NULL, 'o' },
57  { NULL, no_argument, NULL, 0 }
58  };
59 
60  int c;
61  while ((c = getopt_long(argc, argv, "o", long_options, NULL)) != -1) {
62  switch (c) {
63  case 'o': probe->SetOutputOnly(true);
64  break;
65  default: return false;
66  }
67  }
68  return true;
69 }
70 
72 {
73  bool isUserInactive = ShutdownHandler.IsUserInactive();
74  if (isUserInactive != mIsUserInactive)
75  {
76  mIsUserInactive = isUserInactive;
78  {
80  if (hdffCmdIf && !mIsUserInactive)
81  {
83  }
84  }
85  }
86 }
87 
89 {
91  {
93  if (hdffCmdIf)
94  {
96  isyslog("HDFF_CEC_COMMAND_TV_OFF");
97  }
98  }
99 }
100 
102 {
103  return gHdffSetup.HideMainMenu ? NULL : MAINMENUENTRY;
104 }
105 
107 {
109  return hdffCmdIf ? new cHdffMenu(hdffCmdIf) : NULL;
110 }
111 
113 {
115  return hdffCmdIf ? new cHdffSetupPage(hdffCmdIf) : NULL;
116 }
117 
118 bool cPluginDvbhddevice::SetupParse(const char *Name, const char *Value)
119 {
120  return gHdffSetup.SetupParse(Name, Value);
121 }
122 
123 VDRPLUGINCREATOR(cPluginDvbhddevice); // Don't touch this!
cPluginDvbhddevice
Definition: dvbhddevice.c:18
cPluginDvbhddevice::SetupParse
virtual bool SetupParse(const char *Name, const char *Value)
Definition: dvbhddevice.c:118
DESCRIPTION
static const char * DESCRIPTION
Definition: dvbhddevice.c:15
cPlugin
Definition: plugin.h:20
trNOOP
#define trNOOP(s)
Definition: i18n.h:88
menu.h
HDFF::cHdffCmdIf::CmdHdmiSendCecCommand
void CmdHdmiSendCecCommand(HdffCecCommand_t Command)
Definition: hdffcmd.c:384
HDFF_CEC_COMMAND_TV_ON
@ HDFF_CEC_COMMAND_TV_ON
Definition: hdffcmd_hdmi.h:55
tr
#define tr(s)
Definition: i18n.h:85
cPlugin::Name
const char * Name(void)
Definition: plugin.h:34
cPluginDvbhddevice::CommandLineHelp
virtual const char * CommandLineHelp(void)
Definition: dvbhddevice.c:48
HDFF_CEC_COMMAND_TV_OFF
@ HDFF_CEC_COMMAND_TV_OFF
Definition: hdffcmd_hdmi.h:56
cHdffSetup::HideMainMenu
int HideMainMenu
Definition: setup.h:42
cOsdObject
Definition: osdbase.h:69
cPluginDvbhddevice::Description
virtual const char * Description(void)
Definition: dvbhddevice.c:26
cPluginDvbhddevice::probe
cDvbHdFfDeviceProbe * probe
Definition: dvbhddevice.c:20
cPluginDvbhddevice::mIsUserInactive
bool mIsUserInactive
Definition: dvbhddevice.c:21
ShutdownHandler
cShutdownHandler ShutdownHandler
Definition: shutdown.c:27
cHdffMenu
Definition: PLUGINS/src/dvbhddevice/menu.h:16
cPluginDvbhddevice::Stop
virtual void Stop(void)
Definition: dvbhddevice.c:88
cPluginDvbhddevice::MainMenuEntry
virtual const char * MainMenuEntry(void)
Definition: dvbhddevice.c:101
cDvbHdFfDeviceProbe::SetOutputOnly
void SetOutputOnly(bool On)
Definition: dvbhdffdevice.h:138
cPluginDvbhddevice::~cPluginDvbhddevice
virtual ~cPluginDvbhddevice()
Definition: dvbhddevice.c:43
cPluginDvbhddevice::MainThreadHook
virtual void MainThreadHook(void)
Definition: dvbhddevice.c:71
VDRPLUGINCREATOR
VDRPLUGINCREATOR(cPluginDvbhddevice)
cPluginDvbhddevice::SetupMenu
virtual cMenuSetupPage * SetupMenu(void)
Definition: dvbhddevice.c:112
cPluginDvbhddevice::MainMenuAction
virtual cOsdObject * MainMenuAction(void)
Definition: dvbhddevice.c:106
cHdffSetup::CecTvOn
int CecTvOn
Definition: setup.h:33
setup.h
cShutdownHandler::IsUserInactive
bool IsUserInactive(time_t AtTime=0)
Check whether VDR is in interactive mode or non-interactive mode (waiting for shutdown).
Definition: shutdown.h:72
cDvbHdFfDeviceProbe
Definition: dvbhdffdevice.h:132
cHdffSetup::CecEnabled
int CecEnabled
Definition: setup.h:32
dvbhdffdevice.h
cHdffSetup::CecTvOff
int CecTvOff
Definition: setup.h:34
cPluginDvbhddevice::cPluginDvbhddevice
cPluginDvbhddevice(void)
Definition: dvbhddevice.c:37
cPluginDvbhddevice::ProcessArgs
virtual bool ProcessArgs(int argc, char *argv[])
Definition: dvbhddevice.c:53
gHdffSetup
cHdffSetup gHdffSetup
Definition: setup.c:16
isyslog
#define isyslog(a...)
Definition: tools.h:36
cHdffSetupPage
Definition: setup.h:48
VERSION
static const char * VERSION
Definition: dvbhddevice.c:14
cMenuSetupPage
Definition: menuitems.h:223
cDvbHdFfDevice::GetHdffCmdHandler
static HDFF::cHdffCmdIf * GetHdffCmdHandler(void)
Definition: dvbhdffdevice.c:979
cPluginDvbhddevice::Version
virtual const char * Version(void)
Definition: dvbhddevice.c:25
HDFF::cHdffCmdIf
Definition: hdffcmd.h:16
MAINMENUENTRY
static const char * MAINMENUENTRY
Definition: dvbhddevice.c:16
cHdffSetup::SetupParse
bool SetupParse(const char *Name, const char *Value)
Definition: setup.c:40