Added capability to skip initial scanning on startup (does not include newly created muxes).
This commit is contained in:
parent
07d9ee056e
commit
1f9733aff5
5 changed files with 38 additions and 2 deletions
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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'
|
||||
|
|
Loading…
Add table
Reference in a new issue