Added capability to skip initial scanning on startup (does not include newly created muxes).

This commit is contained in:
Adam Sutton 2012-06-29 21:57:07 +01:00
parent 07d9ee056e
commit 1f9733aff5
5 changed files with 38 additions and 2 deletions

View file

@ -218,6 +218,8 @@ typedef struct th_dvb_adapter {
uint32_t tda_extrapriority; // extra priority for choosing the best adapter/service
uint32_t tda_skip_initialscan; // skip the initial scan
} th_dvb_adapter_t;
/**
@ -278,6 +280,8 @@ void dvb_adapter_set_displayname(th_dvb_adapter_t *tda, const char *s);
void dvb_adapter_set_auto_discovery(th_dvb_adapter_t *tda, int on);
void dvb_adapter_set_skip_initialscan(th_dvb_adapter_t *tda, int on);
void dvb_adapter_set_idlescan(th_dvb_adapter_t *tda, int on);
void dvb_adapter_set_qmon(th_dvb_adapter_t *tda, int on);

View file

@ -89,6 +89,7 @@ tda_save(th_dvb_adapter_t *tda)
htsmsg_add_u32(m, "nitoid", tda->tda_nitoid);
htsmsg_add_u32(m, "diseqc_version", tda->tda_diseqc_version);
htsmsg_add_u32(m, "extrapriority", tda->tda_extrapriority);
htsmsg_add_u32(m, "skip_initialscan", tda->tda_skip_initialscan);
hts_settings_save(m, "dvbadapters/%s", tda->tda_identifier);
htsmsg_destroy(m);
}
@ -136,6 +137,25 @@ dvb_adapter_set_auto_discovery(th_dvb_adapter_t *tda, int on)
}
/**
*
*/
void
dvb_adapter_set_skip_initialscan(th_dvb_adapter_t *tda, int on)
{
if(tda->tda_skip_initialscan == on)
return;
lock_assert(&global_lock);
tvhlog(LOG_NOTICE, "dvb", "Adapter \"%s\" skip initial scan set to: %s",
tda->tda_displayname, on ? "On" : "Off");
tda->tda_skip_initialscan = on;
tda_save(tda);
}
/**
*
*/
@ -404,6 +424,7 @@ dvb_adapter_init(uint32_t adapter_mask)
htsmsg_get_u32(c, "nitoid", &tda->tda_nitoid);
htsmsg_get_u32(c, "diseqc_version", &tda->tda_diseqc_version);
htsmsg_get_u32(c, "extrapriority", &tda->tda_extrapriority);
htsmsg_get_u32(c, "skip_initialscan", &tda->tda_skip_initialscan);
}
htsmsg_destroy(l);
}

View file

@ -287,6 +287,8 @@ dvb_mux_create(th_dvb_adapter_t *tda, const struct dvb_mux_conf *dmc,
tda->tda_initial_num_mux++;
tdmi->tdmi_table_initial = 1;
mux_link_initial(tda, tdmi);
} else {
dvb_mux_add_to_scan_queue(tdmi);
}
TAILQ_INIT(&tdmi->tdmi_epg_grab);
@ -731,7 +733,8 @@ tdmi_create_by_msg(th_dvb_adapter_t *tda, htsmsg_t *m, const char *identifier)
dmc.dmc_satconf = NULL;
tdmi = dvb_mux_create(tda, &dmc,
tsid, htsmsg_get_str(m, "network"), NULL, enabled, 1,
tsid, htsmsg_get_str(m, "network"), NULL, enabled,
tda->tda_skip_initialscan ? 0 : 1,
identifier, NULL);
if(tdmi != NULL) {

View file

@ -148,6 +148,7 @@ extjs_dvbadapter(http_connection_t *hc, const char *remain, void *opaque)
htsmsg_add_str(r, "device", tda->tda_rootpath ?: "No hardware attached");
htsmsg_add_str(r, "name", tda->tda_displayname);
htsmsg_add_u32(r, "automux", tda->tda_autodiscovery);
htsmsg_add_u32(r, "skip_initialscan", tda->tda_skip_initialscan);
htsmsg_add_u32(r, "idlescan", tda->tda_idlescan);
htsmsg_add_u32(r, "qmon", tda->tda_qmon);
htsmsg_add_u32(r, "dumpmux", tda->tda_dump_muxes);
@ -167,6 +168,9 @@ extjs_dvbadapter(http_connection_t *hc, const char *remain, void *opaque)
s = http_arg_get(&hc->hc_req_args, "automux");
dvb_adapter_set_auto_discovery(tda, !!s);
s = http_arg_get(&hc->hc_req_args, "skip_initialscan");
dvb_adapter_set_skip_initialscan(tda, !!s);
s = http_arg_get(&hc->hc_req_args, "idlescan");
dvb_adapter_set_idlescan(tda, !!s);

View file

@ -1105,7 +1105,7 @@ tvheadend.dvb_adapter_general = function(adapterData, satConfStore) {
var confreader = new Ext.data.JsonReader({
root: 'dvbadapters'
}, ['name', 'automux', 'idlescan', 'diseqcversion', 'qmon',
}, ['name', 'automux', 'skip_initialscan', 'idlescan', 'diseqcversion', 'qmon',
'dumpmux', 'nitoid','extrapriority']);
@ -1127,6 +1127,10 @@ tvheadend.dvb_adapter_general = function(adapterData, satConfStore) {
fieldLabel: 'Autodetect muxes',
name: 'automux'
}),
new Ext.form.Checkbox({
fieldLabel: 'Skip initial scan',
name: 'skip_initialscan'
}),
new Ext.form.Checkbox({
fieldLabel: 'Idle scanning',
name: 'idlescan'