From 423349705e7ea6f02fcb04caeec46cd608f65d49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96man?= Date: Tue, 22 Apr 2008 20:46:08 +0000 Subject: [PATCH] Add quality index for DVB muxes --- ajaxui/ajaxui_config_dvb.c | 7 ++++--- ajaxui/ajaxui_mailbox.c | 11 +++++++++++ ajaxui/ajaxui_mailbox.h | 2 ++ dvb.c | Bin 16109 -> 16381 bytes dvb_support.c | 4 ++-- dvb_support.h | 2 +- notify.c | 7 +++++++ notify.h | 2 ++ tvhead.h | 2 ++ 9 files changed, 31 insertions(+), 6 deletions(-) diff --git a/ajaxui/ajaxui_config_dvb.c b/ajaxui/ajaxui_config_dvb.c index f4cee2fa..29723672 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 b02d3caa..8090d0b1 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 7dcb6c1a..86ba7699 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 717d63a34030f98ecd7cf800852019e2c55181a6..6b078939591763d616569e62d7b2c8c7d99899c1 100644 GIT binary patch delta 314 zcmaD``?r1ryHq`wf}j)I}4f}*X0U#O3drb0DP z9atquO4klV#ut_*=46&sD%dILni{~AC@5g6(ABjDYgbUn%P+}HtBi+hkFQV8NX$!5 z1>2|zQB@06TdR}ruAkc>C-9zLSqjk diff --git a/dvb_support.c b/dvb_support.c index eb8128a7..5e0e7802 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 8e30e821..6eb27161 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 7d106c90..09794b30 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 83a949ac..3f78c664 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 40dcaa45..08fa8f95 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;