JS_EXPORT_API JSValueRef dbus_session_object( const char* bus_name, const char* object_path, const char* interface, JSData* js) { if (!init) dbus_init(); if (session_con == NULL) { GError *error = NULL; session_con = dbus_g_bus_get(DBUS_BUS_SESSION, &error); if (error != NULL) { g_warning("ERROR:%s\n", error->message); g_error_free(error); } g_assert(session_con != NULL); } JSValueRef value = get_dbus_object(js->ctx, session_con, bus_name, object_path, interface); if (value == NULL) { js_fill_exception(js->ctx, js->exception, "Can't dynamic build this dbus interface)"); } return value; }
int main() { g_type_init(); ctx = JSGlobalContextCreate(NULL); DBusGConnection *con = dbus_g_bus_get(DBUS_BUS_SESSION, NULL); JSObjectRef obj = get_dbus_object(ctx, con, "org.gnome.Shell", "/org/gnome/Shell", "org.gnome.Shell"); dbus_g_connection_unref(con); JSGlobalContextRelease(ctx); /*dbus_object_info_free(info);*/ }