summaryrefslogtreecommitdiff
path: root/cam_menu.h
diff options
context:
space:
mode:
authorLars Heer <l.heer@gmx.de>2013-09-18 05:50:03 +0200
committerLars Heer <l.heer@gmx.de>2013-09-18 05:50:03 +0200
commitccf6e0f9c6b0481ed13e0f4794e3fbead750f385 (patch)
treeed86efb54f7ee41edfba5c89ca519b5fd10aa0d5 /cam_menu.h
downloadvdr-plugin-mcli-ccf6e0f9c6b0481ed13e0f4794e3fbead750f385.tar.gz
vdr-plugin-mcli-ccf6e0f9c6b0481ed13e0f4794e3fbead750f385.tar.bz2
added vdr-plugin-mcli-0.0.1+svn20120927
Diffstat (limited to 'cam_menu.h')
-rw-r--r--cam_menu.h56
1 files changed, 56 insertions, 0 deletions
diff --git a/cam_menu.h b/cam_menu.h
new file mode 100644
index 0000000..3ee5f51
--- /dev/null
+++ b/cam_menu.h
@@ -0,0 +1,56 @@
+#ifndef CAM_MENU_H
+#define CAM_MENU_H
+
+#include <vdr/osdbase.h>
+#include "filter.h"
+#include "device.h"
+
+#define MAX_CAMS_IN_MENU 16
+#define CAMMENU_TIMEOUT 15
+
+typedef struct
+{
+ int port;
+ char iface[IFNAMSIZ];
+ char cmd_sock_path[_POSIX_PATH_MAX];
+ int tuner_type_limit[FE_DVBS2 + 1];
+ int mld_start;
+} cmdline_t;
+
+enum eInputRequest
+{ eInputNone, eInputBlind, eInputNotBlind };
+
+class cNCUpdate;
+
+class cCamMenu:public cOsdMenu
+{
+private:
+ int CamFind ();
+ int CamMenuOpen (mmi_info_t * mmi_info);
+ int CamMenuSend (int fd, const char *c);
+ int CamMenuReceive (int fd, char *buf, int bufsize);
+ void CamMenuClose (int fd);
+ int CamPollText (mmi_info_t * text);
+ cmdline_t *m_cmd;
+ UDPContext *m_cam_mmi;
+ int mmi_session;
+ bool inCamMenu;
+ bool inMMIBroadcastMenu;
+ bool end;
+ int currentSelected;
+ eInputRequest inputRequested;
+ char pin[32];
+ int pinCounter;
+ char buf[MMI_TEXT_LENGTH];
+ bool alreadyReceived;
+ cNCUpdate *NCUpdate;;
+public:
+ cCamMenu (cmdline_t * m_cmd);
+ cCamMenu (cmdline_t * m_cmd, mmi_info_t * mmi_info);
+ ~cCamMenu ();
+ eOSState ProcessKey (eKeys Key);
+ void OpenCamMenu ();
+ void Receive ();
+};
+
+#endif