From ce67dd97a925169fcb50f8a0da313354d82e41f5 Mon Sep 17 00:00:00 2001 From: Adam Sutton Date: Sat, 26 Jan 2013 00:37:18 +0000 Subject: [PATCH] dvb: cleanup SNR support whitelist --- src/dvb/dvb_adapter.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/dvb/dvb_adapter.c b/src/dvb/dvb_adapter.c index a1ba8ae8..edd164b6 100644 --- a/src/dvb/dvb_adapter.c +++ b/src/dvb/dvb_adapter.c @@ -53,6 +53,14 @@ struct th_dvb_mux_instance_tree dvb_muxes; static void *dvb_adapter_input_dvr(void *aux); static void tda_init(th_dvb_adapter_t *tda); +/** + * Adapters that are known to have SNR support + */ +static const char* dvb_adapter_snr_whitelist[] = { + "Sony CXD2820R", + "stv090x", + NULL +}; /** * @@ -503,6 +511,7 @@ tda_add(int adapter_num) th_dvb_adapter_t *tda; struct dvb_frontend_info fe_info; DIR *dirp; + const char **str; /* Check valid adapter */ snprintf(path, sizeof(path), "/dev/dvb/adapter%d", adapter_num); @@ -591,9 +600,14 @@ tda_add(int adapter_num) dvb_adapter_checkspeed(tda); /* Adapters known to provide valid SNR */ - if(strcasestr(fe_info.name, "Sony CXD2820R") || - strcasestr(fe_info.name, "stv090x")) - tda->tda_snr_valid = 1; + str = dvb_adapter_snr_whitelist; + while (*str) { + if (strcasestr(fe_info.name, *str)) { + tda->tda_snr_valid = 1; + break; + } + str++; + } /* Store */ tvhlog(LOG_INFO, "dvb",