/*
Copyright 2015 IoT.bzh
+ author: José Bollo <jose.bollo@iot.bzh>
+
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
#include <string.h>
#include <errno.h>
#include <assert.h>
-#include <syslog.h>
+
#include <libxml/tree.h>
#include "verbose.h"
node = wgt_config_widget();
if (!node) {
- warning("no widget");
+ WARNING("no widget");
errno = EINVAL;
return -1;
}
node = wgt_config_content();
desc->content_src = optprop(node, wgt_config_string_src);
if (node && desc->content_src == NULL) {
- warning("content without src");
+ WARNING("content without src");
errno = EINVAL;
return -1;
}
*icontail = icon;
if (icon->src == NULL) {
- warning("icon without src");
+ WARNING("icon without src");
errno = EINVAL;
return -1;
}
*featuretail = feature;
if (feature->name == NULL) {
- warning("feature without name");
+ WARNING("feature without name");
errno = EINVAL;
return -1;
}
*paramtail = param;
if (param->name == NULL || param->value == NULL) {
- warning("param without name or value");
+ WARNING("param without name or value");
errno = EINVAL;
return -1;
}
preference->next = NULL;
if (preference->name == NULL) {
- warning("preference without name");
+ WARNING("preference without name");
errno = EINVAL;
return -1;
}
}
}
-struct wgt_info *wgt_info_get(struct wgt *wgt, int icons, int features, int preferences)
+struct wgt_info *wgt_info_create(struct wgt *wgt, int icons, int features, int preferences)
{
int rc;
struct wgt_info *result;
return result;
}
+struct wgt_info *wgt_info_createat(int dirfd, const char *pathname, int icons, int features, int preferences)
+{
+ struct wgt_info *result = NULL;
+ struct wgt *wgt = wgt_createat(dirfd, pathname);
+ if (wgt) {
+ result = wgt_info_create(wgt, icons, features, preferences);
+ wgt_unref(wgt);
+ }
+ return result;
+}
+
const struct wgt_desc *wgt_info_desc(struct wgt_info *ifo)
{
+ assert(ifo);
return &ifo->desc;
}
+struct wgt *wgt_info_wgt(struct wgt_info *ifo)
+{
+ assert(ifo);
+ assert(ifo->wgt);
+ return ifo->wgt;
+}
+
void wgt_info_addref(struct wgt_info *ifo)
{
assert(ifo);
assert(ifo);
f = fdopen(fd, "w");
if (f == NULL)
- warning("can't fdopen in wgt_info_dump");
+ WARNING("can't fdopen in wgt_info_dump");
else {
dump_desc(&ifo->desc, f, prefix);
fclose(f);
}
}
+const struct wgt_desc_feature *wgt_info_feature(struct wgt_info *ifo, const char *name)
+{
+ const struct wgt_desc_feature *result = ifo->desc.features;
+ while(result && strcmp(result->name, name))
+ result = result->next;
+ return result;
+}
+
+const char *wgt_info_param(const struct wgt_desc_feature *feature, const char *name)
+{
+ const struct wgt_desc_param *param = feature->params;
+ while(param) {
+ if (0 == strcmp(name, param->name))
+ return param->value;
+ }
+ return NULL;
+}
+