[tracker/experiment-with-roi] libtracker-extract: Fix coding style issues
- From: Martyn James Russell <mr src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker/experiment-with-roi] libtracker-extract: Fix coding style issues
- Date: Tue, 6 Sep 2011 16:36:32 +0000 (UTC)
commit da28802be5fc91e407f4fc77f2ead19c24875d18
Author: Martyn Russell <martyn lanedo com>
Date: Tue Sep 6 14:47:55 2011 +0100
libtracker-extract: Fix coding style issues
Also make sure tracker_xmp_apply_regions:
- returns a boolean for success
- checks parameters input (given it's a public API)
Use a GSList for regions not a GList (which isn't necessary).
src/libtracker-extract/tracker-xmp.c | 114 +++++++++++++++++++--------------
src/libtracker-extract/tracker-xmp.h | 5 +-
2 files changed, 69 insertions(+), 50 deletions(-)
---
diff --git a/src/libtracker-extract/tracker-xmp.c b/src/libtracker-extract/tracker-xmp.c
index 079cc7b..99c353a 100644
--- a/src/libtracker-extract/tracker-xmp.c
+++ b/src/libtracker-extract/tracker-xmp.c
@@ -198,16 +198,21 @@ div_str_dup (const gchar *value)
{
gchar *ret;
gchar *ptr = strchr (value, '/');
+
if (ptr) {
gchar *cpy = g_strdup (value);
gint a, b;
+
cpy [ptr - value] = '\0';
a = atoi (cpy);
b = atoi (cpy + (ptr - value) + 1);
- if (b != 0)
+
+ if (b != 0) {
ret = g_strdup_printf ("%G", ((gdouble)((gdouble) a / (gdouble) b)));
- else
+ } else {
ret = NULL;
+ }
+
g_free (cpy);
} else {
ret = g_strdup (value);
@@ -318,7 +323,7 @@ fix_region_type (const gchar *region_type)
}
if (g_ascii_strcasecmp (region_type, "Face")) {
- return "nfo:roi-content-face";
+ return "nfo:roi-content-face";
} else if (g_ascii_strcasecmp (region_type, "Pet")) {
return "nfo:roi-content-pet";
} else if (g_ascii_strcasecmp (region_type, "Focus")) {
@@ -341,18 +346,18 @@ iterate_simple (const gchar *uri,
const gchar *value,
gboolean append)
{
- gchar *name;
- const gchar *index_;
- gchar *propname;
- TrackerXmpRegion *current_region;
+ gchar *name;
+ const gchar *p;
+ gchar *propname;
name = g_strdup (strchr (path, ':') + 1);
/* For 'dc:subject[1]' the name will be 'subject'.
- This rule doesn't work for RegionLists */
- index_ = strrchr (name, '[');
- if (index_) {
- name[index_ - name] = '\0';
+ * This rule doesn't work for RegionLists
+ */
+ p = strrchr (name, '[');
+ if (p) {
+ name[p - name] = '\0';
}
/* Exif basic scheme */
@@ -509,14 +514,16 @@ iterate_simple (const gchar *uri,
}
} else if (g_ascii_strcasecmp (schema, NS_XMP_REGIONS) == 0) {
if (g_str_has_prefix (path, "mwg-rs:Regions/mwg-rs:RegionList")) {
- current_region = g_list_nth_data (data->regions, 0);
+ TrackerXmpRegion *current_region;
+
+ /* We always prepend the regions for each new one created. */
+ current_region = g_slist_nth_data (data->regions, 0);
propname = g_strdup (strrchr (path, '/') + 1);
if (!current_region->title && g_ascii_strcasecmp (propname, "mwg-rs:Name") == 0) {
current_region->title = g_strdup (value);
- } else if (!current_region->description
- && g_ascii_strcasecmp (propname, "mwg-rs:Description") == 0) {
+ } else if (!current_region->description && g_ascii_strcasecmp (propname, "mwg-rs:Description") == 0) {
current_region->description = g_strdup (value);
} else if (!current_region->x && g_ascii_strcasecmp (propname, "stArea:x") == 0) {
current_region->x = g_strdup (value);
@@ -527,36 +534,38 @@ iterate_simple (const gchar *uri,
} else if (!current_region->height && g_ascii_strcasecmp (propname, "stArea:h") == 0) {
current_region->height = g_strdup (value);
- /* Spec not clear about units
- } else if (!current_region->unit
- && g_ascii_strcasecmp (propname, "stArea:unit") == 0) {
- current_region->unit = g_strdup (value);
-
- we consider it always comes normalized
+ /* Spec not clear about units
+ * } else if (!current_region->unit
+ * && g_ascii_strcasecmp (propname, "stArea:unit") == 0) {
+ * current_region->unit = g_strdup (value);
+ *
+ * we consider it always comes normalized
*/
-
} else if (!current_region->type && g_ascii_strcasecmp (propname, "mwg-rs:Type") == 0) {
current_region->type = g_strdup (value);
} else if (g_str_has_prefix (strrchr (path, ']') + 2, "mwg-rs:Extensions")) {
current_region->link_class = g_strdup (propname);
current_region->link_uri = g_strdup (value);
- }
+ }
}
}
+
g_free (name);
}
static void
-iterate_complex_element (TrackerXmpData *data, const gchar *schema, const gchar *path)
+iterate_complex_element (TrackerXmpData *data,
+ const gchar *schema,
+ const gchar *path)
{
TrackerXmpRegion *region;
- /* When we go into an Area, we put a region on the stack
- * further statements will put values in that region.
+ /* When we go into an Area, we put a region on the stack
+ * further statements will put values in that region.
*/
if (g_str_has_suffix (path, "mwg-rs:Area")) {
region = g_new0 (TrackerXmpRegion, 1);
- data->regions = g_list_prepend (data->regions, region);
+ data->regions = g_slist_prepend (data->regions, region);
}
}
@@ -580,6 +589,7 @@ iterate (XmpPtr xmp,
const gchar *schema = xmp_string_cstr (the_schema);
const gchar *path = xmp_string_cstr (the_path);
const gchar *value = xmp_string_cstr (the_prop);
+
if (XMP_IS_PROP_SIMPLE (opt)) {
if (!tracker_is_empty_string (path)) {
if (XMP_HAS_PROP_QUALIFIERS (opt)) {
@@ -588,24 +598,24 @@ iterate (XmpPtr xmp,
iterate_simple (uri, data, schema, path, value, append);
}
}
- }
- else if (XMP_IS_PROP_ARRAY (opt)) {
+ } else if (XMP_IS_PROP_ARRAY (opt)) {
if (XMP_IS_ARRAY_ALTTEXT (opt)) {
iterate_alt_text (xmp, uri, data, schema, path);
xmp_iterator_skip (iter, XMP_ITER_SKIPSUBTREE);
} else {
iterate_array (xmp, uri, data, schema, path);
- /* Some dc: elements are handled as arrays by exempi.
- In those cases, to avoid duplicated values, is easier
- to skip the subtree
- */
+
+ /* Some dc: elements are handled as arrays by exempi.
+ * In those cases, to avoid duplicated values, is easier
+ * to skip the subtree.
+ */
if (g_ascii_strcasecmp (schema, NS_DC) == 0) {
xmp_iterator_skip (iter, XMP_ITER_SKIPSUBTREE);
}
}
} else {
- iterate_complex_element (data, schema, path);
- }
+ iterate_complex_element (data, schema, path);
+ }
}
xmp_string_free (the_prop);
@@ -613,13 +623,13 @@ iterate (XmpPtr xmp,
xmp_string_free (the_schema);
}
-
static void
-register_namespace (const gchar *ns_uri, const gchar *suggested_prefix)
+register_namespace (const gchar *ns_uri,
+ const gchar *suggested_prefix)
{
if (!xmp_namespace_prefix (ns_uri, NULL)) {
xmp_register_namespace (ns_uri, suggested_prefix, NULL);
- }
+ }
}
#endif /* HAVE_EXEMPI */
@@ -639,7 +649,7 @@ parse_xmp (const gchar *buffer,
#ifdef HAVE_EXEMPI
xmp_init ();
-
+
register_namespace (NS_XMP_REGIONS, "mwg-rs");
register_namespace (NS_ST_DIM, "stDim");
register_namespace (NS_ST_AREA, "stArea");
@@ -699,10 +709,10 @@ tracker_xmp_read (const gchar *buffer,
#endif /* TRACKER_DISABLE_DEPRECATED */
static void
-xmp_region_free (gpointer data)
+xmp_region_free (gpointer data)
{
- TrackerXmpRegion *region = (TrackerXmpRegion *)data;
-
+ TrackerXmpRegion *region = (TrackerXmpRegion *) data;
+
g_free (region->title);
g_free (region->description);
g_free (region->type);
@@ -808,7 +818,7 @@ tracker_xmp_free (TrackerXmpData *data)
g_free (data->gps_longitude);
g_free (data->gps_direction);
- g_list_free_full (data->regions, xmp_region_free);
+ g_slist_free_full (data->regions, xmp_region_free);
g_free (data);
}
@@ -838,9 +848,10 @@ tracker_xmp_apply (TrackerSparqlBuilder *preupdate,
const gchar *uri,
TrackerXmpData *data)
{
- GPtrArray *keywords;
+ GPtrArray *keywords;
guint i;
+ g_return_val_if_fail (TRACKER_SPARQL_IS_BUILDER (preupdate), FALSE);
g_return_val_if_fail (TRACKER_SPARQL_IS_BUILDER (metadata), FALSE);
g_return_val_if_fail (uri != NULL, FALSE);
g_return_val_if_fail (data != NULL, FALSE);
@@ -1165,24 +1176,30 @@ tracker_xmp_apply (TrackerSparqlBuilder *preupdate,
return TRUE;
}
-void
+gboolean
tracker_xmp_apply_regions (TrackerSparqlBuilder *preupdate,
TrackerSparqlBuilder *metadata,
GString *where,
const gchar *uri,
TrackerXmpData *data)
{
- GList *iter;
+ GSList *iter;
TrackerXmpRegion *region;
+ g_return_val_if_fail (TRACKER_SPARQL_IS_BUILDER (preupdate), FALSE);
+ g_return_val_if_fail (TRACKER_SPARQL_IS_BUILDER (preupdate), FALSE);
+ g_return_val_if_fail (uri != NULL, FALSE);
+ g_return_val_if_fail (data != NULL, FALSE);
+
if (!data->regions) {
- return;
+ return FALSE;
}
-
+
for (iter = data->regions; iter != NULL; iter = iter->next) {
gchar *reguuid;
+
reguuid = tracker_sparql_get_uuid_urn ();
- region = (TrackerXmpRegion *)iter->data;
+ region = (TrackerXmpRegion *) iter->data;
tracker_sparql_builder_predicate (metadata, "nfo:hasRegionOfInterest");
tracker_sparql_builder_object_iri (metadata, reguuid);
@@ -1248,4 +1265,5 @@ tracker_xmp_apply_regions (TrackerSparqlBuilder *preupdate,
g_free (reguuid);
}
+ return TRUE;
}
diff --git a/src/libtracker-extract/tracker-xmp.h b/src/libtracker-extract/tracker-xmp.h
index 1a3ed32..54c801b 100644
--- a/src/libtracker-extract/tracker-xmp.h
+++ b/src/libtracker-extract/tracker-xmp.h
@@ -90,7 +90,8 @@ typedef struct {
gchar *gps_longitude;
gchar *gps_direction;
- GList *regions; /* List of TrackerXmpRegion */
+ /* List of TrackerXmpRegion */
+ GSList *regions;
} TrackerXmpData;
typedef struct {
@@ -115,7 +116,7 @@ gboolean tracker_xmp_apply (TrackerSparqlBuilder *preupdate,
GString *where,
const gchar *uri,
TrackerXmpData *data);
-void tracker_xmp_apply_regions (TrackerSparqlBuilder *preupdate,
+gboolean tracker_xmp_apply_regions (TrackerSparqlBuilder *preupdate,
TrackerSparqlBuilder *metadata,
GString *where,
const gchar *uri,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]