void viewerappapi_init(ViewerAppAPI *server) { // Connect to the default DBUS, register our service/API. LL_DEBUGS("DBUS")<< "Debug DBUS2"<< LL_ENDL; if (!dbus_server_init) { LL_DEBUGS("DBUS")<< "Debug DBUS3"<< LL_ENDL; GError *error = NULL; server->connection = dbus_g_bus_get(DBUS_BUS_SESSION, &error); LL_DEBUGS("DBUS")<< "Debug DBUS4"<< LL_ENDL; if (server->connection) { dbus_g_object_type_install_info(viewerappapi_get_type(), &dbus_glib_viewerapp_object_info); LL_DEBUGS("DBUS")<< "Debug DBUS5"<< LL_ENDL; dbus_g_connection_register_g_object(server->connection, VIEWERAPI_PATH, G_OBJECT(server)); LL_DEBUGS("DBUS")<< "Debug DBUS6"<< LL_ENDL; DBusGProxy *serverproxy = dbus_g_proxy_new_for_name(server->connection, DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS); LL_DEBUGS("DBUS")<< "Debug DBUS7"<< LL_ENDL; guint request_name_ret_unused; // akin to org_freedesktop_DBus_request_name if (dbus_g_proxy_call(serverproxy, "RequestName", &error, G_TYPE_STRING, VIEWERAPI_SERVICE, G_TYPE_UINT, 0, G_TYPE_INVALID, G_TYPE_UINT, &request_name_ret_unused, G_TYPE_INVALID)) { // total success. dbus_server_init = true; LL_DEBUGS("DBUS")<< "Debug DBUS8"<< LL_ENDL; } else { llwarns << "Unable to register service name: " << error->message << llendl; } g_object_unref(serverproxy); LL_DEBUGS("DBUS")<< "Debug DBUS9"<< LL_ENDL; } else { g_warning("Unable to connect to dbus: %s", error->message); } if (error) { g_error_free(error); LL_DEBUGS("DBUS")<< "Debug DBUS10"<< LL_ENDL; } } else LL_DEBUGS("DBUS")<< "Debug DBUS11"<< LL_ENDL; LL_DEBUGS("DBUS")<< "Debug DBUS End"<< LL_ENDL; }
//virtual bool LLAppViewerLinux::initSLURLHandler() { if (gSavedSettings.getBOOL("DisableDBUS")) return false; g_type_init(); LL_DEBUGS("DBUS")<< "Debug DBUS Start"<< LL_ENDL; //ViewerAppAPI *api_server = (ViewerAppAPI*) g_object_new(viewerappapi_get_type(), NULL); return true; }
//virtual bool LLAppViewerLinux::initSLURLHandler() { if (!grab_dbus_syms(DBUSGLIB_DYLIB_DEFAULT_NAME)) { return false; // failed } g_type_init(); //ViewerAppAPI *api_server = (ViewerAppAPI*) g_object_new(viewerappapi_get_type(), NULL); return true; }
//virtual bool LLAppViewerLinux::initSLURLHandler() { if (gSavedSettings.getBOOL("DisableDBUS")) return false; g_type_init(); LL_DEBUGS("DBUS")<< "Debug DBUS Start"<< LL_ENDL; //ViewerAppAPI *api_server = (ViewerAppAPI*) g_object_new(viewerappapi_get_type(), NULL, (void*)NULL); /// also possible instead: /* GType obj_type = viewerappapi_get_type(); g_object_newv(obj_type, 0, NULL); //gpointer g_object_newv (GType object_type, // guint n_parameters, // GParameter *parameters); */ return true; }