]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
Add quality index for DVB muxes
authorAndreas Öman <andreas@lonelycoder.com>
Tue, 22 Apr 2008 20:46:08 +0000 (20:46 +0000)
committerAndreas Öman <andreas@lonelycoder.com>
Tue, 22 Apr 2008 20:46:08 +0000 (20:46 +0000)
ajaxui/ajaxui_config_dvb.c
ajaxui/ajaxui_mailbox.c
ajaxui/ajaxui_mailbox.h
dvb.c
dvb_support.c
dvb_support.h
notify.c
notify.h
tvhead.h

index f4cee2fa871af43758dc53547771c22b619af8bf..29723672bc9d06c84c2c33196c113c557b14c10b 100644 (file)
@@ -633,9 +633,9 @@ ajax_adaptermuxlist(http_connection_t *hc, http_reply_t *hr,
 
     ajax_table_top(&ta, hc, tq,
                   (const char *[])
-    {"Freq", "Status", "State", "Name", "Services", "", NULL},
+    {"Freq", "Status", "Quality", "State", "Name", "Services", "", NULL},
                   (int[])
-    {16,12,8,16,8,2});
+    {16,12,7,8,16,8,2});
 
     LIST_FOREACH(tdmi, &tda->tda_muxes, tdmi_adapter_link) {
 
@@ -651,7 +651,8 @@ ajax_adaptermuxlist(http_connection_t *hc, http_reply_t *hr,
                      ">%s</a>",
                      tdmi->tdmi_identifier, buf);
 
-      ajax_table_cell(&ta, "status", "%s", dvb_mux_status(tdmi));
+      ajax_table_cell(&ta, "status", "%s", dvb_mux_status(tdmi, 0));
+      ajax_table_cell(&ta, "qual", "%d", tdmi->tdmi_quality);
       ajax_table_cell(&ta, "state", "%s", dvb_mux_state(tdmi));
       ajax_table_cell(&ta, "name", "%s", tdmi->tdmi_network ?: "Unknown");
 
index b02d3caa12a5450799df2ad49b4c36b8293a3d1d..8090d0b161ce08fe76fd162e19d79befe63e2a3b 100644 (file)
@@ -389,6 +389,17 @@ ajax_mailbox_tdmi_state_change(th_dvb_mux_instance_t *tdmi)
                          dvb_mux_state(tdmi));
 }
 
+void
+ajax_mailbox_tdmi_qual_change(th_dvb_mux_instance_t *tdmi)
+{
+  char buf[10];
+  snprintf(buf, sizeof(buf), "%d", tdmi->tdmi_quality);
+  ajax_mailbox_update_div(tdmi->tdmi_adapter->tda_identifier,
+                         "qual", tdmi->tdmi_identifier,
+                         buf);
+}
+
+
 void
 ajax_mailbox_tdmi_name_change(th_dvb_mux_instance_t *tdmi)
 {
index 7dcb6c1a140a39821b1a72baef8bacccac5f6025..86ba7699bdffa140a900e0a441cb0192cc57a91e 100644 (file)
@@ -25,6 +25,8 @@ int ajax_mailbox_create(const char *subscriptionid);
 
 void ajax_mailbox_tdmi_state_change(th_dvb_mux_instance_t *tdmi);
 
+void ajax_mailbox_tdmi_qual_change(th_dvb_mux_instance_t *tdmi);
+
 void ajax_mailbox_tdmi_name_change(th_dvb_mux_instance_t *tdmi);
 
 void ajax_mailbox_tdmi_status_change(th_dvb_mux_instance_t *tdmi);
diff --git a/dvb.c b/dvb.c
index 717d63a34030f98ecd7cf800852019e2c55181a6..6b078939591763d616569e62d7b2c8c7d99899c1 100644 (file)
Binary files a/dvb.c and b/dvb.c differ
index eb8128a72155c311ec7de892f2e64a4aa3b768b4..5e0e780276c06e68cb6bfe6f378cfd69062445be 100644 (file)
@@ -284,10 +284,10 @@ dvb_adapter_find_by_identifier(const char *identifier)
  * 
  */
 const char *
-dvb_mux_status(th_dvb_mux_instance_t *tdmi)
+dvb_mux_status(th_dvb_mux_instance_t *tdmi, int nullisok)
 {
   int i, v, vv;
-  const char *txt = tdmi->tdmi_status ?: "Ok";
+  const char *txt = tdmi->tdmi_status ?: (nullisok ? NULL : "Ok");
 
   v = vv = 0;
   for(i = 0; i < TDMI_FEC_ERR_HISTOGRAM_SIZE; i++) {
index 8e30e821e0bbbd3e00191c61db80c1dedb55ab92..6eb27161b445315effe21ab66ca35aa2e415a205 100644 (file)
@@ -59,7 +59,7 @@ int dvb_str_to_adaptertype(const char *str);
 const char *dvb_polarisation_to_str(int pol);
 th_dvb_adapter_t *dvb_adapter_find_by_identifier(const char *identifier);
 th_dvb_mux_instance_t *dvb_mux_find_by_identifier(const char *identifier);
-const char *dvb_mux_status(th_dvb_mux_instance_t *tdmi);
+const char *dvb_mux_status(th_dvb_mux_instance_t *tdmi, int nullisok);
 void dvb_mux_nicename(char *buf, size_t size, th_dvb_mux_instance_t *tdmi);
 const char *dvb_mux_state(th_dvb_mux_instance_t *tdmi);
 
index 7d106c906f707a63d4ab8c78403300a448b5994e..09794b303fbc58f29c1368df7053e0518d5afff8 100644 (file)
--- a/notify.c
+++ b/notify.c
@@ -48,6 +48,13 @@ notify_tdmi_status_change(th_dvb_mux_instance_t *tdmi)
 }
 
 
+void
+notify_tdmi_qual_change(th_dvb_mux_instance_t *tdmi)
+{
+  ajax_mailbox_tdmi_qual_change(tdmi);
+}
+
+
 void
 notify_tdmi_services_change(th_dvb_mux_instance_t *tdmi)
 {
index 83a949aca909062572ef7212234be33d6420f5c2..3f78c664409a681cf1c1dfbd9a6104c69ab261f5 100644 (file)
--- a/notify.h
+++ b/notify.h
@@ -29,6 +29,8 @@ void notify_tdmi_name_change(struct th_dvb_mux_instance *tdmi);
 
 void notify_tdmi_status_change(struct th_dvb_mux_instance *tdmi);
 
+void notify_tdmi_qual_change(struct th_dvb_mux_instance *tdmi);
+
 void notify_tdmi_services_change(struct th_dvb_mux_instance *tdmi);
 
 void notify_tda_change(struct th_dvb_adapter *tda);
index 40dcaa45cafd77139baf34188012bc8ffb3b5729..08fa8f955539875133ae1a819b7c493210da0c70 100644 (file)
--- a/tvhead.h
+++ b/tvhead.h
@@ -171,6 +171,8 @@ typedef struct th_dvb_mux_instance {
   const char *tdmi_status;
   const char *tdmi_last_status; /* For notification updates */
 
+  int tdmi_quality;
+
   time_t tdmi_got_adapter;
   time_t tdmi_lost_adapter;