Add quality index for DVB muxes

This commit is contained in:
Andreas Öman 2008-04-22 20:46:08 +00:00
parent 22231fca94
commit 423349705e
9 changed files with 31 additions and 6 deletions

View 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");

View 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)
{

View 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);

BIN
dvb.c

Binary file not shown.

View 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++) {

View 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);

View file

@ -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)
{

View file

@ -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);

View file

@ -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;