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) {
">%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");
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)
{
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);
*
*/
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++) {
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);
}
+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)
{
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);
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;