Fixed function name
[maevies] / src / mvs-tmdb-movie-service.c
index 36b910b..79051fb 100644 (file)
 #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"
 
-G_DEFINE_TYPE (MvsTMDBMovieService, mvs_tmdb_movie_service, G_TYPE_OBJECT)
+G_DEFINE_TYPE (MvsTmdbMovieService, mvs_tmdb_movie_service, G_TYPE_OBJECT)
 
 enum {
         PROP_0,
@@ -32,26 +33,100 @@ enum {
 };
 
 #define GET_PRIVATE(o) \
-        (G_TYPE_INSTANCE_GET_PRIVATE ((o), MVS_TYPE_TMDB_MOVIE_SERVICE, MvsTMDBMovieServicePrivate))
+        (G_TYPE_INSTANCE_GET_PRIVATE ((o), MVS_TYPE_TMDB_MOVIE_SERVICE, MvsTmdbMovieServicePrivate))
 
-struct _MvsTMDBMovieServicePrivate {
+struct _MvsTmdbMovieServicePrivate {
         MvsTmdbMovie *movie;
         DBusGConnection *connection;
-        guint id;
+        gchar *suffix;
 };
 
 gboolean
-mvs_tmdb_movie_service_get_title (MvsTMDBMovieService *self, gchar **title,
+mvs_tmdb_movie_service_get_title (MvsTmdbMovieService *self, gchar **title,
                                   GError **error)
 {
         *title = g_strdup (mvs_tmdb_movie_get_name (self->priv->movie));
         return *title != NULL;
 }
 
+gboolean
+mvs_tmdb_movie_service_get_popularity (MvsTmdbMovieService *self, gchar **popularity,
+                                       GError **error)
+{
+        *popularity = g_strdup (mvs_tmdb_movie_get_popularity (self->priv->movie));
+        return *popularity != NULL;
+}
+
+gboolean
+mvs_tmdb_movie_service_get_rating (MvsTmdbMovieService *self, gchar **rating)
+{
+        *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)
+{
+        *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)
+{
+        *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
-setup_dbus (MvsTMDBMovieService *self)
+setup_dbus (MvsTmdbMovieService *self)
 {
         DBusGProxy *proxy;
         guint request_name_result;
@@ -71,8 +146,8 @@ setup_dbus (MvsTMDBMovieService *self)
                 g_error_free (error);
         }
 
-        object_path = g_strdup_printf (TMDB_MOVIE_SERVICE_OBJECT_PATH "/%d",
-                        self->priv->id);
+        object_path = g_strdup_printf (TMDB_MOVIE_SERVICE_OBJECT_PATH "/%s",
+                        self->priv->suffix);
 
         dbus_g_connection_register_g_object (self->priv->connection,
                                              object_path,
@@ -86,7 +161,7 @@ static void
 mvs_tmdb_movie_service_set_property (GObject *object, guint property_id,
                                   const GValue *value, GParamSpec *pspec)
 {
-        MvsTMDBMovieService *self = MVS_TMDB_MOVIE_SERVICE (object);
+        MvsTmdbMovieService *self = MVS_TMDB_MOVIE_SERVICE (object);
 
         switch (property_id) {
         case PROP_DBUSGCONN:
@@ -108,21 +183,22 @@ mvs_tmdb_movie_service_set_property (GObject *object, guint property_id,
 static void
 mvs_tmdb_movie_service_finalize (GObject *object)
 {
-        MvsTMDBMovieService *self = MVS_TMDB_MOVIE_SERVICE (object);
+        MvsTmdbMovieService *self = MVS_TMDB_MOVIE_SERVICE (object);
 
         if (self->priv->connection) {
                 dbus_g_connection_unref (self->priv->connection);
         }
+        g_free (self->priv->suffix);
         g_object_unref (self->priv->movie);
         G_OBJECT_CLASS (mvs_tmdb_movie_service_parent_class)->finalize (object);
 }
 
 static void
-mvs_tmdb_movie_service_class_init (MvsTMDBMovieServiceClass *klass)
+mvs_tmdb_movie_service_class_init (MvsTmdbMovieServiceClass *klass)
 {
         GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
-        g_type_class_add_private (klass, sizeof (MvsTMDBMovieServicePrivate));
+        g_type_class_add_private (klass, sizeof (MvsTmdbMovieServicePrivate));
 
         object_class->set_property = mvs_tmdb_movie_service_set_property;
         object_class->finalize = mvs_tmdb_movie_service_finalize;
@@ -138,19 +214,20 @@ mvs_tmdb_movie_service_class_init (MvsTMDBMovieServiceClass *klass)
 }
 
 static void
-mvs_tmdb_movie_service_init (MvsTMDBMovieService *self)
+mvs_tmdb_movie_service_init (MvsTmdbMovieService *self)
 {
         self->priv = GET_PRIVATE (self);
         self->priv->movie = NULL;
         self->priv->connection = NULL;
+        self->priv->suffix = NULL;
 }
 
-MvsTMDBMovieService*
+MvsTmdbMovieService*
 mvs_tmdb_movie_service_new (DBusGConnection *connection,
-                MvsTmdbMovie *movie, guint id)
+                MvsTmdbMovie *movie, const gchar *suffix)
 {
-        MvsTMDBMovieService *instance = g_object_new (MVS_TYPE_TMDB_MOVIE_SERVICE, NULL);
-        instance->priv->id = id;
+        MvsTmdbMovieService *instance = g_object_new (MVS_TYPE_TMDB_MOVIE_SERVICE, NULL);
+        instance->priv->suffix = g_strdup(suffix);
         g_object_set (instance, "connection", connection, NULL);
         instance->priv->movie = movie;
         return instance;