using namespace WrtDeviceApis::Commons;
+/*
+ * Callback for get servers on UPnPManager proxy
+ */
+static void getServersCallback(GObject *source_object, GAsyncResult *res, gpointer user_data) {
+
+ GError* gerror = NULL;
+ ScanNetworkCB * callback = (ScanNetworkCB *) user_data;
+ LoggerD("Entered getServersCallback");
+
+ /* finish get servers on UPnPManager proxy */
+ gchar ** strTab;
+ if (upn_pmanager__call_get_servers_finish (
+ callback->mgrProxy, /* proxy */
+ &strTab,
+ res,
+ &gerror /* error */
+ )) {
+ LoggerD("getServersCallback success");
+ } else {
+ LoggerD(gerror->message);
+ g_error_free(gerror);
+ return;
+ }
+
+ while (*strTab) {
+ LoggerD("mediaserver dbus path " << *strTab);
+ // Create MediaServer object with proxy path
+ std::string path = *strTab;
+ JSValueRef value = JSMediaServer::createJSObject(callback->context, path);
+ const JSValueRef arguments[1] = { value };
+ // Trigger callback
+ LoggerD("Triggering callback ");
+ JSObjectCallAsFunction(callback->context,
+ callback->successCB,
+ callback->thisObject,
+ 1,
+ arguments,
+ NULL);
+ LoggerD("done with mediaserver " << *strTab);
+ strTab++;
+ }
+}
+
+
/**
* MediaServerManager implementation
*/
return;
}
- char ** strTab;
- if (upn_pmanager__call_get_servers_sync(
+ callback->mgrProxy = proxy;
+ LoggerD("calling get servers");
+ upn_pmanager__call_get_servers(
proxy, /* proxy */
- &strTab, /* out_Servers */
NULL, /* cancellable */
- &gerror /* error */
- )) {
- LoggerD("get servers success");
- while (*strTab) {
- LoggerD("mediaserver dbus path " << *strTab);
- // Create MediaServer object with proxy path
- std::string path = *strTab;
- JSValueRef value = JSMediaServer::createJSObject(callback->context, path);
- const JSValueRef arguments[1] = { value };
- // Trigger callback
- LoggerD("Triggering callback ");
- JSObjectCallAsFunction(callback->context,
- callback->successCB,
- callback->thisObject,
- 1,
- arguments,
- NULL);
- LoggerD("done with mediaserver " << *strTab);
- strTab++;
- }
- } else {
- LoggerD("get servers error");
- }
+ getServersCallback, /* callback */
+ callback /* user_data */
+ );
}