fix segfault when dvb_charset != native_charset
[dvblast.git] / comm.h
blobfe58e3ea58a9632214f7eea7f118a55699b16f67
1 /*****************************************************************************
2 * comm.h
3 *****************************************************************************
4 * Copyright (C) 2008 VideoLAN
6 * Authors: Christophe Massiot <massiot@via.ecp.fr>
8 * This program is free software. It comes without any warranty, to
9 * the extent permitted by applicable law. You can redistribute it
10 * and/or modify it under the terms of the Do What The Fuck You Want
11 * To Public License, Version 2, as published by Sam Hocevar. See
12 * http://sam.zoy.org/wtfpl/COPYING for more details.
13 *****************************************************************************/
15 #ifdef HAVE_DVB_SUPPORT
16 /* DVB Card Drivers */
17 #include <linux/dvb/version.h>
18 #include <linux/dvb/dmx.h>
19 #include <linux/dvb/frontend.h>
20 #include <linux/dvb/ca.h>
21 #endif
23 #include <bitstream/mpeg/psi.h>
25 #define COMM_HEADER_SIZE 8
26 #define COMM_BUFFER_SIZE (COMM_HEADER_SIZE + ((PSI_PRIVATE_MAX_SIZE + PSI_HEADER_SIZE) * (PSI_TABLE_MAX_SECTIONS / 2)))
27 #define COMM_HEADER_MAGIC 0x49
29 #define COMM_MAX_MSG_CHUNK 4096
31 typedef enum {
32 CMD_INVALID = 0,
33 CMD_RELOAD = 1,
34 CMD_SHUTDOWN = 2,
35 CMD_FRONTEND_STATUS = 3,
36 CMD_MMI_STATUS = 4,
37 CMD_MMI_SLOT_STATUS = 5, /* arg: slot */
38 CMD_MMI_OPEN = 6, /* arg: slot */
39 CMD_MMI_CLOSE = 7, /* arg: slot */
40 CMD_MMI_RECV = 8, /* arg: slot */
41 CMD_GET_PAT = 10,
42 CMD_GET_CAT = 11,
43 CMD_GET_NIT = 12,
44 CMD_GET_SDT = 13,
45 CMD_GET_PMT = 14, /* arg: service_id (uint16_t) */
46 CMD_GET_PIDS = 15,
47 CMD_GET_PID = 16, /* arg: pid (uint16_t) */
48 CMD_MMI_SEND_TEXT = 17, /* arg: slot, en50221_mmi_object_t */
49 CMD_MMI_SEND_CHOICE = 18, /* arg: slot, en50221_mmi_object_t */
50 } ctl_cmd_t;
52 typedef enum {
53 RET_OK = 0,
54 RET_ERR = 1,
55 RET_FRONTEND_STATUS = 2,
56 RET_MMI_STATUS = 3,
57 RET_MMI_SLOT_STATUS = 4,
58 RET_MMI_RECV = 5,
59 RET_MMI_WAIT = 6,
60 RET_NODATA = 7,
61 RET_PAT = 8,
62 RET_CAT = 9,
63 RET_NIT = 10,
64 RET_SDT = 11,
65 RET_PMT = 12,
66 RET_PIDS = 13,
67 RET_PID = 14,
68 RET_HUH = 255,
69 } ctl_cmd_answer_t;
71 #ifdef HAVE_DVB_SUPPORT
72 struct ret_frontend_status
74 struct dvb_frontend_info info;
75 fe_status_t i_status;
76 uint32_t i_ber;
77 uint16_t i_strength, i_snr;
80 struct ret_mmi_status
82 ca_caps_t caps;
85 struct ret_mmi_slot_status
87 ca_slot_info_t sinfo;
90 struct ret_mmi_recv
92 en50221_mmi_object_t object;
95 struct cmd_mmi_send
97 uint8_t i_slot;
98 en50221_mmi_object_t object;
100 #endif
102 struct cmd_pid_info
104 ts_pid_info_t pids[MAX_PIDS];