[grilo] core: Add GRL_METADATA_KEY_COMPOSER



commit e61f2172f424938d4a404a65f0dc082c615600b8
Author: Marinus Schraal <mschraal src gnome org>
Date:   Wed Mar 2 18:06:17 2016 +0100

    core: Add GRL_METADATA_KEY_COMPOSER
    
    Add GRL_METADATA_KEY_COMPOSER, defines the composer(s) of the media.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=763009

 src/data/grl-media.c   |  120 ++++++++++++++++++++++++++++++++++++++++++++++++
 src/data/grl-media.h   |    6 ++
 src/grl-metadata-key.c |   10 ++++
 src/grl-metadata-key.h |    1 +
 4 files changed, 137 insertions(+), 0 deletions(-)
---
diff --git a/src/data/grl-media.c b/src/data/grl-media.c
index e87097d..5073484 100644
--- a/src/data/grl-media.c
+++ b/src/data/grl-media.c
@@ -1780,6 +1780,40 @@ grl_media_set_artist (GrlMedia *media, const gchar *artist)
 }
 
 /**
+ * grl_media_set_composer:
+ * @media: the media instance
+ * @artist: the audio's composer
+ *
+ * Set the composer of the media
+ *
+ * Since: 0.3.1
+ */
+void
+grl_media_set_composer (GrlMedia *media, const gchar *composer)
+{
+  g_return_if_fail (GRL_IS_MEDIA (media));
+  grl_data_set_string (GRL_DATA (media), GRL_METADATA_KEY_COMPOSER,
+                       composer);
+}
+
+/**
+ * grl_media_set_composer:
+ * @media: the media instance
+ * @artist: the audio's composer
+ *
+ * Set the composer of the media
+ *
+ * Since: 0.3.1
+ */
+void
+grl_media_set_composer (GrlMedia *media, const gchar *composer)
+{
+  g_return_if_fail (GRL_IS_MEDIA (media));
+  grl_data_set_string (GRL_DATA (media), GRL_METADATA_KEY_COMPOSER,
+                       composer);
+}
+
+/**
  * grl_media_set_width:
  * @media: the media instance
  * @width: the video's width
@@ -3196,6 +3230,92 @@ grl_media_get_artist_nth (GrlMedia *media, guint index)
 }
 
 /**
+ * grl_media_get_composer:
+ * @media: the media instance
+ *
+ * Returns: the composer of the media
+ *
+ * Since: 0.3.1
+ */
+const gchar *
+grl_media_get_composer (GrlMedia *media)
+{
+  g_return_val_if_fail (GRL_MEDIA (media), NULL);
+  return grl_data_get_string (GRL_DATA (media), GRL_METADATA_KEY_COMPOSER);
+}
+
+/**
+ * grl_media_get_composer_nth:
+ * @media: the media instance
+ * @index: element to retrieve, starting at 0
+ *
+ * Returns: the n-th composer of the media
+ *
+ * Since: 0.3.1
+ */
+const gchar *
+grl_media_get_composer_nth (GrlMedia *media, guint index)
+{
+  GrlRelatedKeys *relkeys;
+
+  g_return_val_if_fail (GRL_IS_MEDIA (media), NULL);
+
+  relkeys =
+    grl_data_get_related_keys (GRL_DATA (media),
+                               GRL_METADATA_KEY_COMPOSER,
+                               index);
+
+  if (!relkeys) {
+    return NULL;
+  } else {
+    return grl_related_keys_get_string (relkeys, GRL_METADATA_KEY_COMPOSER);
+  }
+}
+
+/**
+ * grl_media_get_composer:
+ * @media: the media instance
+ *
+ * Returns: the composer of the media
+ *
+ * Since: 0.3.1
+ */
+const gchar *
+grl_media_get_composer (GrlMedia *media)
+{
+  g_return_val_if_fail (GRL_MEDIA (media), NULL);
+  return grl_data_get_string (GRL_DATA (media), GRL_METADATA_KEY_COMPOSER);
+}
+
+/**
+ * grl_media_get_composer_nth:
+ * @media: the media instance
+ * @index: element to retrieve, starting at 0
+ *
+ * Returns: the n-th composer of the media
+ *
+ * Since: 0.3.1
+ */
+const gchar *
+grl_media_get_composer_nth (GrlMedia *media, guint index)
+{
+  GrlRelatedKeys *relkeys;
+
+  g_return_val_if_fail (GRL_IS_MEDIA (media), NULL);
+
+  relkeys =
+    grl_data_get_related_keys (GRL_DATA (media),
+                               GRL_METADATA_KEY_COMPOSER,
+                               index);
+
+  if (!relkeys) {
+    return NULL;
+  } else {
+    return grl_related_keys_get_string (relkeys, GRL_METADATA_KEY_COMPOSER);
+  }
+}
+
+/**
  * grl_media_get_media_type:
  * @media: the media instance
  *
diff --git a/src/data/grl-media.h b/src/data/grl-media.h
index 97086ca..3c6ef76 100644
--- a/src/data/grl-media.h
+++ b/src/data/grl-media.h
@@ -195,6 +195,8 @@ void grl_media_set_album_disc_number (GrlMedia *media, gint disc_number);
 
 void grl_media_set_artist (GrlMedia *media, const gchar *artist);
 
+void grl_media_set_composer (GrlMedia *media, const gchar *composer);
+
 void grl_media_set_width (GrlMedia *media, gint width);
 
 void grl_media_set_height (GrlMedia *media, gint height);
@@ -368,6 +370,10 @@ const gchar *grl_media_get_artist (GrlMedia *media);
 
 const gchar *grl_media_get_artist_nth (GrlMedia *media, guint index);
 
+const gchar *grl_media_get_composer (GrlMedia *media);
+
+const gchar *grl_media_get_composer_nth (GrlMedia *media, guint index);
+
 GrlMediaType grl_media_get_media_type (GrlMedia *media);
 
 gint grl_media_get_width (GrlMedia *media);
diff --git a/src/grl-metadata-key.c b/src/grl-metadata-key.c
index fb6f1cd..8a810de 100644
--- a/src/grl-metadata-key.c
+++ b/src/grl-metadata-key.c
@@ -68,6 +68,16 @@ grl_metadata_key_setup_system_keys (GrlRegistry *registry)
                                              NULL);
 
   grl_registry_register_metadata_key_system (registry,
+                                             g_param_spec_string ("composer",
+                                                                  "Composer",
+                                                                  "Composer of the media",
+                                                                  NULL,
+                                                                  G_PARAM_STATIC_STRINGS | 
G_PARAM_READWRITE),
+                                             GRL_METADATA_KEY_COMPOSER,
+                                             GRL_METADATA_KEY_INVALID,
+                                             NULL);
+
+  grl_registry_register_metadata_key_system (registry,
                                              g_param_spec_string ("description",
                                                                   "Description",
                                                                   "Description of the media",
diff --git a/src/grl-metadata-key.h b/src/grl-metadata-key.h
index cce4a12..d1ed6e3 100644
--- a/src/grl-metadata-key.h
+++ b/src/grl-metadata-key.h
@@ -121,6 +121,7 @@ typedef enum {
 #define GRL_METADATA_KEY_EPISODE_TITLE        56
 #define GRL_METADATA_KEY_AUDIO_TRACK          57
 #define GRL_METADATA_KEY_ALBUM_DISC_NUMBER    58
+#define GRL_METADATA_KEY_COMPOSER             59
 
 G_BEGIN_DECLS
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]