[grilo-plugins] tracker: Ensure that Video is preferred to Image
- From: Bastien Nocera <hadess src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [grilo-plugins] tracker: Ensure that Video is preferred to Image
- Date: Tue, 17 Feb 2015 17:06:33 +0000 (UTC)
commit 8c0ba4b2e69980342eced0147ee24d59aeac83d8
Author: Bastien Nocera <hadess hadess net>
Date: Tue Dec 16 09:10:55 2014 +0100
tracker: Ensure that Video is preferred to Image
When creating a new object, prefer creating a Video to creating
an Image when the object has both RDF types.
https://bugzilla.gnome.org/show_bug.cgi?id=730028
src/tracker/grl-tracker-utils.c | 38 ++++++++++++++++++++------------------
1 files changed, 20 insertions(+), 18 deletions(-)
---
diff --git a/src/tracker/grl-tracker-utils.c b/src/tracker/grl-tracker-utils.c
index 3b24eb9..b72a10b 100644
--- a/src/tracker/grl-tracker-utils.c
+++ b/src/tracker/grl-tracker-utils.c
@@ -571,6 +571,7 @@ grl_tracker_build_grilo_media (const gchar *rdf_type)
GrlMedia *media = NULL;
gchar **rdf_single_type;
int i;
+ GHashTable *ht;
if (!rdf_type) {
return NULL;
@@ -579,26 +580,27 @@ grl_tracker_build_grilo_media (const gchar *rdf_type)
/* As rdf_type can be formed by several types, split them */
rdf_single_type = g_strsplit (rdf_type, ",", -1);
i = g_strv_length (rdf_single_type) - 1;
-
- while (!media && i >= 0) {
- if (g_str_has_suffix (rdf_single_type[i], RDF_TYPE_MUSIC)) {
- media = grl_media_audio_new ();
- } else if (g_str_has_suffix (rdf_single_type[i], RDF_TYPE_VIDEO)) {
- media = grl_media_video_new ();
- } else if (g_str_has_suffix (rdf_single_type[i], RDF_TYPE_IMAGE)) {
- media = grl_media_image_new ();
- } else if (g_str_has_suffix (rdf_single_type[i], RDF_TYPE_ARTIST)) {
- media = grl_media_box_new ();
- } else if (g_str_has_suffix (rdf_single_type[i], RDF_TYPE_ALBUM)) {
- media = grl_media_box_new ();
- } else if (g_str_has_suffix (rdf_single_type[i], RDF_TYPE_BOX)) {
- media = grl_media_box_new ();
- } else if (g_str_has_suffix (rdf_single_type[i], RDF_TYPE_FOLDER)) {
- media = grl_media_box_new ();
- }
- i--;
+ ht = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
+ for (; i>= 0; i--)
+ g_hash_table_insert (ht, g_path_get_basename (rdf_single_type[i]), GINT_TO_POINTER(TRUE));
+
+ if (g_hash_table_lookup (ht, RDF_TYPE_MUSIC)) {
+ media = grl_media_audio_new ();
+ } else if (g_hash_table_lookup (ht, RDF_TYPE_VIDEO)) {
+ media = grl_media_video_new ();
+ } else if (g_hash_table_lookup (ht, RDF_TYPE_IMAGE)) {
+ media = grl_media_image_new ();
+ } else if (g_hash_table_lookup (ht, RDF_TYPE_ARTIST)) {
+ media = grl_media_box_new ();
+ } else if (g_hash_table_lookup (ht, RDF_TYPE_ALBUM)) {
+ media = grl_media_box_new ();
+ } else if (g_hash_table_lookup (ht, RDF_TYPE_BOX)) {
+ media = grl_media_box_new ();
+ } else if (g_hash_table_lookup (ht, RDF_TYPE_FOLDER)) {
+ media = grl_media_box_new ();
}
+ g_hash_table_destroy (ht);
g_strfreev (rdf_single_type);
if (!media)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]