Fixed test to support signals carrying service
[maevies] / src / mvs-tmdb-movie-service.c
index 5b75418..e26b07c 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"
@@ -57,26 +58,75 @@ mvs_tmdb_movie_service_get_popularity (MvsTmdbMovieService *self, gchar **popula
 }
 
 gboolean
-mvs_tmdb_movie_service_get_rating (MvsTmdbMovieService *self, gchar **rating)
+mvs_tmdb_movie_service_get_rating (MvsTmdbMovieService *self, gchar **rating,
+                                   GError **error)
 {
         *rating = g_strdup (mvs_tmdb_movie_get_rating (self->priv->movie));
         return *rating != NULL;
 }
 
 gboolean
-mvs_tmdb_movie_service_get_released (MvsTmdbMovieService *self, gchar **released)
+mvs_tmdb_movie_service_get_released (MvsTmdbMovieService *self, gchar **released,
+                                     GError **error)
 {
         *released = g_strdup (mvs_tmdb_movie_get_released (self->priv->movie));
         return *released != NULL;
 }
 
 gboolean
-mvs_tmdb_movie_service_get_overview (MvsTmdbMovieService *self, gchar **overview)
+mvs_tmdb_movie_service_get_overview (MvsTmdbMovieService *self, gchar **overview,
+                                     GError **error)
 {
         *overview = g_strdup (mvs_tmdb_movie_get_overview (self->priv->movie));
         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