DVR: Cache the default dvr config, argument cleanups

This commit is contained in:
Jaroslav Kysela 2014-09-16 12:15:46 +02:00
parent 99152b547a
commit 1a081469cc
5 changed files with 25 additions and 20 deletions

View file

@ -176,7 +176,7 @@ dvr_autorec_create(const char *uuid, htsmsg_t *conf)
dae->dae_weekdays = 0x7f;
dae->dae_pri = DVR_PRIO_NORMAL;
dae->dae_start = -1;
dae->dae_config = dvr_config_find_by_name_default("");
dae->dae_config = dvr_config_find_by_name_default(NULL);
LIST_INSERT_HEAD(&dae->dae_config->dvr_autorec_entries, dae, dae_config_link);
TAILQ_INSERT_TAIL(&autorec_entries, dae, dae_link);
@ -1072,7 +1072,7 @@ autorec_destroy_by_config(dvr_config_t *kcfg, int delconf)
while((dae = LIST_FIRST(&kcfg->dvr_autorec_entries)) != NULL) {
LIST_REMOVE(dae, dae_config_link);
if (cfg == NULL && delconf)
cfg = dvr_config_find_by_name_default("");
cfg = dvr_config_find_by_name_default(NULL);
if (cfg)
LIST_INSERT_HEAD(&cfg->dvr_autorec_entries, dae, dae_config_link);
dae->dae_config = cfg;

View file

@ -37,6 +37,7 @@ int dvr_iov_max;
struct dvr_config_list dvrconfigs;
struct dvr_entry_list dvrentries;
static dvr_config_t *dvrdefaultconfig = NULL;
#if ENABLE_DBUS_1
static gtimer_t dvr_dbus_timer;
@ -417,7 +418,7 @@ dvr_entry_create(const char *uuid, htsmsg_t *conf)
}
de->de_mc = -1;
de->de_config = dvr_config_find_by_name_default("");
de->de_config = dvr_config_find_by_name_default(NULL);
if (de->de_config)
LIST_INSERT_HEAD(&de->de_config->dvr_entries, de, de_config_link);
@ -709,7 +710,7 @@ dvr_entry_destroy_by_config(dvr_config_t *cfg, int delconf)
while ((de = LIST_FIRST(&cfg->dvr_entries)) != NULL) {
LIST_REMOVE(de, de_config_link);
if (def == NULL && delconf)
def = dvr_config_find_by_name_default("");
def = dvr_config_find_by_name_default(NULL);
de->de_config = def;
if (def)
LIST_INSERT_HEAD(&def->dvr_entries, de, de_config_link);
@ -2000,20 +2001,24 @@ dvr_config_find_by_name_default(const char *name)
{
dvr_config_t *cfg;
cfg = dvr_config_find_by_name(name);
if (dvrdefaultconfig && (name == NULL || *name == '\0'))
return dvrdefaultconfig;
cfg = name ? dvr_config_find_by_name(name) : NULL;
if (cfg == NULL) {
if (name && name[0])
tvhlog(LOG_WARNING, "dvr", "Configuration '%s' not found", name);
cfg = dvr_config_find_by_name("");
if (name && *name)
tvhlog(LOG_WARNING, "dvr", "Configuration '%s' not found, using default", name);
cfg = dvrdefaultconfig;
} else if (!cfg->dvr_enabled) {
tvhlog(LOG_WARNING, "dvr", "Configuration '%s' not enabled", name);
cfg = dvr_config_find_by_name("");
tvhlog(LOG_WARNING, "dvr", "Configuration '%s' not enabled, using default", name);
cfg = dvrdefaultconfig;
}
if (cfg == NULL) {
cfg = dvr_config_create("", NULL, NULL);
dvr_config_save(cfg);
dvrdefaultconfig = cfg;
}
return cfg;
@ -2762,7 +2767,7 @@ dvr_config_init(void)
/* Create the default entry */
cfg = dvr_config_find_by_name_default("");
cfg = dvr_config_find_by_name_default(NULL);
assert(cfg);
LIST_FOREACH(cfg, &dvrconfigs, config_link) {

View file

@ -187,7 +187,7 @@ dvr_timerec_create(const char *uuid, htsmsg_t *conf)
dte->dte_pri = DVR_PRIO_NORMAL;
dte->dte_start = -1;
dte->dte_stop = -1;
dte->dte_config = dvr_config_find_by_name_default("");
dte->dte_config = dvr_config_find_by_name_default(NULL);
LIST_INSERT_HEAD(&dte->dte_config->dvr_timerec_entries, dte, dte_config_link);
TAILQ_INSERT_TAIL(&timerec_entries, dte, dte_link);
@ -638,7 +638,7 @@ timerec_destroy_by_config(dvr_config_t *kcfg, int delconf)
while((dte = LIST_FIRST(&kcfg->dvr_timerec_entries)) != NULL) {
LIST_REMOVE(dte, dte_config_link);
if (cfg == NULL && delconf)
cfg = dvr_config_find_by_name_default("");
cfg = dvr_config_find_by_name_default(NULL);
if (cfg)
LIST_INSERT_HEAD(&cfg->dvr_timerec_entries, dte, dte_config_link);
dte->dte_config = cfg;

View file

@ -914,7 +914,7 @@ htsp_method_getDiskSpace(htsp_connection_t *htsp, htsmsg_t *in)
{
htsmsg_t *out;
struct statvfs diskdata;
dvr_config_t *cfg = dvr_config_find_by_name_default("");
dvr_config_t *cfg = dvr_config_find_by_name_default(NULL);
if(statvfs(cfg->dvr_storage,&diskdata) == -1)
return htsp_error("Unable to stat path");

View file

@ -403,7 +403,7 @@ http_channel_playlist(http_connection_t *hc, channel_t *channel)
mc = muxer_container_txt2type(http_arg_get(&hc->hc_req_args, "mux"));
if(mc == MC_UNKNOWN)
mc = dvr_config_find_by_name_default("")->dvr_mc;
mc = dvr_config_find_by_name_default(NULL)->dvr_mc;
hq = &hc->hc_reply;
host = http_arg_get(&hc->hc_args, "Host");
@ -460,7 +460,7 @@ http_tag_playlist(http_connection_t *hc, channel_tag_t *tag)
mc = muxer_container_txt2type(http_arg_get(&hc->hc_req_args, "mux"));
if(mc == MC_UNKNOWN)
mc = dvr_config_find_by_name_default("")->dvr_mc;
mc = dvr_config_find_by_name_default(NULL)->dvr_mc;
htsbuf_qprintf(hq, "#EXTM3U\n");
LIST_FOREACH(ctm, &tag->ct_ctms, ctm_tag_link) {
@ -496,7 +496,7 @@ http_tag_list_playlist(http_connection_t *hc)
mc = muxer_container_txt2type(http_arg_get(&hc->hc_req_args, "mux"));
if(mc == MC_UNKNOWN)
mc = dvr_config_find_by_name_default("")->dvr_mc;
mc = dvr_config_find_by_name_default(NULL)->dvr_mc;
htsbuf_qprintf(hq, "#EXTM3U\n");
TAILQ_FOREACH(ct, &channel_tags, ct_link) {
@ -545,7 +545,7 @@ http_channel_list_playlist(http_connection_t *hc)
mc = muxer_container_txt2type(http_arg_get(&hc->hc_req_args, "mux"));
if(mc == MC_UNKNOWN)
mc = dvr_config_find_by_name_default("")->dvr_mc;
mc = dvr_config_find_by_name_default(NULL)->dvr_mc;
CHANNEL_FOREACH(ch)
count++;
@ -768,7 +768,7 @@ http_stream_service(http_connection_t *hc, service_t *service, int weight)
if(http_access_verify(hc, ACCESS_ADVANCED_STREAMING))
return HTTP_STATUS_UNAUTHORIZED;
cfg = dvr_config_find_by_name_default("");
cfg = dvr_config_find_by_name_default(NULL);
/* Build muxer config - this takes the defaults from the default dvr config, which is a hack */
mc = muxer_container_txt2type(http_arg_get(&hc->hc_req_args, "mux"));
@ -886,7 +886,7 @@ http_stream_channel(http_connection_t *hc, channel_t *ch, int weight)
if (http_access_verify_channel(hc, ACCESS_STREAMING, ch, 1))
return HTTP_STATUS_UNAUTHORIZED;
cfg = dvr_config_find_by_name_default("");
cfg = dvr_config_find_by_name_default(NULL);
/* Build muxer config - this takes the defaults from the default dvr config, which is a hack */
mc = muxer_container_txt2type(http_arg_get(&hc->hc_req_args, "mux"));