From: Andreas Ă–man Date: Tue, 22 Apr 2008 20:46:08 +0000 (+0000) Subject: Add quality index for DVB muxes X-Git-Tag: 2.12~1086 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=423349705e7ea6f02fcb04caeec46cd608f65d49;p=thirdparty%2Ftvheadend.git Add quality index for DVB muxes --- diff --git a/ajaxui/ajaxui_config_dvb.c b/ajaxui/ajaxui_config_dvb.c index f4cee2fa8..29723672b 100644 --- a/ajaxui/ajaxui_config_dvb.c +++ b/ajaxui/ajaxui_config_dvb.c @@ -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", 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"); diff --git a/ajaxui/ajaxui_mailbox.c b/ajaxui/ajaxui_mailbox.c index b02d3caa1..8090d0b16 100644 --- a/ajaxui/ajaxui_mailbox.c +++ b/ajaxui/ajaxui_mailbox.c @@ -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) { diff --git a/ajaxui/ajaxui_mailbox.h b/ajaxui/ajaxui_mailbox.h index 7dcb6c1a1..86ba7699b 100644 --- a/ajaxui/ajaxui_mailbox.h +++ b/ajaxui/ajaxui_mailbox.h @@ -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 717d63a34..6b0789395 100644 Binary files a/dvb.c and b/dvb.c differ diff --git a/dvb_support.c b/dvb_support.c index eb8128a72..5e0e78027 100644 --- a/dvb_support.c +++ b/dvb_support.c @@ -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++) { diff --git a/dvb_support.h b/dvb_support.h index 8e30e821e..6eb27161b 100644 --- a/dvb_support.h +++ b/dvb_support.h @@ -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); diff --git a/notify.c b/notify.c index 7d106c906..09794b303 100644 --- 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) { diff --git a/notify.h b/notify.h index 83a949aca..3f78c6644 100644 --- 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); diff --git a/tvhead.h b/tvhead.h index 40dcaa45c..08fa8f955 100644 --- 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;