int search_class_create(prop_t *parent, prop_t **nodesp, prop_t **entriesp, const char *title, const char *icon) { prop_t *p = prop_create_root(NULL); prop_t *m = prop_create(p, "metadata"); prop_t *n, *e; char url[URL_MAX]; backend_prop_make(p, url, sizeof(url)); prop_set_string(prop_create(p, "url"), url); prop_set_string(prop_create(m, "title"), title); if(icon != NULL) prop_set_string(prop_create(m, "icon"), icon); prop_set_string(prop_create(p, "type"), "directory"); n = prop_create(p, "nodes"); e = prop_create(p, "entries"); prop_set_int(e, 0); *nodesp = prop_ref_inc(n); *entriesp = prop_ref_inc(e); if(prop_set_parent(p, parent)) { prop_destroy(p); return 1; } return 0; }
static void settings_add_dir_sup(prop_t *root, const char *url, const char *icon, const char *subtype) { rstr_t *url2 = backend_prop_make(root, url); prop_set_rstring(prop_create(root, "url"), url2); rstr_release(url2); prop_t *metadata = prop_create(root, "metadata"); prop_set_string(prop_create(root, "subtype"), subtype); if(icon != NULL) prop_set_string(prop_create(metadata, "icon"), icon); }
prop_t * settings_add_dir(prop_t *parent, const char *title, const char *subtype, const char *icon) { char url[100]; prop_t *p = setting_add(parent ? prop_create(parent, "model") : NULL, title, "settings"); prop_t *model = prop_create(p, "model"); prop_t *metadata = prop_create(model, "metadata"); prop_set_string(prop_create(model, "subtype"), subtype); backend_prop_make(model, url, sizeof(url)); prop_set_string(prop_create(p, "url"), url); if(icon != NULL) prop_set_string(prop_create(metadata, "icon"), icon); return p; }