]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
showing fe status in webui
authorRobert <robert@burger-system.de>
Sat, 12 Dec 2009 08:54:46 +0000 (08:54 +0000)
committerRobert <robert@burger-system.de>
Sat, 12 Dec 2009 08:54:46 +0000 (08:54 +0000)
adding debug output when mux is changed

src/dvb/dvb.h
src/dvb/dvb_multiplex.c
src/webui/static/app/dvb.js

index 01deb9b46dbba2598531ac938d6d8b1bad47dfb9..92f555ff57f820d8774140112f81906af46b9deb 100644 (file)
@@ -231,6 +231,7 @@ htsmsg_t *dvb_fe_opts(th_dvb_adapter_t *tda, const char *which);
 const char* dvb_mux_fec2str(int fec);
 const char* dvb_mux_delsys2str(int delsys);
 const char* dvb_mux_qam2str(int qam);
+const char* dvb_mux_rolloff2str(int rolloff);
 
 void dvb_mux_save(th_dvb_mux_instance_t *tdmi);
 
index 3b91c031dec91387b3fb2dfacc0cf8d2615c48af..61aa64f51501f61d64b737655a788fd17bed5331 100644 (file)
@@ -169,8 +169,31 @@ dvb_mux_create(th_dvb_adapter_t *tda, const struct dvb_mux_conf *dmc,
   if(tdmi != NULL) {
     /* Update stuff ... */
     int save = 0;
+    char buf2[1024];
 
     if(tdmi_compare_conf(tda->tda_type, &tdmi->tdmi_conf, dmc)) {
+      if (tdmi->tdmi_fe_status == TDMI_FE_OK) {
+        dvb_mux_nicename(buf, sizeof(buf), tdmi);
+        tvhlog(LOG_DEBUG, "dvb", "Configuration for mux \"%s\" not updated because signal is OK", buf);
+
+        return NULL;
+      }
+
+      sprintf(buf2, "(");
+      if (tdmi->tdmi_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(dmc->dmc_fe_modulation));
+      if (tdmi->tdmi_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(dmc->dmc_fe_delsys));
+      if (tdmi->tdmi_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(dmc->dmc_fe_rolloff));
+      sprintf(buf2, "%s )", buf2);
+
       memcpy(&tdmi->tdmi_conf, dmc, sizeof(struct dvb_mux_conf));
       save = 1;
     }
@@ -184,7 +207,7 @@ dvb_mux_create(th_dvb_adapter_t *tda, const struct dvb_mux_conf *dmc,
       dvb_mux_save(tdmi);
       dvb_mux_nicename(buf, sizeof(buf), tdmi);
       tvhlog(LOG_DEBUG, "dvb", 
-            "Configuration for mux \"%s\" updated by %s", buf, source);
+            "Configuration for mux \"%s\" updated by %s %s", buf, source, buf2);
       dvb_mux_notify(tdmi);
     }
 
@@ -452,6 +475,13 @@ const char* dvb_mux_qam2str(int qam) {
   return val2str(qam, qamtab);
 }
 
+/**
+ * for external use
+ */
+const char* dvb_mux_rolloff2str(int rolloff) {
+  return val2str(rolloff, rollofftab);
+}
+
 /**
  *
  */
@@ -788,6 +818,38 @@ dvb_mux_set_enable(th_dvb_mux_instance_t *tdmi, int enabled)
 }
 
 
+/**
+ *
+ */
+static void
+dvb_mux_fe_status(char *buf, size_t size, th_dvb_mux_instance_t *tdmi) 
+{
+  switch (tdmi->tdmi_fe_status) {
+    case TDMI_FE_UNKNOWN:
+    default:
+      snprintf(buf, size, "Unknown");
+      break;
+    case TDMI_FE_NO_SIGNAL:
+      snprintf(buf, size, "No Signal");
+      break;
+    case TDMI_FE_FAINT_SIGNAL:
+      snprintf(buf, size, "Faint Signal");
+      break;
+    case TDMI_FE_BAD_SIGNAL:
+      snprintf(buf, size, "Bad Signal");
+      break;
+    case TDMI_FE_CONSTANT_FEC:
+      snprintf(buf, size, "Constant FEC");
+      break;
+    case TDMI_FE_BURSTY_FEC:
+      snprintf(buf, size, "Bursty FEC");
+      break;
+    case TDMI_FE_OK:
+      snprintf(buf, size, "Ok");
+      break;
+  }
+}
+
 /**
  *
  */
@@ -849,6 +911,9 @@ dvb_mux_build_msg(th_dvb_mux_instance_t *tdmi)
   dvb_mux_modulation(buf, sizeof(buf), tdmi);
   htsmsg_add_str(m, "mod",  buf);
 
+  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));
 
index a80ec8b5cf6b8826194a3b5fb49008d83799b19a..8a5ee629ac3c95465f19a810e37b5d095326800b 100644 (file)
@@ -74,7 +74,11 @@ tvheadend.dvb_muxes = function(adapterData, satConfStore) {
                    '<span class="tvh-grid-unset">Unset</span>'
                    : r.data.name;
            }
-       });
+       }, {
+      header: "Frontend status",
+      dataIndex: 'fe_status',
+      width: 30
+  });
     }
 
     cmlist.push(
@@ -91,7 +95,7 @@ tvheadend.dvb_muxes = function(adapterData, satConfStore) {
 
     var rec = Ext.data.Record.create([
        'id', 'enabled','network', 'freq', 'pol', 'satconf', 
-       'muxid', 'quality', 'mod'
+       'muxid', 'quality', 'fe_status', 'mod'
     ]);
 
     var store = new Ext.data.JsonStore({