]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
Move mux configuration stuff into dvb_mux_t
authorAndreas Öman <andreas@lonelycoder.com>
Wed, 5 Dec 2012 08:24:10 +0000 (09:24 +0100)
committerAndreas Öman <andreas@lonelycoder.com>
Wed, 5 Dec 2012 08:24:10 +0000 (09:24 +0100)
This also disables sat_conf stuff (LNB switches, etc) but we will
have to solve that in a different manner anyway

14 files changed:
src/dvb/dvb.h
src/dvb/dvb_adapter.c
src/dvb/dvb_fe.c
src/dvb/dvb_multiplex.c
src/dvb/dvb_preconf.c
src/dvb/dvb_preconf.h
src/dvb/dvb_satconf.c
src/dvb/dvb_service.c
src/dvb/dvb_support.c
src/dvb/dvb_support.h
src/dvb/dvb_tables.c
src/epggrab/otamux.c
src/webui/extjs_dvb.c
src/webui/statedump.c

index be70e6b816f6d4f05a383c43bc572cd25a2db33b..d03b0dde6fe2c9406670a0db3e3f98b2a07050bd 100644 (file)
@@ -39,7 +39,7 @@ RB_HEAD(th_dvb_mux_instance_tree, th_dvb_mux_instance);
 TAILQ_HEAD(th_dvb_mux_instance_queue, th_dvb_mux_instance);
 LIST_HEAD(th_dvb_mux_instance_list, th_dvb_mux_instance);
 TAILQ_HEAD(dvb_satconf_queue, dvb_satconf);
-
+LIST_HEAD(dvb_mux_list, dvb_mux);
 
 /**
  * Satconf
@@ -53,12 +53,9 @@ typedef struct dvb_satconf {
   char *sc_comment;
   char *sc_lnb;
 
-  struct th_dvb_mux_instance_list sc_tdmis;
-
 } dvb_satconf_t;
 
 
-
 enum polarisation {
        POLARISATION_HORIZONTAL     = 0x00,
        POLARISATION_VERTICAL       = 0x01,
@@ -76,7 +73,7 @@ typedef struct dvb_frontend_parameters dvb_frontend_parameters_t;
 typedef struct dvb_mux_conf {
   dvb_frontend_parameters_t dmc_fe_params;
   int dmc_polarisation;
-  dvb_satconf_t *dmc_satconf;
+  //  dvb_satconf_t *dmc_satconf;
 #if DVB_API_VERSION >= 5
   fe_modulation_t dmc_fe_modulation;
   fe_delivery_system_t dmc_fe_delsys;
@@ -85,14 +82,54 @@ typedef struct dvb_mux_conf {
 } dvb_mux_conf_t;
 
 
+
+/**
+ *
+ */
+typedef struct dvb_network {
+
+  struct th_dvb_mux_instance_list dn_mux_instances; // Should go away
+
+  struct th_dvb_mux_instance_queue dn_initial_scan_queue;
+  int dn_initial_num_mux;
+
+  struct th_dvb_mux_instance *dn_mux_epg;
+
+  int dn_fe_type;  // Frontend types for this network (FE_QPSK, etc)
+
+  //  struct dvb_mux_list dn_muxes;
+
+} dvb_network_t;
+
+
+
+/**
+ *
+ */
+typedef struct dvb_mux {
+
+  //  LIST_ENTRY(dvb_mux) dm_network_link;
+  dvb_network_t *dm_network;
+
+  struct service_list dm_services;
+
+  dvb_mux_conf_t dm_conf;
+
+} dvb_mux_t;
+
+
+
+
 /**
  * DVB Mux instance
  */
 typedef struct th_dvb_mux_instance {
 
+  dvb_mux_t *tdmi_mux;
+
   RB_ENTRY(th_dvb_mux_instance) tdmi_global_link;
 
-  LIST_ENTRY(th_dvb_mux_instance) tdmi_adapter_link;
+  LIST_ENTRY(th_dvb_mux_instance) tdmi_adapter_link; // wrong
 
   struct th_dvb_adapter *tdmi_adapter;
 
@@ -124,8 +161,6 @@ typedef struct th_dvb_mux_instance {
 
   int tdmi_enabled;
 
-  dvb_mux_conf_t tdmi_conf;
-
   /* Linked if tdmi_conf.dmc_satconf != NULL */
   LIST_ENTRY(th_dvb_mux_instance) tdmi_satconf_link;
 
@@ -137,8 +172,6 @@ typedef struct th_dvb_mux_instance {
 
   char *tdmi_default_authority;
 
-  struct service_list tdmi_transports; /* via s_mux_link */
-
   TAILQ_ENTRY(th_dvb_mux_instance) tdmi_scan_link;
   struct th_dvb_mux_instance_queue *tdmi_scan_queue;
 
@@ -151,6 +184,7 @@ typedef struct th_dvb_mux_instance {
 
 
 
+
 /**
  * When in raw mode we need to enqueue raw TS packet
  * to a different thread because we need to hold
@@ -165,20 +199,6 @@ typedef struct dvb_table_feed {
 
 
 
-/**
- *
- */
-typedef struct dvb_network {
-
-  struct th_dvb_mux_instance_list dn_muxes;
-
-  struct th_dvb_mux_instance_queue dn_initial_scan_queue;
-  int dn_initial_num_mux;
-
-  th_dvb_mux_instance_t *dn_mux_epg;
-
-} dvb_network_t;
-
 
 /**
  * DVB Adapter (one of these per physical adapter)
@@ -212,7 +232,7 @@ typedef struct th_dvb_adapter {
   int32_t  tda_full_mux_rx;
   char *tda_displayname;
 
-  int tda_type;
+  int tda_fe_type;
   struct dvb_frontend_info *tda_fe_info; // result of FE_GET_INFO ioctl()
 
   char *tda_fe_path;
@@ -407,8 +427,7 @@ th_dvb_mux_instance_t *dvb_mux_create(th_dvb_adapter_t *tda,
                                      const struct dvb_mux_conf *dmc,
                                      uint16_t onid, uint16_t tsid, const char *network,
                                      const char *logprefix, int enabled,
-                                     int initialscan, const char *identifier,
-                                     dvb_satconf_t *satconf);
+                                     int initialscan, const char *identifier);
 
 void dvb_mux_set_networkname(th_dvb_mux_instance_t *tdmi, const char *name);
 
@@ -439,9 +458,10 @@ const char *dvb_mux_add_by_params(th_dvb_adapter_t *tda,
                                  int fec,
                                  int polarisation,
                                  const char *satconf);
-
+#if 0
 int dvb_mux_copy(th_dvb_adapter_t *dst, th_dvb_mux_instance_t *tdmi_src,
                 dvb_satconf_t *satconf);
+#endif
 
 th_dvb_mux_instance_t *dvb_mux_find
   (th_dvb_adapter_t *tda, const char *netname, uint16_t onid, uint16_t tsid,
index a1175c69d86eb8a082e4093579b46ccbc0e44872..5af203f52b18b39d5ac5509377e99aa212141f07 100644 (file)
@@ -78,7 +78,7 @@ tda_save(th_dvb_adapter_t *tda)
 
   lock_assert(&global_lock);
 
-  htsmsg_add_str(m, "type", dvb_adaptertype_to_str(tda->tda_type));
+  htsmsg_add_str(m, "type", dvb_adaptertype_to_str(tda->tda_fe_type));
   htsmsg_add_str(m, "displayname", tda->tda_displayname);
   htsmsg_add_u32(m, "autodiscovery", tda->tda_autodiscovery);
   htsmsg_add_u32(m, "idleclose", tda->tda_idleclose);
@@ -466,7 +466,8 @@ tda_add(int adapter_num)
   else
     close(fe);
 
-  tda->tda_type = tda->tda_fe_info->type;
+  tda->tda_fe_type = tda->tda_fe_info->type;
+  tda->tda_dn->dn_fe_type = tda->tda_fe_type;
 
   snprintf(buf, sizeof(buf), "%s_%s", tda->tda_rootpath,
           tda->tda_fe_info->name);
@@ -478,9 +479,9 @@ tda_add(int adapter_num)
 
   tda->tda_identifier = strdup(buf);
   
-  tda->tda_autodiscovery = tda->tda_type != FE_QPSK;
+  tda->tda_autodiscovery = tda->tda_fe_type != FE_QPSK;
 
-  tda->tda_sat = tda->tda_type == FE_QPSK;
+  tda->tda_sat = tda->tda_fe_type == FE_QPSK;
 
   /* Come up with an initial displayname, user can change it and it will
      be overridden by any stored settings later on */
@@ -516,7 +517,7 @@ tda_add_from_file(const char *filename)
   tda->tda_fe_fd       = -1;
   tda->tda_dvr_pipe[0] = -1;
 
-  tda->tda_type = -1;
+  tda->tda_fe_type = -1;
 
   snprintf(buf, sizeof(buf), "%s", filename);
 
@@ -546,7 +547,7 @@ tda_add_from_file(const char *filename)
  */
 static void tda_init_input (th_dvb_adapter_t *tda)
 {
-  if(tda->tda_type == -1 || check_full_stream(tda)) {
+  if(tda->tda_fe_type == -1 || check_full_stream(tda)) {
     tvhlog(LOG_INFO, "dvb", "Adapter %s will run in full mux mode", tda->tda_rootpath);
     dvb_input_raw_setup(tda);
   } else {
@@ -656,10 +657,10 @@ dvb_adapter_init(uint32_t adapter_mask, const char *rawfile)
         /* Not discovered by hardware, create it */
         tda = tda_alloc();
         tda->tda_identifier = strdup(f->hmf_name);
-        tda->tda_type = type;
+        tda->tda_fe_type = type;
         TAILQ_INSERT_TAIL(&dvb_adapters, tda, tda_global_link);
       } else {
-        if(type != tda->tda_type)
+        if(type != tda->tda_fe_type)
           continue; /* Something is wrong, ignore */
       }
 
@@ -713,7 +714,7 @@ dvb_adapter_mux_scanner(void *aux)
   gtimer_arm(&tda->tda_mux_scanner_timer, dvb_adapter_mux_scanner, tda, 20);
 
   /* No muxes */
-  if(LIST_FIRST(&tda->tda_dn->dn_muxes) == NULL) {
+  if(LIST_FIRST(&tda->tda_dn->dn_mux_instances) == NULL) {
     dvb_adapter_poweroff(tda);
     return;
   }
@@ -763,17 +764,17 @@ dvb_adapter_mux_scanner(void *aux)
 void
 dvb_adapter_clone(th_dvb_adapter_t *dst, th_dvb_adapter_t *src)
 {
+#if 0
   th_dvb_mux_instance_t *tdmi_src, *tdmi_dst;
 
   lock_assert(&global_lock);
 
-  while((tdmi_dst = LIST_FIRST(&dst->tda_dn->dn_muxes)) != NULL)
+  while((tdmi_dst = LIST_FIRST(&dst->tda_dn->dn_mux_instances)) != NULL)
     dvb_mux_destroy(tdmi_dst);
 
-  LIST_FOREACH(tdmi_src, &src->tda_dn->dn_muxes, tdmi_adapter_link)
-    dvb_mux_copy(dst, tdmi_src, NULL);
-
   tda_save(dst);
+#endif
+  abort(); // XXX(dvbreorg)
 }
 
 
@@ -792,7 +793,7 @@ dvb_adapter_destroy(th_dvb_adapter_t *tda)
 
   hts_settings_remove("dvbadapters/%s", tda->tda_identifier);
 
-  while((tdmi = LIST_FIRST(&tda->tda_dn->dn_muxes)) != NULL)
+  while((tdmi = LIST_FIRST(&tda->tda_dn->dn_mux_instances)) != NULL)
     dvb_mux_destroy(tdmi);
   
   TAILQ_REMOVE(&dvb_adapters, tda, tda_global_link);
@@ -995,9 +996,9 @@ dvb_adapter_build_msg(th_dvb_adapter_t *tda)
   htsmsg_add_str(m, "name", tda->tda_displayname);
 
   // XXX: bad bad bad slow slow slow
-  LIST_FOREACH(tdmi, &tda->tda_dn->dn_muxes, tdmi_adapter_link) {
+  LIST_FOREACH(tdmi, &tda->tda_dn->dn_mux_instances, tdmi_adapter_link) {
     nummux++;
-    LIST_FOREACH(t, &tdmi->tdmi_transports, s_group_link) {
+    LIST_FOREACH(t, &tdmi->tdmi_mux->dm_services, s_group_link) {
       numsvc++;
     }
   }
@@ -1046,11 +1047,11 @@ dvb_adapter_build_msg(th_dvb_adapter_t *tda)
   htsmsg_add_str(m, "devicename", tda->tda_fe_info->name);
 
   htsmsg_add_str(m, "deliverySystem", 
-                dvb_adaptertype_to_str(tda->tda_type) ?: "");
+                dvb_adaptertype_to_str(tda->tda_fe_type) ?: "");
 
   htsmsg_add_u32(m, "satConf", tda->tda_sat);
 
-  fdiv = tda->tda_type == FE_QPSK ? 1 : 1000;
+  fdiv = tda->tda_fe_type == FE_QPSK ? 1 : 1000;
 
   htsmsg_add_u32(m, "freqMin", tda->tda_fe_info->frequency_min / fdiv);
   htsmsg_add_u32(m, "freqMax", tda->tda_fe_info->frequency_max / fdiv);
@@ -1208,7 +1209,7 @@ dvb_adapter_poweroff(th_dvb_adapter_t *tda)
 {
   if (tda->tda_fe_fd == -1) return;
   lock_assert(&global_lock);
-  if (!tda->tda_poweroff || tda->tda_type != FE_QPSK)
+  if (!tda->tda_poweroff || tda->tda_fe_type != FE_QPSK)
     return;
   diseqc_voltage_off(tda->tda_fe_fd);
   tvhlog(LOG_DEBUG, "dvb", "\"%s\" is off", tda->tda_rootpath);
index a74948106d4fac272f04055ac32001b6425ebe08..8d0f668958bef0d9acef2238f5e3b91d673a30bb 100644 (file)
@@ -396,7 +396,8 @@ dvb_fe_tune(th_dvb_mux_instance_t *tdmi, const char *reason)
   th_dvb_adapter_t *tda = tdmi->tdmi_adapter;
 
   // copy dmc, cause frequency may be change with FE_QPSK
-  dvb_mux_conf_t dmc = tdmi->tdmi_conf;
+  const dvb_mux_t *dm = tdmi->tdmi_mux;
+  dvb_mux_conf_t dmc = dm->dm_conf;
   dvb_frontend_parameters_t* p = &dmc.dmc_fe_params;
   
   char buf[256];
@@ -423,10 +424,9 @@ dvb_fe_tune(th_dvb_mux_instance_t *tdmi, const char *reason)
   else
     dvb_adapter_start(tda);
       
-  if(tda->tda_type == FE_QPSK) {
+  if(tda->tda_fe_type == FE_QPSK) {
        
     /* DVB-S */
-    dvb_satconf_t *sc;
     int port, lowfreq, hifreq, switchfreq, hiband, pol, dbsbs;
 
     lowfreq = 9750000;
@@ -434,8 +434,9 @@ dvb_fe_tune(th_dvb_mux_instance_t *tdmi, const char *reason)
     switchfreq = 11700000;
     port = 0;
     dbsbs = 0;
-
-    if((sc = tdmi->tdmi_conf.dmc_satconf) != NULL) {
+#if 0
+    dvb_satconf_t *sc;
+    if((sc = dm->dm_conf.dmc_satconf) != NULL) {
       port = sc->sc_port;
 
       if(sc->sc_lnb != NULL)
@@ -443,18 +444,19 @@ dvb_fe_tune(th_dvb_mux_instance_t *tdmi, const char *reason)
       if(!strcmp(sc->sc_id ?: "", "DBS Bandstacked"))
         dbsbs = 1;
     }
+#endif
 
     if(dbsbs) {
       hiband = 0;
-      if(tdmi->tdmi_conf.dmc_polarisation == POLARISATION_HORIZONTAL ||
-         tdmi->tdmi_conf.dmc_polarisation == POLARISATION_CIRCULAR_LEFT)
+      if(dm->dm_conf.dmc_polarisation == POLARISATION_HORIZONTAL ||
+         dm->dm_conf.dmc_polarisation == POLARISATION_CIRCULAR_LEFT)
         p->frequency = abs(p->frequency - hifreq);
       else
         p->frequency = abs(p->frequency - lowfreq);
       pol = POLARISATION_CIRCULAR_LEFT;
     } else {
       hiband = switchfreq && p->frequency > switchfreq;
-      pol = tdmi->tdmi_conf.dmc_polarisation;
+      pol = dm->dm_conf.dmc_polarisation;
       if(hiband)
         p->frequency = abs(p->frequency - hifreq);
       else
@@ -475,7 +477,7 @@ dvb_fe_tune(th_dvb_mux_instance_t *tdmi, const char *reason)
 
 
 #if DVB_API_VERSION >= 5
-  if (tda->tda_type == FE_QPSK) {
+  if (tda->tda_fe_type == FE_QPSK) {
     tvhlog(LOG_DEBUG, "dvb", "\"%s\" tuning via s2api to \"%s\" (%d, %d Baud, "
            "%s, %s, %s) for %s", tda->tda_rootpath, buf, p->frequency, p->u.qpsk.symbol_rate, 
       dvb_mux_fec2str(p->u.qpsk.fec_inner), dvb_mux_delsys2str(dmc.dmc_fe_delsys), 
index 8972226e12289f3eb4afa4b773d810fcdbc20218..a223bbfb1babece0e1dabd9249ba1ca794df3c42 100644 (file)
@@ -108,8 +108,7 @@ tdmi_compare_key(const struct dvb_mux_conf *a,
              - (int32_t)b->dmc_fe_params.frequency;
   fd = labs(fd);
   return fd < 2000 &&
-    a->dmc_polarisation             == b->dmc_polarisation &&
-    a->dmc_satconf                  == b->dmc_satconf;
+    a->dmc_polarisation             == b->dmc_polarisation;
 }
 
 
@@ -154,8 +153,7 @@ tdmi_compare_conf(int adapter_type,
 th_dvb_mux_instance_t *
 dvb_mux_create(th_dvb_adapter_t *tda, const struct dvb_mux_conf *dmc,
               uint16_t onid, uint16_t tsid, const char *network, const char *source,
-              int enabled, int initialscan, const char *identifier,
-              dvb_satconf_t *satconf)
+              int enabled, int initialscan, const char *identifier)
 {
   th_dvb_mux_instance_t *tdmi, *c;
   char buf[200];
@@ -163,8 +161,8 @@ dvb_mux_create(th_dvb_adapter_t *tda, const struct dvb_mux_conf *dmc,
   lock_assert(&global_lock);
 
   /* HACK - we hash/compare based on 2KHz spacing and compare on +/-500Hz */
-  LIST_FOREACH(tdmi, &tda->tda_dn->dn_muxes, tdmi_adapter_link) {
-    if(tdmi_compare_key(&tdmi->tdmi_conf, dmc))
+  LIST_FOREACH(tdmi, &tda->tda_dn->dn_mux_instances, tdmi_adapter_link) {
+    if(tdmi_compare_key(&tdmi->tdmi_mux->dm_conf, dmc))
       break; /* Mux already exist */
   }
 
@@ -174,25 +172,25 @@ dvb_mux_create(th_dvb_adapter_t *tda, const struct dvb_mux_conf *dmc,
     char buf2[1024];
     buf2[0] = 0;
 
-    if(tdmi_compare_conf(tda->tda_type, &tdmi->tdmi_conf, dmc)) {
+    if(tdmi_compare_conf(tda->tda_fe_type, &tdmi->tdmi_mux->dm_conf, dmc)) {
 #if DVB_API_VERSION >= 5
       snprintf(buf2, sizeof(buf2), " (");
-      if (tdmi->tdmi_conf.dmc_fe_modulation != dmc->dmc_fe_modulation)
+      if (tdmi->tdmi_mux->dm_conf.dmc_fe_modulation != dmc->dmc_fe_modulation)
         sprintf(buf2, "%s %s->%s, ", buf2, 
-            dvb_mux_qam2str(tdmi->tdmi_conf.dmc_fe_modulation), 
+            dvb_mux_qam2str(tdmi->tdmi_mux->dm_conf.dmc_fe_modulation), 
             dvb_mux_qam2str(dmc->dmc_fe_modulation));
-      if (tdmi->tdmi_conf.dmc_fe_delsys != dmc->dmc_fe_delsys)
+      if (tdmi->tdmi_mux->dm_conf.dmc_fe_delsys != dmc->dmc_fe_delsys)
         sprintf(buf2, "%s %s->%s, ", buf2, 
-            dvb_mux_delsys2str(tdmi->tdmi_conf.dmc_fe_delsys), 
+            dvb_mux_delsys2str(tdmi->tdmi_mux->dm_conf.dmc_fe_delsys), 
             dvb_mux_delsys2str(dmc->dmc_fe_delsys));
-      if (tdmi->tdmi_conf.dmc_fe_rolloff != dmc->dmc_fe_rolloff)
+      if (tdmi->tdmi_mux->dm_conf.dmc_fe_rolloff != dmc->dmc_fe_rolloff)
         sprintf(buf2, "%s %s->%s, ", buf2, 
-            dvb_mux_rolloff2str(tdmi->tdmi_conf.dmc_fe_rolloff), 
+            dvb_mux_rolloff2str(tdmi->tdmi_mux->dm_conf.dmc_fe_rolloff), 
             dvb_mux_rolloff2str(dmc->dmc_fe_rolloff));
       sprintf(buf2, "%s)", buf2);
 #endif
 
-      memcpy(&tdmi->tdmi_conf, dmc, sizeof(struct dvb_mux_conf));
+      memcpy(&tdmi->tdmi_mux->dm_conf, dmc, sizeof(struct dvb_mux_conf));
       save = 1;
     }
 
@@ -227,6 +225,10 @@ dvb_mux_create(th_dvb_adapter_t *tda, const struct dvb_mux_conf *dmc,
 
   tdmi = calloc(1, sizeof(th_dvb_mux_instance_t));
 
+  tdmi->tdmi_mux = calloc(1, sizeof(dvb_mux_t));
+
+  tdmi->tdmi_mux->dm_network = tda->tda_dn;
+
   if(identifier == NULL) {
     char qpsktxt[20];
     
@@ -236,12 +238,8 @@ dvb_mux_create(th_dvb_adapter_t *tda, const struct dvb_mux_conf *dmc,
     else
       qpsktxt[0] = 0;
     
-    snprintf(buf, sizeof(buf), "%s%d%s%s%s", 
-            tda->tda_identifier, dmc->dmc_fe_params.frequency, qpsktxt,
-            (satconf || dmc->dmc_satconf) ? "_satconf_" : "", 
-            (satconf ? satconf->sc_id :
-              (dmc->dmc_satconf ? dmc->dmc_satconf->sc_id : "")));
-    
+    snprintf(buf, sizeof(buf), "%s%d%s", 
+            tda->tda_identifier, dmc->dmc_fe_params.frequency, qpsktxt);
     tdmi->tdmi_identifier = strdup(buf);
   } else {
     tdmi->tdmi_identifier = strdup(identifier);
@@ -272,15 +270,9 @@ dvb_mux_create(th_dvb_adapter_t *tda, const struct dvb_mux_conf *dmc,
   tdmi->tdmi_network = network ? strdup(network) : NULL;
   tdmi->tdmi_quality = 100;
 
-  memcpy(&tdmi->tdmi_conf, dmc, sizeof(struct dvb_mux_conf));
-  if(satconf)
-    tdmi->tdmi_conf.dmc_satconf = satconf;
-  if(tdmi->tdmi_conf.dmc_satconf != NULL) {
-    LIST_INSERT_HEAD(&tdmi->tdmi_conf.dmc_satconf->sc_tdmis, 
-                    tdmi, tdmi_satconf_link);
-  }
+  memcpy(&tdmi->tdmi_mux->dm_conf, dmc, sizeof(struct dvb_mux_conf));
 
-  LIST_INSERT_HEAD(&tda->tda_dn->dn_muxes, tdmi, tdmi_adapter_link);
+  LIST_INSERT_HEAD(&tda->tda_dn->dn_mux_instances, tdmi, tdmi_adapter_link);
   tdmi->tdmi_table_initial = initialscan;
 
   if(source != NULL) {
@@ -316,7 +308,7 @@ dvb_mux_destroy(th_dvb_mux_instance_t *tdmi)
   hts_settings_remove("dvbmuxes/%s/%s",
                      tda->tda_identifier, tdmi->tdmi_identifier);
 
-  while((t = LIST_FIRST(&tdmi->tdmi_transports)) != NULL) {
+  while((t = LIST_FIRST(&tdmi->tdmi_mux->dm_services)) != NULL) {
     hts_settings_remove("dvbtransports/%s/%s",
                        t->s_dvb_mux_instance->tdmi_identifier,
                        t->s_identifier);
@@ -328,9 +320,6 @@ dvb_mux_destroy(th_dvb_mux_instance_t *tdmi)
   if(tda->tda_mux_current == tdmi)
     dvb_fe_stop(tda->tda_mux_current, 0);
 
-  if(tdmi->tdmi_conf.dmc_satconf != NULL)
-    LIST_REMOVE(tdmi, tdmi_satconf_link);
-
   RB_REMOVE(&dvb_muxes, tdmi, tdmi_global_link);
   LIST_REMOVE(tdmi, tdmi_adapter_link);
 
@@ -552,7 +541,8 @@ int dvb_mux_str2hier(const char *str)
 void
 dvb_mux_save(th_dvb_mux_instance_t *tdmi)
 {
-  struct dvb_frontend_parameters *f = &tdmi->tdmi_conf.dmc_fe_params;
+  const dvb_mux_conf_t *dmc = &tdmi->tdmi_mux->dm_conf;
+  const struct dvb_frontend_parameters *f = &dmc->dmc_fe_params;
 
   htsmsg_t *m = htsmsg_create_map();
 
@@ -572,7 +562,7 @@ dvb_mux_save(th_dvb_mux_instance_t *tdmi)
   if(tdmi->tdmi_default_authority)
     htsmsg_add_str(m, "default_authority", tdmi->tdmi_default_authority);
 
-  switch(tdmi->tdmi_adapter->tda_type) {
+  switch(tdmi->tdmi_adapter->tda_fe_type) {
   case FE_OFDM:
     htsmsg_add_str(m, "bandwidth",
                   val2str(f->u.ofdm.bandwidth, bwtab));
@@ -603,17 +593,17 @@ dvb_mux_save(th_dvb_mux_instance_t *tdmi)
       val2str(f->u.qpsk.fec_inner, fectab));
 
     htsmsg_add_str(m, "polarisation", 
-      val2str(tdmi->tdmi_conf.dmc_polarisation, poltab));
+      val2str(dmc->dmc_polarisation, poltab));
 
 #if DVB_API_VERSION >= 5
     htsmsg_add_str(m, "modulation",
-      val2str(tdmi->tdmi_conf.dmc_fe_modulation, qamtab));
+      val2str(dmc->dmc_fe_modulation, qamtab));
 
     htsmsg_add_str(m, "delivery_system",
-      val2str(tdmi->tdmi_conf.dmc_fe_delsys, delsystab));
+      val2str(dmc->dmc_fe_delsys, delsystab));
 
     htsmsg_add_str(m, "rolloff",
-      val2str(tdmi->tdmi_conf.dmc_fe_rolloff, rollofftab));
+      val2str(dmc->dmc_fe_rolloff, rollofftab));
 #endif
     break;
 
@@ -633,10 +623,7 @@ dvb_mux_save(th_dvb_mux_instance_t *tdmi)
     break;
   }
 
-  if(tdmi->tdmi_conf.dmc_satconf != NULL)
-    htsmsg_add_str(m, "satconf", tdmi->tdmi_conf.dmc_satconf->sc_id);
-
-  hts_settings_save(m, "dvbmuxes/%s/%s", 
+  hts_settings_save(m, "dvbmuxes/%s/%s",
                    tdmi->tdmi_adapter->tda_identifier, tdmi->tdmi_identifier);
   htsmsg_destroy(m);
 }
@@ -660,7 +647,7 @@ tdmi_create_by_msg(th_dvb_adapter_t *tda, htsmsg_t *m, const char *identifier)
   htsmsg_get_u32(m, "frequency", &dmc.dmc_fe_params.frequency);
 
 
-  switch(tda->tda_type) {
+  switch(tda->tda_fe_type) {
   case FE_OFDM:
     s = htsmsg_get_str(m, "bandwidth");
     if(s == NULL || (r = str2val(s, bwtab)) < 0)
@@ -773,16 +760,11 @@ tdmi_create_by_msg(th_dvb_adapter_t *tda, htsmsg_t *m, const char *identifier)
   if(htsmsg_get_u32(m, "enabled", &enabled))
     enabled = 1;
 
-  if((s = htsmsg_get_str(m, "satconf")) != NULL)
-    dmc.dmc_satconf = dvb_satconf_entry_find(tda, s, 0);
-  else
-    dmc.dmc_satconf = NULL;
-
   initscan = htsmsg_get_u32_or_default(m, "initialscan", 0);
   tdmi = dvb_mux_create(tda, &dmc,
                        onid, tsid, htsmsg_get_str(m, "network"), NULL, enabled,
                         initscan,
-                       identifier, NULL);
+                       identifier);
   if(tdmi != NULL) {
 
     if((s = htsmsg_get_str(m, "status")) != NULL)
@@ -956,9 +938,10 @@ dvb_mux_fe_status(char *buf, size_t size, th_dvb_mux_instance_t *tdmi)
 static void
 dvb_mux_modulation(char *buf, size_t size, th_dvb_mux_instance_t *tdmi)
 {
-  struct dvb_frontend_parameters *f = &tdmi->tdmi_conf.dmc_fe_params;
+  const dvb_mux_conf_t *dmc = &tdmi->tdmi_mux->dm_conf;
+  const struct dvb_frontend_parameters *f = &dmc->dmc_fe_params;
 
-  switch(tdmi->tdmi_adapter->tda_type) {
+  switch(tdmi->tdmi_adapter->tda_fe_type) {
   case FE_OFDM:
     snprintf(buf, size, "%s, %s, %s-mode",
             val2str(f->u.ofdm.constellation, qamtab),
@@ -969,8 +952,8 @@ dvb_mux_modulation(char *buf, size_t size, th_dvb_mux_instance_t *tdmi)
   case FE_QPSK:
 #if DVB_API_VERSION >= 5
     snprintf(buf, size, "%d kBaud, %s, %s", f->u.qpsk.symbol_rate / 1000,
-      val2str(tdmi->tdmi_conf.dmc_fe_delsys, delsystab),
-      val2str(tdmi->tdmi_conf.dmc_fe_modulation, qamtab));
+      val2str(dmc->dmc_fe_delsys, delsystab),
+      val2str(dmc->dmc_fe_modulation, qamtab));
 #else
     snprintf(buf, size, "%d kBaud", f->u.qpsk.symbol_rate / 1000);
 #endif
@@ -1005,7 +988,7 @@ dvb_mux_build_msg(th_dvb_mux_instance_t *tdmi)
   htsmsg_add_u32(m, "enabled",  tdmi->tdmi_enabled);
   htsmsg_add_str(m, "network", tdmi->tdmi_network ?: "");
 
-  dvb_mux_nicefreq(buf, sizeof(buf), tdmi);
+  dvb_mux_nicefreq(buf, sizeof(buf), tdmi->tdmi_mux);
   htsmsg_add_str(m, "freq",  buf);
 
   dvb_mux_modulation(buf, sizeof(buf), tdmi);
@@ -1014,11 +997,11 @@ dvb_mux_build_msg(th_dvb_mux_instance_t *tdmi)
   dvb_mux_fe_status(buf, sizeof(buf), tdmi);
   htsmsg_add_str(m, "fe_status", buf);
 
-  htsmsg_add_str(m, "pol", 
-                dvb_polarisation_to_str_long(tdmi->tdmi_conf.dmc_polarisation));
+  const dvb_mux_conf_t *dmc = &tdmi->tdmi_mux->dm_conf;
+
 
-  if(tdmi->tdmi_conf.dmc_satconf != NULL)
-    htsmsg_add_str(m, "satconf", tdmi->tdmi_conf.dmc_satconf->sc_id);
+  htsmsg_add_str(m, "pol", 
+                dvb_polarisation_to_str_long(dmc->dmc_polarisation));
 
   if(tdmi->tdmi_transport_stream_id != 0xffff)
     htsmsg_add_u32(m, "muxid", tdmi->tdmi_transport_stream_id);
@@ -1066,7 +1049,7 @@ dvb_mux_add_by_params(th_dvb_adapter_t *tda,
   memset(&dmc, 0, sizeof(dmc));
   dmc.dmc_fe_params.inversion = INVERSION_AUTO;
    
-  switch(tda->tda_type) {
+  switch(tda->tda_fe_type) {
   case FE_OFDM:
     dmc.dmc_fe_params.frequency = freq * 1000;
     if(!val2str(bw,            bwtab))
@@ -1150,16 +1133,9 @@ dvb_mux_add_by_params(th_dvb_adapter_t *tda,
 
   }
 
-  if(satconf != NULL) {
-    dmc.dmc_satconf = dvb_satconf_entry_find(tda, satconf, 0);
-    if(dmc.dmc_satconf == NULL)
-      return "Satellite configuration not found";
-  } else {
-    dmc.dmc_satconf = NULL;
-  }
   dmc.dmc_polarisation = polarisation;
 
-  tdmi = dvb_mux_create(tda, &dmc, 0, 0xffff, NULL, NULL, 1, 1, NULL, NULL);
+  tdmi = dvb_mux_create(tda, &dmc, 0, 0xffff, NULL, NULL, 1, 1, NULL);
 
   if(tdmi == NULL)
     return "Mux already exist";
@@ -1167,7 +1143,7 @@ dvb_mux_add_by_params(th_dvb_adapter_t *tda,
   return NULL;
 }
                        
-
+#if 0
 /**
  *
  */
@@ -1191,7 +1167,7 @@ dvb_mux_copy(th_dvb_adapter_t *dst, th_dvb_mux_instance_t *tdmi_src,
   if(tdmi_dst == NULL)
     return -1; // Already exist
 
-  LIST_FOREACH(t_src, &tdmi_src->tdmi_transports, s_group_link) {
+  LIST_FOREACH(t_src, &tdmi_src->tdmi_mux->dm_services, s_group_link) {
     t_dst = dvb_service_find(tdmi_dst, 
                               t_src->s_dvb_service_id,
                               t_src->s_pmt_pid, NULL);
@@ -1245,6 +1221,7 @@ dvb_mux_copy(th_dvb_adapter_t *dst, th_dvb_mux_instance_t *tdmi_src,
   dvb_mux_save(tdmi_dst);
   return 0;
 }
+#endif
 
 th_dvb_mux_instance_t *dvb_mux_find
   ( th_dvb_adapter_t *tda, const char *netname, uint16_t onid, uint16_t tsid,
@@ -1252,7 +1229,7 @@ th_dvb_mux_instance_t *dvb_mux_find
 {
   th_dvb_mux_instance_t *tdmi;
   if (tda) {
-    LIST_FOREACH(tdmi, &tda->tda_dn->dn_muxes, tdmi_adapter_link) {
+    LIST_FOREACH(tdmi, &tda->tda_dn->dn_mux_instances, tdmi_adapter_link) {
       if (enabled && !tdmi->tdmi_enabled) continue;
       if (onid    && onid != tdmi->tdmi_network_id) continue;
       if (tsid    && tsid != tdmi->tdmi_transport_stream_id) continue;
index 755340dbf2b7e0149e6274d2fbca25949ed5d792..1dfb52345a8162486ec90fc4f6f12804cd64e33e 100644 (file)
@@ -36,7 +36,7 @@
  */
 static void
 dvb_mux_preconf_add(th_dvb_adapter_t *tda, const network_t *net,
-                   const char *source, const char *satconf)
+                   const char *source)
 {
   const mux_t *m;
   struct dvb_mux_conf dmc;
@@ -48,7 +48,7 @@ dvb_mux_preconf_add(th_dvb_adapter_t *tda, const network_t *net,
     dmc.dmc_fe_params.inversion = INVERSION_AUTO;
     dmc.dmc_fe_params.frequency = m->freq;
     
-    switch(tda->tda_type) {
+    switch(tda->tda_fe_type) {
     case FE_OFDM:
       dmc.dmc_fe_params.u.ofdm.bandwidth             = m->bw;
       dmc.dmc_fe_params.u.ofdm.constellation         = m->constellation;
@@ -96,9 +96,7 @@ dvb_mux_preconf_add(th_dvb_adapter_t *tda, const network_t *net,
       break;
     }
 
-    dmc.dmc_satconf = dvb_satconf_entry_find(tda, satconf, 0);
-      
-    dvb_mux_create(tda, &dmc, 0, 0xffff, NULL, source, 1, 1, NULL, NULL);
+    dvb_mux_create(tda, &dmc, 0, 0xffff, NULL, source, 1, 1, NULL);
   }
 }
 
@@ -107,8 +105,7 @@ dvb_mux_preconf_add(th_dvb_adapter_t *tda, const network_t *net,
  *
  */
 int
-dvb_mux_preconf_add_network(th_dvb_adapter_t *tda, const char *id,
-                           const char *satconf)
+dvb_mux_preconf_add_network(th_dvb_adapter_t *tda, const char *id)
 {
   region_list_t *list;
   const region_t *r;
@@ -117,7 +114,7 @@ dvb_mux_preconf_add_network(th_dvb_adapter_t *tda, const char *id,
 
   snprintf(source, sizeof(source), "built-in configuration from \"%s\"", id);
 
-  switch(tda->tda_type) {
+  switch(tda->tda_fe_type) {
     case FE_QAM:
       list = &regions_DVBC;
       break;
@@ -137,7 +134,7 @@ dvb_mux_preconf_add_network(th_dvb_adapter_t *tda, const char *id,
   LIST_FOREACH(r, list, link) {
     LIST_FOREACH(n, &r->networks, link) {
       if(!strcmp(n->id, id)) {
-        dvb_mux_preconf_add(tda, n, source, satconf);
+        dvb_mux_preconf_add(tda, n, source);
         break;
       }
     }
index 71dbce28eb5826bd12cc0b8737752660e368d25f..a76f3a7e2244aa248f646913915f642ab0288034 100644 (file)
@@ -23,7 +23,6 @@
 
 htsmsg_t *dvb_mux_preconf_get_node(int fetype, const char *node);
 
-int dvb_mux_preconf_add_network(th_dvb_adapter_t *tda, const char *id,
-                               const char *satconf);
+int dvb_mux_preconf_add_network(th_dvb_adapter_t *tda, const char *id);
 
 #endif /* DVB_MUXCONFIG_H */
index ba607ef5e77b28763b7a97d03aa7565e1d4f08a3..b0d609defd639298950487f0a62efd844f460d00 100644 (file)
@@ -87,14 +87,7 @@ dvb_satconf_entry_find(th_dvb_adapter_t *tda, const char *id, int create)
 static void
 satconf_destroy(th_dvb_adapter_t *tda, dvb_satconf_t *sc)
 {
-  th_dvb_mux_instance_t *tdmi;
-
-  while((tdmi = LIST_FIRST(&sc->sc_tdmis)) != NULL) {
-    tdmi->tdmi_conf.dmc_satconf = NULL;
-    LIST_REMOVE(tdmi, tdmi_satconf_link);
-  }
-
-  TAILQ_REMOVE(&tda->tda_satconfs, sc, sc_adapter_link);  
+  TAILQ_REMOVE(&tda->tda_satconfs, sc, sc_adapter_link);
   free(sc->sc_id);
   free(sc->sc_name);
   free(sc->sc_comment);
index 821e9a30ef4de51a983ae5afafcdbbb79b189559..9474338d9f09bc61ad0186be157d6d670da1237d 100644 (file)
@@ -346,13 +346,13 @@ dvb_service_find3
 {
   service_t *svc;
   if (tdmi) {
-    LIST_FOREACH(svc, &tdmi->tdmi_transports, s_group_link) {
+    LIST_FOREACH(svc, &tdmi->tdmi_mux->dm_services, s_group_link) {
       if (enabled    && !svc->s_enabled) continue;
       if (epgprimary && !service_is_primary_epg(svc)) continue;
       if (sid == svc->s_dvb_service_id) return svc;
     }
   } else if (tda) {
-    LIST_FOREACH(tdmi, &tda->tda_dn->dn_muxes, tdmi_adapter_link) {
+    LIST_FOREACH(tdmi, &tda->tda_dn->dn_mux_instances, tdmi_adapter_link) {
       if (enabled && !tdmi->tdmi_enabled) continue;
       if (onid    && onid != tdmi->tdmi_network_id) continue;
       if (tsid    && tsid != tdmi->tdmi_transport_stream_id) continue;
@@ -393,7 +393,7 @@ dvb_service_find2(th_dvb_mux_instance_t *tdmi, uint16_t sid, int pmt_pid,
 
   lock_assert(&global_lock);
 
-  LIST_FOREACH(t, &tdmi->tdmi_transports, s_group_link) {
+  LIST_FOREACH(t, &tdmi->tdmi_mux->dm_services, s_group_link) {
     if(t->s_dvb_service_id == sid)
       return t;
   }
@@ -424,7 +424,7 @@ dvb_service_find2(th_dvb_mux_instance_t *tdmi, uint16_t sid, int pmt_pid,
   t->s_grace_period  = dvb_grace_period;
 
   t->s_dvb_mux_instance = tdmi;
-  LIST_INSERT_HEAD(&tdmi->tdmi_transports, t, s_group_link);
+  LIST_INSERT_HEAD(&tdmi->tdmi_mux->dm_services, t, s_group_link);
 
   pthread_mutex_lock(&t->s_stream_mutex); 
   service_make_nicename(t);
@@ -460,7 +460,7 @@ dvb_service_build_msg(service_t *t)
 
   htsmsg_add_str(m, "network", tdmi->tdmi_network ?: "");
 
-  dvb_mux_nicefreq(buf, sizeof(buf), tdmi);
+  dvb_mux_nicefreq(buf, sizeof(buf), tdmi->tdmi_mux);
   htsmsg_add_str(m, "mux", buf);
 
   if(t->s_ch != NULL)
index 64b35b2a65bf0ef6ddaf5f6b50dced4dbebe6579..4b8679ee1cea1106dd732a0f46903fb1b1e29799 100644 (file)
@@ -466,16 +466,16 @@ nicenum(char *x, size_t siz, unsigned int v)
  * 
  */
 void
-dvb_mux_nicefreq(char *buf, size_t size, th_dvb_mux_instance_t *tdmi)
+dvb_mux_nicefreq(char *buf, size_t size, const dvb_mux_t *dm)
 {
   char freq[50];
 
-  if(tdmi->tdmi_adapter->tda_type == FE_QPSK) {
-    nicenum(freq, sizeof(freq), tdmi->tdmi_conf.dmc_fe_params.frequency);
+  if(dm->dm_network->dn_fe_type == FE_QPSK) {
+    nicenum(freq, sizeof(freq), dm->dm_conf.dmc_fe_params.frequency);
     snprintf(buf, size, "%s kHz", freq);
   } else {
     nicenum(freq, sizeof(freq), 
-           tdmi->tdmi_conf.dmc_fe_params.frequency / 1000);
+           dm->dm_conf.dmc_fe_params.frequency / 1000);
     snprintf(buf, size, "%s kHz", freq);
   }
 }
@@ -489,16 +489,16 @@ dvb_mux_nicename(char *buf, size_t size, th_dvb_mux_instance_t *tdmi)
 {
   char freq[50];
   const char *n = tdmi->tdmi_network;
+  const dvb_mux_t *dm = tdmi->tdmi_mux;
 
-  if(tdmi->tdmi_adapter->tda_type == FE_QPSK) {
-    nicenum(freq, sizeof(freq), tdmi->tdmi_conf.dmc_fe_params.frequency);
-    snprintf(buf, size, "%s%s%s kHz %s (%s)", 
+  if(tdmi->tdmi_adapter->tda_fe_type == FE_QPSK) {
+    nicenum(freq, sizeof(freq), dm->dm_conf.dmc_fe_params.frequency);
+    snprintf(buf, size, "%s%s%s kHz %s",
             n?:"", n ? ": ":"", freq,
-            dvb_polarisation_to_str_long(tdmi->tdmi_conf.dmc_polarisation),
-            tdmi->tdmi_conf.dmc_satconf ? tdmi->tdmi_conf.dmc_satconf->sc_name : "No satconf");
+            dvb_polarisation_to_str_long(dm->dm_conf.dmc_polarisation));
 
   } else {
-    nicenum(freq, sizeof(freq), tdmi->tdmi_conf.dmc_fe_params.frequency / 1000);
+    nicenum(freq, sizeof(freq), dm->dm_conf.dmc_fe_params.frequency / 1000);
     snprintf(buf, size, "%s%s%s kHz", n?:"", n ? ": ":"", freq);
   }
 }
index 22e81eca829cb2cb544de87d50bbe92593f1f91e..3d6aabe776a736c31d895a18c198b649e046d425 100644 (file)
@@ -82,7 +82,7 @@ th_dvb_mux_instance_t *dvb_mux_find_by_identifier(const char *identifier);
 void dvb_mux_nicename(char *buf, size_t size, th_dvb_mux_instance_t *tdmi);
 int dvb_mux_badness(th_dvb_mux_instance_t *tdmi);
 const char *dvb_mux_status(th_dvb_mux_instance_t *tdmi);
-void dvb_mux_nicefreq(char *buf, size_t size, th_dvb_mux_instance_t *tdmi);
+void dvb_mux_nicefreq(char *buf, size_t size, const dvb_mux_t *dm);
 
 void atsc_utf16_to_utf8(uint8_t *src, int len, char *buf, int buflen);
 
index 29ac020ebbf4372ec335b5057be7a85af8fe0c9f..723664a88518bf6074193c51b3b3abc473d3cfc2 100644 (file)
@@ -267,7 +267,7 @@ dvb_bat_callback(th_dvb_mux_instance_t *tdmi, uint8_t *buf, int len,
     j = 0;
 
     /* Find TDMI */
-    LIST_FOREACH(tdmi, &tda->tda_dn->dn_muxes, tdmi_adapter_link)
+    LIST_FOREACH(tdmi, &tda->tda_dn->dn_mux_instances, tdmi_adapter_link)
       if(tdmi->tdmi_transport_stream_id == tsid &&
          tdmi->tdmi_network_id == onid)
         break;
@@ -337,7 +337,7 @@ dvb_sdt_callback(th_dvb_mux_instance_t *tdmi, uint8_t *ptr, int len,
     if(!tdmi->tdmi_network_id)
       dvb_mux_set_onid(tdmi, onid);
   } else {
-    LIST_FOREACH(tdmi, &tda->tda_dn->dn_muxes, tdmi_adapter_link)
+    LIST_FOREACH(tdmi, &tda->tda_dn->dn_mux_instances, tdmi_adapter_link)
       if(tdmi->tdmi_transport_stream_id == tsid &&
          tdmi->tdmi_network_id != onid)
         break;
@@ -495,9 +495,8 @@ dvb_pat_callback(th_dvb_mux_instance_t *tdmi, uint8_t *ptr, int len,
   // Make sure this TSID is not already known on another mux
   // That might indicate that we have accedentally received a PAT
   // from another mux
-  LIST_FOREACH(other, &tda->tda_dn->dn_muxes, tdmi_adapter_link)
-    if(other != tdmi && 
-       other->tdmi_conf.dmc_satconf == tdmi->tdmi_conf.dmc_satconf &&
+  LIST_FOREACH(other, &tda->tda_dn->dn_mux_instances, tdmi_adapter_link)
+    if(other != tdmi &&
        other->tdmi_transport_stream_id == tsid &&
        other->tdmi_network_id == tdmi->tdmi_network_id)
       return -1;
@@ -653,7 +652,7 @@ dvb_table_cable_delivery(th_dvb_mux_instance_t *tdmi, uint8_t *ptr, int len,
   dmc.dmc_fe_params.u.qam.fec_inner = fec_tab[ptr[10] & 0x07];
 
   dvb_mux_create(tdmi->tdmi_adapter, &dmc, onid, tsid, NULL,
-                "automatic mux discovery", 1, 1, NULL, NULL);
+                "automatic mux discovery", 1, 1, NULL);
   return 0;
 }
 
@@ -695,8 +694,6 @@ dvb_table_sat_delivery(th_dvb_mux_instance_t *tdmi, uint8_t *ptr, int len,
   dmc.dmc_fe_params.u.qam.fec_inner = fec_tab[ptr[10] & 0x0f];
 
   dmc.dmc_polarisation = (ptr[6] >> 5) & 0x03;
-   // Same satconf (lnb, switch, etc)
-  dmc.dmc_satconf = tdmi->tdmi_conf.dmc_satconf;
 
 #if DVB_API_VERSION >= 5
   int modulation = (ptr[6] & 0x03);
@@ -738,8 +735,7 @@ dvb_table_sat_delivery(th_dvb_mux_instance_t *tdmi, uint8_t *ptr, int len,
 
 #endif
   dvb_mux_create(tdmi->tdmi_adapter, &dmc, onid, tsid, NULL,
-                "automatic mux discovery", 1, 1, NULL, tdmi->tdmi_conf.dmc_satconf);
-  
+                "automatic mux discovery", 1, 1, NULL);
   return 0;
 }
 
@@ -755,7 +751,7 @@ dvb_table_local_channel(th_dvb_mux_instance_t *tdmi, uint8_t *ptr, int len,
   th_dvb_adapter_t *tda = tdmi->tdmi_adapter;
   service_t *t;
 
-  LIST_FOREACH(tdmi, &tda->tda_dn->dn_muxes, tdmi_adapter_link)
+  LIST_FOREACH(tdmi, &tda->tda_dn->dn_mux_instances, tdmi_adapter_link)
     if(tdmi->tdmi_transport_stream_id == tsid && tdmi->tdmi_network_id == onid)
       break;
 
@@ -872,11 +868,11 @@ dvb_nit_callback(th_dvb_mux_instance_t *tdmi, uint8_t *ptr, int len,
 
       switch(tag) {
       case DVB_DESC_SAT:
-        if(tdmi->tdmi_adapter->tda_type == FE_QPSK)
+        if(tdmi->tdmi_adapter->tda_fe_type == FE_QPSK)
           dvb_table_sat_delivery(tdmi, ptr, tlen, tsid, onid);
         break;
       case DVB_DESC_CABLE:
-        if(tdmi->tdmi_adapter->tda_type == FE_QAM)
+        if(tdmi->tdmi_adapter->tda_fe_type == FE_QAM)
           dvb_table_cable_delivery(tdmi, ptr, tlen, tsid, onid);
         break;
       case DVB_DESC_LOCAL_CHAN:
@@ -935,7 +931,7 @@ atsc_vct_callback(th_dvb_mux_instance_t *tdmi, uint8_t *ptr, int len,
     onid = (ptr[24] << 8) | ptr[25];
     
     /* Search all muxes on adapter */
-    LIST_FOREACH(tdmi, &tda->tda_dn->dn_muxes, tdmi_adapter_link)
+    LIST_FOREACH(tdmi, &tda->tda_dn->dn_mux_instances, tdmi_adapter_link)
       if(tdmi->tdmi_transport_stream_id == tsid && tdmi->tdmi_network_id == onid);
        break;
     
@@ -988,7 +984,7 @@ dvb_pmt_callback(th_dvb_mux_instance_t *tdmi, uint8_t *ptr, int len,
   service_t *t;
   th_dvb_table_t *tdt = opaque;
 
-  LIST_FOREACH(t, &tdmi->tdmi_transports, s_group_link) {
+  LIST_FOREACH(t, &tdmi->tdmi_mux->dm_services, s_group_link) {
     pthread_mutex_lock(&t->s_stream_mutex);
     psi_parse_pmt(t, ptr, len, 1, 1);
     if (t->s_pmt_pid == tdt->tdt_pid && t->s_status == SERVICE_RUNNING)
@@ -1036,7 +1032,7 @@ dvb_table_add_default_atsc(th_dvb_mux_instance_t *tdmi)
 {
   int tableid;
 
-  if(tdmi->tdmi_conf.dmc_fe_params.u.vsb.modulation == VSB_8) {
+  if(tdmi->tdmi_mux->dm_conf.dmc_fe_params.u.vsb.modulation == VSB_8) {
     tableid = 0xc8; // Terrestrial
   } else {
     tableid = 0xc9; // Cable
@@ -1064,7 +1060,7 @@ dvb_table_add_default(th_dvb_mux_instance_t *tdmi)
          TDT_CRC, 1);
 
 
-  switch(tdmi->tdmi_adapter->tda_type) {
+  switch(tdmi->tdmi_adapter->tda_fe_type) {
   case FE_QPSK:
   case FE_OFDM:
   case FE_QAM:
index 16def8617178df973309fc0e92b0145bf5439e10..517d4a6899dcb0de70f53ecfe96eba7df0d9e878 100644 (file)
@@ -255,7 +255,7 @@ void epggrab_ota_create_and_register_by_id
   th_dvb_mux_instance_t *tdmi;
   epggrab_ota_mux_t *ota;
   TAILQ_FOREACH(tda, &dvb_adapters, tda_global_link) {
-    LIST_FOREACH(tdmi, &tda->tda_dn->dn_muxes, tdmi_adapter_link) {
+    LIST_FOREACH(tdmi, &tda->tda_dn->dn_mux_instances, tdmi_adapter_link) {
       if (tdmi->tdmi_transport_stream_id != tsid) continue;
       if (onid && tdmi->tdmi_network_id != onid) continue;
       if (networkname && (!tdmi->tdmi_network || strcmp(networkname, tdmi->tdmi_network))) continue;
index e89483510d4b80c8c1876e1d6aa8401f47f7d9e7..211602f106cebb95ad116f846a457474c9e097f9 100644 (file)
@@ -72,7 +72,7 @@ extjs_dvblocations(http_connection_t *hc, const char *remain, void *opaque)
 
   pthread_mutex_unlock(&global_lock);
 
-  if((out = dvb_mux_preconf_get_node(tda->tda_type, s)) == NULL)
+  if((out = dvb_mux_preconf_get_node(tda->tda_fe_type, s)) == NULL)
     return 404;
 
   htsmsg_json_serialize(out, hq, 0);
@@ -110,7 +110,7 @@ extjs_dvbadapter(http_connection_t *hc, const char *remain, void *opaque)
   htsmsg_t *out, *array, *r;
   const char *op = http_arg_get(&hc->hc_req_args, "op");
   const char *sibling = http_arg_get(&hc->hc_req_args, "sibling");
-  const char *s, *sc;
+  const char *s;
   th_dvb_mux_instance_t *tdmi;
   service_t *t;
 
@@ -124,7 +124,7 @@ extjs_dvbadapter(http_connection_t *hc, const char *remain, void *opaque)
     array = htsmsg_create_list();
 
     TAILQ_FOREACH(tda, &dvb_adapters, tda_global_link) {
-      if(ref == NULL || (ref != tda && ref->tda_type == tda->tda_type))
+      if(ref == NULL || (ref != tda && ref->tda_fe_type == tda->tda_fe_type))
        htsmsg_add_msg(array, NULL, dvb_adapter_build_msg(tda));
     }
     pthread_mutex_unlock(&global_lock);
@@ -224,10 +224,10 @@ extjs_dvbadapter(http_connection_t *hc, const char *remain, void *opaque)
     htsmsg_add_u32(out, "success", 1);
   } else if(!strcmp(op, "addnetwork")) {
 
-    sc = http_arg_get(&hc->hc_req_args, "satconf");
+//    sc = http_arg_get(&hc->hc_req_args, "satconf");
 
     if((s = http_arg_get(&hc->hc_req_args, "network")) != NULL)
-      dvb_mux_preconf_add_network(tda, s, sc);
+      dvb_mux_preconf_add_network(tda, s);
 
     out = htsmsg_create_map();
     htsmsg_add_u32(out, "success", 1);
@@ -237,8 +237,8 @@ extjs_dvbadapter(http_connection_t *hc, const char *remain, void *opaque)
     tvhlog(LOG_NOTICE, "web interface",
           "Service probe started on \"%s\"", tda->tda_displayname);
 
-    LIST_FOREACH(tdmi, &tda->tda_dn->dn_muxes, tdmi_adapter_link) {
-      LIST_FOREACH(t, &tdmi->tdmi_transports, s_group_link) {
+    LIST_FOREACH(tdmi, &tda->tda_dn->dn_mux_instances, tdmi_adapter_link) {
+      LIST_FOREACH(t, &tdmi->tdmi_mux->dm_services, s_group_link) {
        if(t->s_enabled)
          serviceprobe_enqueue(t);
       }
@@ -334,7 +334,7 @@ extjs_dvbmuxes(http_connection_t *hc, const char *remain, void *opaque)
   if(!strcmp(op, "get")) {
     array = htsmsg_create_list();
 
-    LIST_FOREACH(tdmi, &tda->tda_dn->dn_muxes, tdmi_adapter_link)
+    LIST_FOREACH(tdmi, &tda->tda_dn->dn_mux_instances, tdmi_adapter_link)
       htsmsg_add_msg(array, NULL, dvb_mux_build_msg(tdmi));
 
     htsmsg_add_msg(out, "entries", array);
@@ -415,16 +415,16 @@ extjs_dvbservices(http_connection_t *hc, const char *remain, void *opaque)
     out = htsmsg_create_map();
     array = htsmsg_create_list();
 
-    LIST_FOREACH(tdmi, &tda->tda_dn->dn_muxes, tdmi_adapter_link) {
-      LIST_FOREACH(t, &tdmi->tdmi_transports, s_group_link) {
+    LIST_FOREACH(tdmi, &tda->tda_dn->dn_mux_instances, tdmi_adapter_link) {
+      LIST_FOREACH(t, &tdmi->tdmi_mux->dm_services, s_group_link) {
        count++;
       }
     }
 
     tvec = alloca(sizeof(service_t *) * count);
 
-    LIST_FOREACH(tdmi, &tda->tda_dn->dn_muxes, tdmi_adapter_link) {
-      LIST_FOREACH(t, &tdmi->tdmi_transports, s_group_link) {
+    LIST_FOREACH(tdmi, &tda->tda_dn->dn_mux_instances, tdmi_adapter_link) {
+      LIST_FOREACH(t, &tdmi->tdmi_mux->dm_services, s_group_link) {
        tvec[i++] = t;
       }
     }
@@ -608,7 +608,7 @@ extjs_dvb_addmux(http_connection_t *hc, const char *remain, void *opaque)
   return 0;
 }
 
-
+#if 0
 /**
  *
  */
@@ -672,6 +672,7 @@ extjs_dvb_copymux(http_connection_t *hc, const char *remain, void *opaque)
 
   return 0;
 }
+#endif
 
 /**
  *
@@ -766,8 +767,9 @@ extjs_start_dvb(void)
 
   http_path_add("/dvb/addmux", 
                NULL, extjs_dvb_addmux, ACCESS_ADMIN);
-
+#if 0 // XXX(dvbreorg)
   http_path_add("/dvb/copymux", 
                NULL, extjs_dvb_copymux, ACCESS_ADMIN);
+#endif
 
 }
index 10d1297789bf8a42d16c5efe24a3f2a37ed7101b..ff7e4ef90c2f9a28c0f3cabb93d86924092631ae 100644 (file)
@@ -134,14 +134,14 @@ dumpdvbadapters(htsbuf_queue_t *hq)
     htsbuf_qprintf(hq, "%s (%s)\n", tda->tda_displayname, tda->tda_identifier);
      
     outputtitle(hq, 4, "Multiplexes");
-    LIST_FOREACH(tdmi, &tda->tda_dn->dn_muxes, tdmi_adapter_link) {
+    LIST_FOREACH(tdmi, &tda->tda_dn->dn_mux_instances, tdmi_adapter_link) {
       char tdminame[64];
       dvb_mux_nicename(tdminame, sizeof(tdminame), tdmi);
       htsbuf_qprintf(hq, "      %s (%s)\n",
                     tdminame, tdmi->tdmi_identifier);
       
       htsbuf_qprintf(hq, "\n");
-      dumptransports(hq, &tdmi->tdmi_transports, 8);
+      dumptransports(hq, &tdmi->tdmi_mux->dm_services, 8);
     }
   }
 }