static int api_dvr_timerec_create ( access_t *perm, void *opaque, const char *op, htsmsg_t *args, htsmsg_t **resp ) { htsmsg_t *conf; dvr_timerec_entry_t *dte; if (!(conf = htsmsg_get_map(args, "conf"))) return EINVAL; if (perm->aa_username) htsmsg_set_str(conf, "owner", perm->aa_username); if (perm->aa_representative) htsmsg_set_str(conf, "creator", perm->aa_representative); pthread_mutex_lock(&global_lock); dte = dvr_timerec_create(NULL, conf); if (dte) { dvr_timerec_save(dte); dvr_timerec_check(dte); } pthread_mutex_unlock(&global_lock); return 0; }
static int api_dvr_entry_create ( access_t *perm, void *opaque, const char *op, htsmsg_t *args, htsmsg_t **resp ) { dvr_entry_t *de; dvr_config_t *cfg; htsmsg_t *conf; const char *s1; int res = EPERM; if (!(conf = htsmsg_get_map(args, "conf"))) return EINVAL; pthread_mutex_lock(&global_lock); s1 = htsmsg_get_str(conf, "config_name"); cfg = dvr_config_find_by_list(perm->aa_dvrcfgs, s1); if (cfg) { htsmsg_set_str(conf, "config_name", idnode_uuid_as_str(&cfg->dvr_id)); if (perm->aa_representative) htsmsg_set_str(conf, "creator", perm->aa_representative); if ((de = dvr_entry_create(NULL, conf))) dvr_entry_save(de); res = 0; } pthread_mutex_unlock(&global_lock); return res; }
static int api_dvr_autorec_create ( access_t *perm, void *opaque, const char *op, htsmsg_t *args, htsmsg_t **resp ) { htsmsg_t *conf; dvr_config_t *cfg; dvr_autorec_entry_t *dae; const char *s1; if (!(conf = htsmsg_get_map(args, "conf"))) return EINVAL; htsmsg_set_str(conf, "owner", perm->aa_username ?: ""); htsmsg_set_str(conf, "creator", perm->aa_representative ?: ""); s1 = htsmsg_get_str(conf, "config_uuid"); if (s1 == NULL) s1 = htsmsg_get_str(conf, "config_name"); pthread_mutex_lock(&global_lock); cfg = dvr_config_find_by_list(perm->aa_dvrcfgs, s1); if (cfg) { htsmsg_set_str(conf, "config_name", idnode_uuid_as_str(&cfg->dvr_id)); dae = dvr_autorec_create(NULL, conf); if (dae) { dvr_autorec_save(dae); dvr_autorec_changed(dae, 1); } } pthread_mutex_unlock(&global_lock); return 0; }
static int api_dvr_entry_create ( access_t *perm, void *opaque, const char *op, htsmsg_t *args, htsmsg_t **resp ) { dvr_entry_t *de; dvr_config_t *cfg; htsmsg_t *conf, *m; char *s, *lang; const char *s1; int res = EPERM; if (!(conf = htsmsg_get_map(args, "conf"))) return EINVAL; pthread_mutex_lock(&global_lock); s1 = htsmsg_get_str(conf, "config_name"); cfg = dvr_config_find_by_list(perm->aa_dvrcfgs, s1); if (cfg) { htsmsg_set_str(conf, "config_name", idnode_uuid_as_str(&cfg->dvr_id)); htsmsg_set_str(conf, "owner", perm->aa_username ?: ""); htsmsg_set_str(conf, "creator", perm->aa_representative ?: ""); lang = access_get_lang(perm, htsmsg_get_str(conf, "lang")); if (lang) { for (s = (char *)lang; *s && *s != ','; s++); *s = '\0'; } else { lang = strdup(lang_code_preferred()); } s1 = htsmsg_get_str(conf, "disp_title"); if (s1 && !htsmsg_get_map(conf, "title")) { m = htsmsg_create_map(); htsmsg_add_str(m, lang, s1); htsmsg_add_msg(conf, "title", m); } s1 = htsmsg_get_str(conf, "disp_subtitle"); if (s1 && !htsmsg_get_map(conf, "subtitle")) { m = htsmsg_create_map(); htsmsg_add_str(m, lang, s1); htsmsg_add_msg(conf, "subtitle", m); } if ((de = dvr_entry_create(NULL, conf))) dvr_entry_save(de); res = 0; free(lang); } pthread_mutex_unlock(&global_lock); return res; }