static int api_imagecache_save ( access_t *perm, void *opaque, const char *op, htsmsg_t *args, htsmsg_t **resp ) { int b; pthread_mutex_lock(&global_lock); if (imagecache_set_config(args)) imagecache_save(); if (!htsmsg_get_bool(args, "clean", &b) && b) imagecache_clean(); pthread_mutex_unlock(&global_lock); *resp = htsmsg_create_map(); htsmsg_add_u32(*resp, "success", 1); return 0; }
bouquet_t * bouquet_create(const char *uuid, htsmsg_t *conf, const char *name, const char *src) { bouquet_t *bq, *bq2; int i; lock_assert(&global_lock); bq = calloc(1, sizeof(bouquet_t)); bq->bq_services = idnode_set_create(1); bq->bq_active_services = idnode_set_create(1); if (idnode_insert(&bq->bq_id, uuid, &bouquet_class, 0)) { if (uuid) tvherror("bouquet", "invalid uuid '%s'", uuid); free(bq); return NULL; } if (conf) { bq->bq_in_load = 1; idnode_load(&bq->bq_id, conf); bq->bq_in_load = 0; if (!htsmsg_get_bool(conf, "shield", &i) && i) bq->bq_shield = 1; } if (name) { free(bq->bq_name); bq->bq_name = strdup(name); } if (src) { free(bq->bq_src); bq->bq_src = strdup(src); } bq2 = RB_INSERT_SORTED(&bouquets, bq, bq_link, _bq_cmp); assert(bq2 == NULL); bq->bq_saveflag = 1; return bq; }
static int md_props(htsbuf_queue_t *hq, htsmsg_t *m, const char *lang, int nl) { htsmsg_t *l, *n, *e, *x; htsmsg_field_t *f, *f2; const char *s; int first = 1, b; l = htsmsg_get_list(m, "props"); HTSMSG_FOREACH(f, l) { n = htsmsg_field_get_map(f); if (!n) continue; if (!htsmsg_get_bool(n, "noui", &b) && b) continue; s = htsmsg_get_str(n, "caption"); if (!s) continue; if (first) { nl = md_nl(hq, nl); htsbuf_append_str(hq, "#### "); htsbuf_append_str(hq, tvh_gettext_lang(lang, N_("Items"))); md_nl(hq, 1); md_nl(hq, 1); htsbuf_append_str(hq, tvh_gettext_lang(lang, N_("The items have the following functions:"))); md_nl(hq, 1); first = 0; } nl = md_nl(hq, nl); md_style(hq, "**", s); if (!htsmsg_get_bool(n, "rdonly", &b) && b) { htsbuf_append(hq, " _", 2); htsbuf_append_str(hq, tvh_gettext_lang(lang, N_("(Read-only)"))); htsbuf_append(hq, "_", 1); } md_nl(hq, 1); s = htsmsg_get_str(n, "description"); if (s) { md_text(hq, ": ", " ", s); md_nl(hq, 1); } s = htsmsg_get_str(n, "doc"); if (s) { htsbuf_append_str(hq, s); md_nl(hq, 1); } if (!htsmsg_get_bool_or_default(n, "doc_nlist", 0)) { e = htsmsg_get_list(n, "enum"); if (e) { HTSMSG_FOREACH(f2, e) { x = htsmsg_field_get_map(f2); if (x) { s = htsmsg_get_str(x, "val"); } else { s = htsmsg_field_get_string(f2); } if (s) { md_nl(hq, 1); htsbuf_append(hq, " * ", 4); md_style(hq, "**", s); } } md_nl(hq, 1); }