From d6a28f97751c9db1e7593cb7a75fb1d1fee026e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96man?= Date: Fri, 29 Aug 2008 16:26:18 +0000 Subject: [PATCH] Update multiplex quality index --- dvb/dvb_fe.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/dvb/dvb_fe.c b/dvb/dvb_fe.c index bd2badc9..cf8043d4 100644 --- a/dvb/dvb_fe.c +++ b/dvb/dvb_fe.c @@ -207,7 +207,6 @@ dvb_fe_start(th_dvb_adapter_t *tda) /** * */ -#if 0 static void dvb_notify_mux_quality(th_dvb_mux_instance_t *tdmi) { @@ -217,7 +216,6 @@ dvb_notify_mux_quality(th_dvb_mux_instance_t *tdmi) htsmsg_add_u32(m, "quality", tdmi->tdmi_quality); notify_by_msg("dvbmux", m); } -#endif /** @@ -243,7 +241,7 @@ dvb_fe_monitor(void *aux) { th_dvb_adapter_t *tda = aux; fe_status_t fe_status; - int status, v, savemux = 0, vv, i, fec; + int status, v, savemux = 0, vv, i, fec, q; th_dvb_mux_instance_t *tdmi = tda->tda_mux_current; char buf[50]; @@ -316,6 +314,16 @@ dvb_fe_monitor(void *aux) savemux = 1; } + if(status != TDMI_FE_UNKNOWN) { + q = tdmi->tdmi_quality + (status - TDMI_FE_OK + 1); + q = MAX(MIN(q, 100), 0); + if(q != tdmi->tdmi_quality) { + tdmi->tdmi_quality = q; + dvb_notify_mux_quality(tdmi); + savemux = 1; + } + } + if(savemux) dvb_mux_save(tdmi); }