minfoprovider: Response-received signal updated
[maevies] / src / mvs-minfo-provider-service.c
index f35150a..1e6e049 100644 (file)
@@ -20,6 +20,8 @@
 
 #include "mvs-minfo-provider-service.h"
 #include "mvs-minfo-provider.h"
+#include "mvs-tmdb-movie-service.h"
+#include "mvs-tmdb-movie.h"
 
 #define MINFO_PROVIDER_SERVICE_OBJECT_PATH "/MInfoProvider"
 #define MINFO_PROVIDER_SERVICE_NAME "com.simonpena.maevies.minfoprovider"
@@ -60,11 +62,30 @@ mvs_minfo_provider_service_query (MvsMInfoProviderService *self,
 #include "mvs-minfo-provider-service-glue.h"
 
 static void
-response_received_cb (MvsMInfoProvider *provider, gpointer response,
+response_received_cb (MvsMInfoProvider *provider, GList *list,
                       gpointer user_data)
 {
         MvsMInfoProviderService *self = MVS_MINFO_PROVIDER_SERVICE (user_data);
-        g_signal_emit (self, mvs_minfo_provider_service_signals[RESPONSE_RECEIVED], 0);
+        MvsTMDBMovieService *movie = NULL;
+        GError *error = NULL;
+        GList *iter = NULL;
+        gchar  **object_paths= g_new0 (gchar*, g_list_length (list) + 1);
+        guint i = 0;
+
+        for (iter = list; iter; iter = iter->next) {
+                if (MVS_IS_TMDB_MOVIE (iter->data)) {
+                        MvsTmdbMovie *tmdb_movie = MVS_TMDB_MOVIE (iter->data);
+
+                        mvs_tmdb_movie_print (tmdb_movie);
+                        movie = mvs_tmdb_movie_service_new (self->priv->connection, tmdb_movie, i);
+                        object_paths[i] = g_strdup_printf ("/TMDBMovie/%d", i);
+                }
+                i++;
+        }
+        object_paths[i] = NULL;
+
+        g_signal_emit (self, mvs_minfo_provider_service_signals[RESPONSE_RECEIVED], 0, object_paths);
+        g_strfreev (object_paths);
 }
 
 static void
@@ -155,9 +176,10 @@ mvs_minfo_provider_service_class_init (MvsMInfoProviderServiceClass *klass)
                          0,
                          NULL,
                          NULL,
-                         g_cclosure_marshal_VOID__VOID,
+                         g_cclosure_marshal_VOID__POINTER,
                          G_TYPE_NONE,
-                         0,
+                         1,
+                         G_TYPE_STRV,
                          NULL);
 }