]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
Expose DVB table API within the rest of the app (needed by new grabbers).
authorAdam Sutton <dev@adamsutton.me.uk>
Sat, 16 Jun 2012 20:04:55 +0000 (21:04 +0100)
committerAdam Sutton <dev@adamsutton.me.uk>
Tue, 19 Jun 2012 09:31:24 +0000 (10:31 +0100)
src/dvb/dvb.h
src/dvb/dvb_tables.c

index 8fac101379fe628923d03076180b67c65436a1d4..2cb5b943557a40fb891640b1eb6fae64b50f2bdf 100644 (file)
@@ -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
  */
index f2e83653131617c13afb94d9e7b4f16f43c9824e..03069044e282add6bfe92b7c45477a549f0f55ef 100644 (file)
 #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,