vdr  2.4.0
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!
virtual const char * Version(void)
Definition: dvbhddevice.c:25
void CmdHdmiSendCecCommand(HdffCecCommand_t Command)
Definition: hdffcmd.c:384
bool IsUserInactive(time_t AtTime=0)
Check whether VDR is in interactive mode or non-interactive mode (waiting for shutdown).
Definition: shutdown.h:72
virtual cOsdObject * MainMenuAction(void)
Definition: dvbhddevice.c:106
const char * Name(void)
Definition: plugin.h:34
cHdffSetup gHdffSetup
Definition: setup.c:16
static const char * DESCRIPTION
Definition: dvbhddevice.c:15
Definition: plugin.h:20
VDRPLUGINCREATOR(cPluginDvbhddevice)
static const char * MAINMENUENTRY
Definition: dvbhddevice.c:16
virtual const char * CommandLineHelp(void)
Definition: dvbhddevice.c:48
virtual const char * Description(void)
Definition: dvbhddevice.c:26
virtual cMenuSetupPage * SetupMenu(void)
Definition: dvbhddevice.c:112
#define trNOOP(s)
Definition: i18n.h:88
int HideMainMenu
Definition: setup.h:42
void SetOutputOnly(bool On)
cShutdownHandler ShutdownHandler
Definition: shutdown.c:27
virtual bool SetupParse(const char *Name, const char *Value)
Definition: dvbhddevice.c:118
int CecTvOff
Definition: setup.h:34
cPluginDvbhddevice(void)
Definition: dvbhddevice.c:37
#define tr(s)
Definition: i18n.h:85
int CecTvOn
Definition: setup.h:33
cDvbHdFfDeviceProbe * probe
Definition: dvbhddevice.c:20
static const char * VERSION
Definition: dvbhddevice.c:14
#define isyslog(a...)
Definition: tools.h:36
virtual bool ProcessArgs(int argc, char *argv[])
Definition: dvbhddevice.c:53
int CecEnabled
Definition: setup.h:32
virtual void Stop(void)
Definition: dvbhddevice.c:88
static HDFF::cHdffCmdIf * GetHdffCmdHandler(void)
bool SetupParse(const char *Name, const char *Value)
Definition: setup.c:40
virtual const char * MainMenuEntry(void)
Definition: dvbhddevice.c:101
virtual ~cPluginDvbhddevice()
Definition: dvbhddevice.c:43
virtual void MainThreadHook(void)
Definition: dvbhddevice.c:71