tmdb-movie-service: Movie images are exposed on DBus
authorSimón Pena <spenap@gmail.com>
Sat, 19 Jun 2010 20:55:33 +0000 (22:55 +0200)
committerSimón Pena <spenap@gmail.com>
Sat, 19 Jun 2010 20:55:33 +0000 (22:55 +0200)
src/mvs-tmdb-movie-service.c
src/mvs-tmdb-movie.xml

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
index 3ba6144..bcc124c 100644 (file)
@@ -19,5 +19,8 @@
                <method name="GetOverview">
                        <arg type="s" name="Overview" direction="out" />
                </method>
+               <method name="GetImages">
+                       <arg type="a(ssss)" name="Images" direction="out" />
+               </method>
        </interface>
 </node>
\ No newline at end of file