t->s_dvb_prefcapid = ct->cs_capid;
tvhdebug(cc->cc_subsys, "%s: Saving prefered PID %d for %s",
cc->cc_name, t->s_dvb_prefcapid, ct->td_nicename);
- service_request_save((service_t*)t, 0);
+ service_request_save((service_t*)t);
}
tvhdebug(cc->cc_subsys,
svc->s_dvb_opentv_chnum = cnum;
svc->s_dvb_opentv_id = unk;
mpegts_network_bouquet_trigger(mm->mm_network, 0);
- service_request_save((service_t *)svc, 0);
+ service_request_save((service_t *)svc);
}
skip_chnum:
if (svc && LIST_FIRST(&svc->s_channels)) {
pid, MPS_WEIGHT_PMT_SCAN);
if (save)
- service_request_save((service_t*)s, 1);
+ service_request_save((service_t*)s);
}
}
update&PMT_UPDATE_CAID_PID ? ", CAID PID changed":"",
update&PMT_REORDERED ? ", PIDs reordered":"");
- service_request_save((service_t*)t, 0);
+ service_request_save((service_t*)t);
// Only restart if something that our clients worry about did change
if(update & ~(PMT_UPDATE_NEW_CA_STREAM |
snprintf(location, sizeof(location), "%d", sect);
htsmsg_set_msg(t->s_hbbtv, location, apps);
apps = NULL;
- service_request_save(t, 0);
+ service_request_save(t);
}
if (streaming_pad_probe_type(&t->s_streaming_pad, SMT_PACKET)) {
/* Save the create time */
if (s->s_dvb_created == dispatch_clock)
- service_request_save((service_t *)s, 0);
+ service_request_save((service_t *)s);
return s;
}
st->es_width = width;
st->es_height = height;
st->es_frame_duration = duration;
- service_request_save(st->es_service, 0);
+ service_request_save(st->es_service);
atomic_set(&st->es_service->s_pending_restart, 1);
}
}
t->s_enabled = !!enabled;
t->s_auto = _auto;
service_class_notify_enabled(t, NULL);
- service_request_save(t, 0);
+ service_request_save(t);
idnode_notify_changed(&t->s_id);
}
}
*
*/
void
-service_request_save(service_t *t, int restart)
+service_request_save(service_t *t)
{
- if (t->s_type != STYPE_STD && !restart)
+ if (t->s_type != STYPE_STD)
return;
pthread_mutex_lock(&pending_save_mutex);
if(!t->s_ps_onqueue) {
- t->s_ps_onqueue = 1 + !!restart;
+ t->s_ps_onqueue = 1;
TAILQ_INSERT_TAIL(&pending_save_queue, t, s_ps_link);
service_ref(t);
tvh_cond_signal(&pending_save_cond, 0);
- } else if (restart) {
- t->s_ps_onqueue = 2; // upgrade to restart too
}
pthread_mutex_unlock(&pending_save_mutex);
service_saver(void *aux)
{
service_t *t;
- int restart;
pthread_mutex_lock(&pending_save_mutex);
continue;
}
assert(t->s_ps_onqueue != 0);
- restart = t->s_ps_onqueue == 2;
TAILQ_REMOVE(&pending_save_queue, t, s_ps_link);
t->s_ps_onqueue = 0;
if(t->s_status != SERVICE_ZOMBIE && t->s_config_save)
idnode_changed(&t->s_id);
- if(t->s_status == SERVICE_RUNNING && restart)
- service_restart(t);
service_unref(t);
pthread_mutex_unlock(&global_lock);
void service_stream_type_destroy(service_t *t, streaming_component_type_t type);
-void service_request_save(service_t *t, int restart);
+void service_request_save(service_t *t);
void service_source_info_free(source_info_t *si);