summaryrefslogtreecommitdiff
path: root/cam_menu.h
blob: 3ee5f51661fb9c5acf0a52522b60ec8ade8d5109 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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