Permalink
Browse files

Expose DVB table API within the rest of the app (needed by new grabbe…

…rs).
  • Loading branch information...
adamsutton committed Jun 16, 2012
1 parent 4394b9e commit 01c619482f3ef08baea66157a5e65237c7d7e1df
Showing with 53 additions and 51 deletions.
  1. +51 −0 src/dvb/dvb.h
  2. +2 −51 src/dvb/dvb_tables.c
View
@@ -209,6 +209,46 @@ typedef struct th_dvb_adapter {
} th_dvb_adapter_t;
+/**
+ * DVB table
+ */
+typedef struct th_dvb_table {
+ /**
+ * Flags, must never be changed after creation.
+ * We inspect it without holding global_lock
+ */
+ int tdt_flags;
+
+ /**
+ * Cycle queue
+ * Tables that did not get a fd or filter in hardware will end up here
+ * waiting for any other table to be received so it can reuse that fd.
+ * Only linked if fd == -1
+ */
+ TAILQ_ENTRY(th_dvb_table) tdt_pending_link;
+
+ /**
+ * File descriptor for filter
+ */
+ int tdt_fd;
+
+ LIST_ENTRY(th_dvb_table) tdt_link;
+
+ char *tdt_name;
+
+ void *tdt_opaque;
+ int (*tdt_callback)(th_dvb_mux_instance_t *tdmi, uint8_t *buf, int len,
+ uint8_t tableid, void *opaque);
+
+
+ int tdt_count;
+ int tdt_pid;
+
+ struct dmx_sct_filter_params *tdt_fparams;
+
+ int tdt_id;
+
+} th_dvb_table_t;
extern struct th_dvb_adapter_queue dvb_adapters;
@@ -335,6 +375,17 @@ void dvb_table_add_default(th_dvb_mux_instance_t *tdmi);
void dvb_table_flush_all(th_dvb_mux_instance_t *tdmi);
+struct dmx_sct_filter_params *dvb_fparams_alloc(void);
+void
+tdt_add(th_dvb_mux_instance_t *tdmi, struct dmx_sct_filter_params *fparams,
+ int (*callback)(th_dvb_mux_instance_t *tdmi, uint8_t *buf, int len,
+ uint8_t tableid, void *opaque), void *opaque,
+ const char *name, int flags, int pid, th_dvb_table_t *tdt);
+
+#define TDT_CRC 0x1
+#define TDT_QUICKREQ 0x2
+#define TDT_CA 0x4
+
/**
* Satellite configuration
*/
View
@@ -42,68 +42,19 @@
#include "notify.h"
#include "cwc.h"
-#define TDT_CRC 0x1
-#define TDT_QUICKREQ 0x2
-#define TDT_CA 0x4
-
static void dvb_table_add_pmt(th_dvb_mux_instance_t *tdmi, int pmt_pid);
static int tdt_id_tally;
-/**
- *
- */
-typedef struct th_dvb_table {
- /**
- * Flags, must never be changed after creation.
- * We inspect it without holding global_lock
- */
- int tdt_flags;
-
- /**
- * Cycle queue
- * Tables that did not get a fd or filter in hardware will end up here
- * waiting for any other table to be received so it can reuse that fd.
- * Only linked if fd == -1
- */
- TAILQ_ENTRY(th_dvb_table) tdt_pending_link;
-
- /**
- * File descriptor for filter
- */
- int tdt_fd;
-
- LIST_ENTRY(th_dvb_table) tdt_link;
-
- char *tdt_name;
-
- void *tdt_opaque;
- int (*tdt_callback)(th_dvb_mux_instance_t *tdmi, uint8_t *buf, int len,
- uint8_t tableid, void *opaque);
-
-
- int tdt_count;
- int tdt_pid;
-
- struct dmx_sct_filter_params *tdt_fparams;
-
- int tdt_id;
-
-} th_dvb_table_t;
-
-
-
-
/**
* Helper for preparing a section filter parameter struct
*/
-static struct dmx_sct_filter_params *
+struct dmx_sct_filter_params *
dvb_fparams_alloc(void)
{
return calloc(1, sizeof(struct dmx_sct_filter_params));
}
-
/**
*
*/
@@ -323,7 +274,7 @@ dvb_tdt_destroy(th_dvb_adapter_t *tda, th_dvb_mux_instance_t *tdmi,
/**
* Add a new DVB table
*/
-static void
+void
tdt_add(th_dvb_mux_instance_t *tdmi, struct dmx_sct_filter_params *fparams,
int (*callback)(th_dvb_mux_instance_t *tdmi, uint8_t *buf, int len,
uint8_t tableid, void *opaque), void *opaque,

0 comments on commit 01c6194

Please sign in to comment.