Added debian packaging infrastructure
[maevies] / src / mvs-tmdb-movie-service.c
index 9c2bfa6..e26b07c 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,104 @@ 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;
         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,
+                                   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,
+                                     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,
+                                     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
-setup_dbus (MvsTMDBMovieService *self)
+setup_dbus (MvsTmdbMovieService *self)
 {
         DBusGProxy *proxy;
         guint request_name_result;
@@ -86,7 +165,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,7 +187,7 @@ 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);
@@ -119,11 +198,11 @@ mvs_tmdb_movie_service_finalize (GObject *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;
@@ -139,7 +218,7 @@ 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;
@@ -147,11 +226,11 @@ mvs_tmdb_movie_service_init (MvsTMDBMovieService *self)
         self->priv->suffix = NULL;
 }
 
-MvsTMDBMovieService*
+MvsTmdbMovieService*
 mvs_tmdb_movie_service_new (DBusGConnection *connection,
                 MvsTmdbMovie *movie, const gchar *suffix)
 {
-        MvsTMDBMovieService *instance = g_object_new (MVS_TYPE_TMDB_MOVIE_SERVICE, NULL);
+        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;