Initial support for multiple query services
[maevies] / src / mvs-minfo-provider-service.c
index 56a3e38..f6cf604 100644 (file)
 #include "mvs-minfo-provider.h"
 #include "mvs-tmdb-movie-service.h"
 #include "mvs-tmdb-movie.h"
+#include "mvs-watc-movie.h"
 #include "mvs-marshal.h"
 
 #define MINFO_PROVIDER_SERVICE_OBJECT_PATH "/MInfoProvider"
 #define MINFO_PROVIDER_SERVICE_NAME "com.simonpena.maevies.minfoprovider"
 #define TMDB_MOVIE_INTERFACE "com.simonpena.maevies.tmdbmovie"
+#define WATC_MOVIE_INTERFACE "com.simonpena.maevies.watcmovie"
 
 G_DEFINE_TYPE (MvsMInfoProviderService, mvs_minfo_provider_service, G_TYPE_OBJECT)
 
@@ -65,7 +67,7 @@ mvs_minfo_provider_service_query (MvsMInfoProviderService *self,
 #include "mvs-minfo-provider-service-glue.h"
 
 static void
-response_received_cb (MvsMInfoProvider *provider, GList *list,
+response_received_cb (MvsMInfoProvider *provider, guint service, GList *list,
                       gpointer user_data)
 {
         MvsMInfoProviderService *self = MVS_MINFO_PROVIDER_SERVICE (user_data);
@@ -73,9 +75,13 @@ response_received_cb (MvsMInfoProvider *provider, GList *list,
         GError *error = NULL;
         GList *iter = NULL;
         gchar  **object_paths= g_new0 (gchar*, g_list_length (list) + 1);
-        gchar *movie_interface = g_strdup (TMDB_MOVIE_INTERFACE);
+        gchar *movie_interface = NULL;
         guint i = 0;
 
+        movie_interface = service == MVS_SERVICE_TMDB ?
+                        g_strdup (TMDB_MOVIE_INTERFACE):
+                        g_strdup (WATC_MOVIE_INTERFACE);
+
         for (iter = list; iter; iter = iter->next) {
                 if (MVS_IS_TMDB_MOVIE (iter->data)) {
                         MvsTmdbMovie *tmdb_movie = MVS_TMDB_MOVIE (iter->data);
@@ -89,6 +95,16 @@ response_received_cb (MvsMInfoProvider *provider, GList *list,
                                         uid_suffix);
                         g_free (uid_suffix);
                 }
+                else if (MVS_IS_WATC_MOVIE (iter->data)) {
+                        MvsWatcMovie *watc_movie = MVS_WATC_MOVIE (iter->data);
+                        gchar *uid_suffix = g_strdup_printf ("%d_%d",
+                                        self->priv->search_id,
+                                        i);
+                        /* TODO: create watc_movie service */
+                        object_paths[i] = g_strdup_printf ("/WATCMovie/%s",
+                                        uid_suffix);
+                        g_free (uid_suffix);
+                }
                 i++;
         }
         object_paths[i] = NULL;