Initial support for multiple query services
[maevies] / src / mvs-minfo-provider.c
index afc18c4..48db5cb 100644 (file)
@@ -119,15 +119,18 @@ mvs_minfo_provider_class_init (MvsMInfoProviderClass *klass)
                                       TMDB_FORMAT,
                                       G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
 
-        signals[RESPONSE_RECEIVED] = g_signal_new ("response-received", MVS_TYPE_MINFO_PROVIDER,
+        signals[RESPONSE_RECEIVED] = g_signal_new ("response-received",
+                        MVS_TYPE_MINFO_PROVIDER,
                         G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS,
                         0,
                         NULL,
                         NULL,
-                        g_cclosure_marshal_VOID__POINTER,
+                        g_cclosure_marshal_VOID__UINT_POINTER,
                         G_TYPE_NONE,
-                        1,
-                        G_TYPE_POINTER);
+                        2,
+                        G_TYPE_UINT,
+                        G_TYPE_POINTER,
+                        NULL);
 }
 
 static void
@@ -315,6 +318,7 @@ process_response_cb (SoupSession *session, SoupMessage *message,
         MvsMInfoProvider *self = MVS_MINFO_PROVIDER (user_data);
         const gchar *mime = NULL;
         GList *list = NULL;
+        guint service;
 
         if (!SOUP_STATUS_IS_SUCCESSFUL (message->status_code) ||
                         message->response_body->length <= 0) {
@@ -327,15 +331,19 @@ process_response_cb (SoupSession *session, SoupMessage *message,
                                 (message->response_headers, NULL);
                 g_message ("Mime type: %s\n", mime);
 
-                if (g_strcmp0 (mime, "text/xml") == 0)
+                if (g_strcmp0 (mime, "text/xml") == 0) {
                         list = parse_xml (message->response_body->data,
                                         message->response_body->length);
-                else if (g_strcmp0 (mime, "application/json") == 0)
+                        service = MVS_SERVICE_TMDB;
+                }
+                else if (g_strcmp0 (mime, "application/json") == 0) {
                         list = parse_json (message->response_body->data,
                                         message->response_body->length);
+                        service = MVS_SERVICE_WATC;
+                }
         }
 
-        g_signal_emit (self, signals[RESPONSE_RECEIVED], 0, list);
+        g_signal_emit (self, signals[RESPONSE_RECEIVED], 0, service, list);
 }
 
 static gchar *