tmdb-movie-service: Movie images are exposed on DBus
[maevies] / src / mvs-tmdb-movie-service.c
index 5b75418..79051fb 100644 (file)
@@ -19,6 +19,7 @@
 #include <dbus/dbus-glib-bindings.h>
 
 #include "mvs-tmdb-movie-service.h"
+#include "mvs-tmdb-image.h"
 
 #define TMDB_MOVIE_SERVICE_OBJECT_PATH "/TMDBMovie"
 #define TMDB_MOVIE_SERVICE_NAME "com.simonpena.maevies.tmdbmovie"
@@ -77,6 +78,51 @@ mvs_tmdb_movie_service_get_overview (MvsTmdbMovieService *self, gchar **overview
         return *overview != NULL;
 }
 
+gboolean
+mvs_tmdb_movie_service_get_images (MvsTmdbMovieService *self, GPtrArray **image_array, GError **error)
+{
+        GList *iter = NULL;
+        *image_array = g_ptr_array_new ();
+
+        GList *movie_images = mvs_tmdb_movie_get_images (self->priv->movie);
+        for (iter = movie_images; iter; iter = iter->next) {
+
+                GValueArray *image_properties = g_value_array_new (4);
+                MvsTmdbImage *movie_image = MVS_TMDB_IMAGE (iter->data);
+
+                GValue value = { 0 };
+                g_value_init (&value, G_TYPE_STRING);
+
+                g_value_set_string (&value,
+                                    mvs_tmdb_image_get_imagetype (movie_image));
+
+                g_value_array_append (image_properties,
+                                      &value);
+
+                g_value_set_string (&value,
+                                    mvs_tmdb_image_get_url (movie_image));
+
+                g_value_array_append (image_properties,
+                                      &value);
+
+                g_value_set_string (&value,
+                                    mvs_tmdb_image_get_size (movie_image));
+
+                g_value_array_append (image_properties,
+                                      &value);
+
+                g_value_set_string (&value,
+                                    mvs_tmdb_image_get_id (movie_image));
+
+                g_value_array_append (image_properties,
+                                      &value);
+
+                g_ptr_array_add (*image_array, image_properties);
+        }
+
+       return image_array != NULL;
+}
+
 #include "mvs-tmdb-movie-service-glue.h"
 
 static void