Bug fix and authoring
[src/app-framework-main.git] / src / wgt-info.c
index d5f664b..1560feb 100644 (file)
@@ -1,6 +1,8 @@
 /*
  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
@@ -18,7 +20,7 @@
 #include <string.h>
 #include <errno.h>
 #include <assert.h>
-#include <syslog.h>
+
 #include <libxml/tree.h>
 
 #include "verbose.h"
@@ -83,7 +85,7 @@ static int fill_desc(struct wgt_desc *desc, int want_icons, int want_features, i
 
        node = wgt_config_widget();
        if (!node) {
-               warning("no widget");
+               WARNING("no widget");
                errno = EINVAL;
                return -1;
        }
@@ -113,7 +115,7 @@ static int fill_desc(struct wgt_desc *desc, int want_icons, int want_features, i
        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;
        }
@@ -137,7 +139,7 @@ static int fill_desc(struct wgt_desc *desc, int want_icons, int want_features, i
                        *icontail = icon;
 
                        if (icon->src == NULL) {
-                               warning("icon without src");
+                               WARNING("icon without src");
                                errno = EINVAL;
                                return -1;
                        }
@@ -163,7 +165,7 @@ static int fill_desc(struct wgt_desc *desc, int want_icons, int want_features, i
                        *featuretail = feature;
 
                        if (feature->name == NULL) {
-                               warning("feature without name");
+                               WARNING("feature without name");
                                errno = EINVAL;
                                return -1;
                        }
@@ -183,7 +185,7 @@ static int fill_desc(struct wgt_desc *desc, int want_icons, int want_features, i
                                *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;
                                }
@@ -214,7 +216,7 @@ static int fill_desc(struct wgt_desc *desc, int want_icons, int want_features, i
                        preference->next = NULL;
 
                        if (preference->name == NULL) {
-                               warning("preference without name");
+                               WARNING("preference without name");
                                errno = EINVAL;
                                return -1;
                        }
@@ -416,10 +418,28 @@ void wgt_info_dump(struct wgt_info *ifo, int fd, const char *prefix)
        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;
+}
+