[ekiga] Revert "Remove last bits of the unmaintained and obsolete dbus client component"
- From: Damien Sandras <dsandras src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [ekiga] Revert "Remove last bits of the unmaintained and obsolete dbus client component"
- Date: Sun, 22 Apr 2012 10:42:54 +0000 (UTC)
commit 1960b1e4073a95cad312c20b114d559c265f89d4
Author: Damien Sandras <dsandras beip be>
Date: Sun Apr 22 11:17:43 2012 +0200
Revert "Remove last bits of the unmaintained and obsolete dbus client component"
This reverts commit 6223f86629579e9f4c1b4cc487adce1662c8775d.
src/dbus-helper/dbus-helper-stub.xml | 12 +
src/dbus-helper/dbus-helper.cpp | 210 +++++++++++++++++++
src/dbus-helper/dbus-stub.xml | 27 +++
src/dbus-helper/dbus.cpp | 302 +++++++++++++++++++++++++++
src/dbus-helper/dbus.h | 75 +++++++
src/dbus-helper/org.ekiga.Ekiga.service.in | 3 +
src/dbus-helper/org.ekiga.Helper.service.in | 3 +
7 files changed, 632 insertions(+), 0 deletions(-)
---
diff --git a/src/dbus-helper/dbus-helper-stub.xml b/src/dbus-helper/dbus-helper-stub.xml
new file mode 100644
index 0000000..268eb34
--- /dev/null
+++ b/src/dbus-helper/dbus-helper-stub.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<node name="/">
+ <interface name="org.ekiga.Helper">
+ <method name="GetVersion">
+ <arg type="au" direction="out"/>
+ </method>
+ <method name="GetSupportedProtocols">
+ <arg type="as" direction="out"/>
+ </method>
+ </interface>
+</node>
diff --git a/src/dbus-helper/dbus-helper.cpp b/src/dbus-helper/dbus-helper.cpp
new file mode 100644
index 0000000..b5d7b7a
--- /dev/null
+++ b/src/dbus-helper/dbus-helper.cpp
@@ -0,0 +1,210 @@
+
+/* Ekiga -- A VoIP and Video-Conferencing application
+ * Copyright (C) 2000-2009 Damien Sandras <dsandras seconix com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ *
+ * Ekiga is licensed under the GPL license and as a special exception,
+ * you have permission to link or otherwise combine this program with the
+ * programs OPAL, OpenH323 and PWLIB, and distribute the combination,
+ * without applying the requirements of the GNU GPL to the OPAL, OpenH323
+ * and PWLIB programs, as long as you do follow the requirements of the
+ * GNU GPL for all the rest of the software thus combined.
+ */
+
+
+/*
+ * dbus_helper.cpp - description
+ * --------------------------
+ * begin : Sat 29 Oct 2005
+ * copyright : (C) 2005 by Julien Puydt
+ * description : Implementation of a DBUS helper.
+ *
+ */
+
+#include "config.h"
+
+#include <dbus/dbus-glib.h>
+
+/* Here is the description of method calls that this little program
+ * manages for gnomemeeting:
+ *
+ * "GetVersion"
+ * in : nil
+ * out : array of uint (major, minor version of the dbus api)
+ *
+ * "GetSupportedProtocols"
+ * in : nil
+ * out : array of strings (supported protocols, example: "SIP" and "H.323")
+ *
+ */
+
+#define GM_HELPER_SERVICE "org.ekiga.Helper"
+#define GM_HELPER_OBJECT "/org/ekiga/Helper"
+#define DBUS_COMPONENT_MAJOR_VERSION 0
+#define DBUS_COMPONENT_MINOR_VERSION 1
+
+/* Beginning of a classic GObject declaration */
+
+typedef struct Helper Helper;
+typedef struct HelperClass HelperClass;
+
+GType helper_get_type (void);
+
+struct Helper
+{
+ GObject parent;
+};
+
+struct HelperClass
+{
+ GObjectClass parent;
+};
+
+#define HELPER_TYPE (helper_get_type ())
+#define HELPER(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), HELPER_TYPE, Helper))
+#define HELPER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), HELPER_TYPE, HelperClass))
+#define IS_HELPER(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), HELPER_TYPE))
+#define IS_HELPER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), HELPER_TYPE))
+
+G_DEFINE_TYPE(Helper, helper, G_TYPE_OBJECT);
+
+/* End of a classic GObject declaration */
+
+/* here is this GObject's api */
+static gboolean helper_get_version (Helper *self,
+ GArray **version,
+ GError **error);
+static gboolean helper_get_supported_protocols (Helper *self,
+ char ***protocols,
+ GError **error);
+
+#include "dbus-helper-stub.h"
+
+/* this function is the callback function for the quit timeout : we don't want
+ * the helper to stay up too long
+ */
+static gboolean hara_kiri (gpointer loop);
+
+/* implementations */
+static void
+helper_init (G_GNUC_UNUSED Helper *self)
+{
+ /* nothing to do */
+}
+
+static void
+helper_class_init (G_GNUC_UNUSED HelperClass *klass)
+{
+ /* initializing as dbus object */
+ dbus_g_object_type_install_info (HELPER_TYPE,
+ &dbus_glib_helper_object_info);
+
+}
+
+static gboolean
+helper_get_version (G_GNUC_UNUSED Helper *self,
+ GArray **version,
+ G_GNUC_UNUSED GError **error)
+{
+ guint val;
+
+ *version = g_array_new (TRUE, TRUE, sizeof(guint));
+
+ val = DBUS_COMPONENT_MAJOR_VERSION;
+ g_array_append_val (*version, val);
+
+ val = DBUS_COMPONENT_MINOR_VERSION;
+ g_array_append_val (*version, val);
+
+ return TRUE;
+}
+
+static gboolean
+helper_get_supported_protocols (G_GNUC_UNUSED Helper *self,
+ char ***protocols,
+ G_GNUC_UNUSED GError **error)
+{
+ *protocols = g_new (char *, 3);
+ (*protocols)[0] = g_strdup ("SIP");
+ (*protocols)[1] = g_strdup ("H.323");
+ (*protocols)[2] = NULL;
+
+ return TRUE;
+}
+
+static gboolean
+hara_kiri (gpointer data)
+{
+ GMainLoop *loop = (GMainLoop *)data;
+
+ g_main_loop_quit (loop);
+
+ return FALSE;
+}
+
+int
+main (G_GNUC_UNUSED int argc,
+ G_GNUC_UNUSED char *argv[])
+{
+ GMainLoop *mainloop = NULL;
+ GObject *helper = NULL;
+ DBusGConnection *bus = NULL;
+ DBusGProxy *bus_proxy = NULL;
+ guint request_name_result;
+ GError *error = NULL;
+
+ g_type_init ();
+
+ mainloop = g_main_loop_new (NULL, FALSE);
+
+ bus = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
+ if (!bus) {
+
+ g_error ("Couldn't connect to session bus : %s\n", error->message);
+ g_main_loop_unref (mainloop);
+ return -1;
+ }
+
+ bus_proxy = dbus_g_proxy_new_for_name (bus, "org.freedesktop.DBus",
+ "/org/freedesktop/DBus",
+ "org.freedesktop.DBus");
+
+ if (!dbus_g_proxy_call (bus_proxy, "RequestName", &error,
+ G_TYPE_STRING, GM_HELPER_SERVICE,
+ G_TYPE_UINT, DBUS_NAME_FLAG_DO_NOT_QUEUE,
+ G_TYPE_INVALID,
+ G_TYPE_UINT, &request_name_result,
+ G_TYPE_INVALID)) {
+
+ g_error ("Couldn't request the name : %s\n",
+ error->message);
+ g_main_loop_unref (mainloop);
+ return -1;
+ }
+
+ helper = G_OBJECT (g_object_new (HELPER_TYPE, NULL));
+
+ dbus_g_connection_register_g_object (bus, GM_HELPER_OBJECT, helper);
+
+ g_timeout_add_seconds (5, hara_kiri, mainloop);
+ g_main_loop_run (mainloop);
+
+ g_object_unref (helper);
+ g_main_loop_unref (mainloop);
+
+ return 0;
+}
diff --git a/src/dbus-helper/dbus-stub.xml b/src/dbus-helper/dbus-stub.xml
new file mode 100644
index 0000000..54ec6fa
--- /dev/null
+++ b/src/dbus-helper/dbus-stub.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<node name="/">
+ <interface name="org.ekiga.Ekiga">
+
+ <!-- Show the main Ekiga window -->
+ <method name="Show"/>
+ <!-- Shutdown Ekiga -->
+ <method name="Shutdown"/>
+
+ <!-- Call a remote extension -->
+ <method name="Call">
+ <arg name="uri" type="s" direction="in"/>
+ </method>
+
+ <!-- Get local user informations -->
+ <method name="GetUserName">
+ <arg type="s" direction="out"/>
+ </method>
+ <method name="GetUserLocation">
+ <arg type="s" direction="out"/>
+ </method>
+ <method name="GetUserComment">
+ <arg type="s" direction="out"/>
+ </method>
+ </interface>
+</node>
diff --git a/src/dbus-helper/dbus.cpp b/src/dbus-helper/dbus.cpp
new file mode 100644
index 0000000..868a418
--- /dev/null
+++ b/src/dbus-helper/dbus.cpp
@@ -0,0 +1,302 @@
+/* Ekiga -- A VoIP and Video-Conferencing application
+ * Copyright (C) 2000-2009 Damien Sandras <dsandras seconix com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ *
+ * Ekiga is licensed under the GPL license and as a special exception,
+ * you have permission to link or otherwise combine this program with the
+ * programs OPAL, OpenH323 and PWLIB, and distribute the combination,
+ * without applying the requirements of the GNU GPL to the OPAL, OpenH323
+ * and PWLIB programs, as long as you do follow the requirements of the
+ * GNU GPL for all the rest of the software thus combined.
+ */
+
+
+/*
+ * dbus_component.cpp - description
+ * -----------------------------
+ * begin : Tue Nov 1 2005
+ * copyright : (c) 2005 by Julien Puydt
+ * (c) 2007 by Damien Sandras
+ * (c) 2008 by Steve FrÃcinaux
+ * description : This files contains the implementation of the DBUS
+ * interface of ekiga.
+ *
+ */
+
+#include "config.h"
+
+#include <dbus/dbus-glib.h>
+
+#include "dbus.h"
+
+#include "ekiga.h"
+#include "gmmarshallers.h"
+#include "gmconf.h"
+#include "callbacks.h"
+#include "accounts.h"
+
+#include "call-core.h"
+
+/* Those defines the namespace and path we want to use. */
+#define EKIGA_DBUS_NAMESPACE "org.ekiga.Ekiga"
+#define EKIGA_DBUS_PATH "/org/ekiga/Ekiga"
+#define EKIGA_DBUS_INTERFACE "org.ekiga.Ekiga"
+
+G_DEFINE_TYPE(EkigaDBusComponent, ekiga_dbus_component, G_TYPE_OBJECT);
+
+struct _EkigaDBusComponentPrivate
+{
+ Ekiga::ServiceCore *core;
+};
+
+/**************************
+ * GOBJECT / DBUS METHODS *
+ **************************/
+
+static gboolean ekiga_dbus_component_show (EkigaDBusComponent *self,
+ GError **error);
+static gboolean ekiga_dbus_component_shutdown (EkigaDBusComponent *self,
+ GError **error);
+static gboolean ekiga_dbus_component_call (EkigaDBusComponent *self,
+ const gchar *uri,
+ GError **error);
+static gboolean ekiga_dbus_component_get_user_name (EkigaDBusComponent *self,
+ char **name,
+ GError **error);
+static gboolean ekiga_dbus_component_get_user_location (EkigaDBusComponent *self,
+ char **location,
+ GError **error);
+static gboolean ekiga_dbus_component_get_user_comment (EkigaDBusComponent *self,
+ char **comment,
+ GError **error);
+
+/* get the code to make the GObject accessible through dbus
+ * (this is especially where we get dbus_glib_dbus_component_object_info !)
+ */
+#include "dbus-stub.h"
+
+static void
+ekiga_dbus_component_init (EkigaDBusComponent *self)
+{
+ self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, EKIGA_TYPE_DBUS_COMPONENT,
+ EkigaDBusComponentPrivate);
+}
+
+static void
+ekiga_dbus_component_class_init (EkigaDBusComponentClass *klass)
+{
+ g_type_class_add_private (klass, sizeof (EkigaDBusComponentPrivate));
+
+ /* initializing as dbus object */
+ dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (klass),
+ &dbus_glib_ekiga_dbus_component_object_info);
+}
+
+static gboolean
+ekiga_dbus_component_show (G_GNUC_UNUSED EkigaDBusComponent *self,
+ G_GNUC_UNUSED GError **error)
+{
+ PTRACE (1, "DBus\tShow");
+
+ GtkWidget *window = GnomeMeeting::Process ()->GetMainWindow ();
+ if (gtk_widget_get_visible (GTK_WIDGET (window)))
+ gtk_window_set_urgency_hint (GTK_WINDOW (window), TRUE);
+ else
+ gtk_window_present (GTK_WINDOW (window));
+
+ return TRUE;
+}
+
+static gboolean
+ekiga_dbus_component_shutdown (G_GNUC_UNUSED EkigaDBusComponent *self,
+ G_GNUC_UNUSED GError **error)
+{
+ quit_callback (NULL, NULL);
+
+ return TRUE;
+}
+
+static gboolean
+ekiga_dbus_component_call (EkigaDBusComponent *self,
+ const gchar *uri,
+ G_GNUC_UNUSED GError **error)
+{
+ boost::shared_ptr<Ekiga::CallCore> call_core = self->priv->core->get<Ekiga::CallCore> ("call-core");
+ call_core->dial (uri);
+
+ return TRUE;
+}
+
+static gboolean
+ekiga_dbus_component_get_user_name (G_GNUC_UNUSED EkigaDBusComponent *self,
+ char **name,
+ G_GNUC_UNUSED GError **error)
+{
+ gchar * full_name;
+ PTRACE (1, "DBus\tGetName");
+
+ full_name = gm_conf_get_string (PERSONAL_DATA_KEY "full_name");
+ if (full_name)
+ *name = full_name;
+
+ /* not freeing the full name is not a leak : dbus will do it for us ! */
+
+ return TRUE;
+}
+
+static gboolean
+ekiga_dbus_component_get_user_location (G_GNUC_UNUSED EkigaDBusComponent *self,
+ char **location,
+ G_GNUC_UNUSED GError **error)
+{
+ PTRACE (1, "DBus\tGetLocation");
+
+ *location = gm_conf_get_string (PERSONAL_DATA_KEY "location");
+
+ return TRUE;
+}
+
+static gboolean
+ekiga_dbus_component_get_user_comment (G_GNUC_UNUSED EkigaDBusComponent *self,
+ char **comment,
+ G_GNUC_UNUSED GError **error)
+{
+ PTRACE (1, "DBus\tGetComment");
+
+ *comment = gm_conf_get_string (PERSONAL_DATA_KEY "comment");
+
+ return TRUE;
+}
+
+/**************
+ * PUBLIC API *
+ **************/
+
+/** Claim ownership on the EKIGA_DBUS_NAMESPACE namespace.
+ * This function will return false if the namespace is already taken, ie if
+ * another instance of Ekiga is already running.
+ */
+gboolean
+ekiga_dbus_claim_ownership ()
+{
+ DBusGConnection *bus = NULL;
+ DBusGProxy *bus_proxy = NULL;
+ guint request_name_result;
+ GError *error = NULL;
+
+ bus = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
+ if (!bus) {
+ PTRACE (1, "Couldn't connect to session bus : " << error->message);
+ g_error_free (error);
+ return TRUE; // if we return FALSE here, ekiga won't even start without DBUS
+ }
+
+ bus_proxy = dbus_g_proxy_new_for_name (bus, "org.freedesktop.DBus",
+ "/org/freedesktop/DBus",
+ "org.freedesktop.DBus");
+
+ if (!dbus_g_proxy_call (bus_proxy, "RequestName", &error,
+ G_TYPE_STRING, EKIGA_DBUS_NAMESPACE,
+ G_TYPE_UINT, DBUS_NAME_FLAG_DO_NOT_QUEUE,
+ G_TYPE_INVALID,
+ G_TYPE_UINT, &request_name_result,
+ G_TYPE_INVALID)) {
+
+ PTRACE (1, "Couldn't get ownership on the " EKIGA_DBUS_NAMESPACE " D-Bus namespace : "
+ << error->message);
+ g_error_free (error);
+ return FALSE;
+ }
+
+ PTRACE (4, "Ekiga registered on D-Bus: " EKIGA_DBUS_NAMESPACE);
+
+ return request_name_result == DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER;
+}
+
+/** Create the server object for the D-Bus interface.
+ * This object acts mostly as a proxy for the manager and other common objects.
+ * NOTE: We expect we have claimed the namespace successfully before, and that
+ * the manager and other key components are running.
+ */
+EkigaDBusComponent *
+ekiga_dbus_component_new (Ekiga::ServiceCore *core)
+{
+ DBusGConnection *bus;
+ GError *error = NULL;
+ EkigaDBusComponent *obj;
+
+ bus = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
+ if (!bus) {
+ PTRACE (1, "Couldn't connect to session bus : " << error->message);
+ g_error_free (error);
+ return NULL;
+ }
+
+ obj = EKIGA_DBUS_COMPONENT (g_object_new (EKIGA_TYPE_DBUS_COMPONENT, NULL));
+ obj->priv->core = core;
+ dbus_g_connection_register_g_object (bus, EKIGA_DBUS_PATH, G_OBJECT (obj));
+
+ return obj;
+}
+
+static DBusGProxy *
+get_ekiga_client_proxy ()
+{
+ DBusGConnection *bus = NULL;
+ GError *error = NULL;
+
+ bus = dbus_g_bus_get (DBUS_BUS_SESSION, &error);
+ if (!bus) {
+ PTRACE (1, "Couldn't connect to session bus : " << error->message);
+ g_error_free (error);
+ return NULL;
+ }
+
+ return dbus_g_proxy_new_for_name (bus,
+ EKIGA_DBUS_NAMESPACE,
+ EKIGA_DBUS_PATH,
+ EKIGA_DBUS_INTERFACE);
+}
+
+/** Tell to a remote instance of Ekiga to connect to a remote SIP or H.323
+ * address.
+ * You will typically use this function when claim_ownership failed.
+ */
+void
+ekiga_dbus_client_connect (const gchar *uri)
+{
+ DBusGProxy *proxy = get_ekiga_client_proxy ();
+
+ g_return_if_fail (DBUS_IS_G_PROXY (proxy));
+
+ dbus_g_proxy_call_no_reply (proxy, "Call", G_TYPE_STRING, uri, G_TYPE_INVALID);
+ g_object_unref (proxy);
+}
+
+/** Tell to a remote instance of Ekiga to show the main window.
+ * You will typically use this function when claim_ownership failed.
+ */
+void
+ekiga_dbus_client_show ()
+{
+ DBusGProxy *proxy = get_ekiga_client_proxy ();
+
+ g_return_if_fail (DBUS_IS_G_PROXY (proxy));
+
+ dbus_g_proxy_call_no_reply (proxy, "Show", G_TYPE_INVALID);
+ g_object_unref (proxy);
+}
diff --git a/src/dbus-helper/dbus.h b/src/dbus-helper/dbus.h
new file mode 100644
index 0000000..18c68de
--- /dev/null
+++ b/src/dbus-helper/dbus.h
@@ -0,0 +1,75 @@
+
+/* Ekiga -- A VoIP and Video-Conferencing application
+ * Copyright (C) 2000-2009 Damien Sandras <dsandras seconix com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ *
+ * Ekiga is licensed under the GPL license and as a special exception,
+ * you have permission to link or otherwise combine this program with the
+ * programs OPAL, OpenH323 and PWLIB, and distribute the combination,
+ * without applying the requirements of the GNU GPL to the OPAL, OpenH323
+ * and PWLIB programs, as long as you do follow the requirements of the
+ * GNU GPL for all the rest of the software thus combined.
+ */
+
+
+/*
+ * dbus_component.h - description
+ * -----------------------------
+ * begin : Tue Nov 1 2005
+ * copyright : (c) 2005 by Julien Puydt
+ * (c) 2007 by Damien Sandras
+ * description : This files contains the interface to the DBUS
+ * interface of gnomemeeting.
+ *
+ */
+
+#ifndef __DBUS_COMPONENT_H
+#define __DBUS_COMPONENT_H
+
+#include <glib-object.h>
+#include "framework/services.h"
+
+G_BEGIN_DECLS
+
+#define EKIGA_TYPE_DBUS_COMPONENT (ekiga_dbus_component_get_type ())
+#define EKIGA_DBUS_COMPONENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EKIGA_TYPE_DBUS_COMPONENT, EkigaDBusComponent))
+#define EKIGA_DBUS_COMPONENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EKIGA_TYPE_DBUS_COMPONENT, EkigaDBusComponentClass))
+#define EKIGA_IS_DBUS_COMPONENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EKIGA_TYPE_DBUS_COMPONENT))
+#define EKIGA_IS_DBUS_COMPONENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EKIGA_TYPE_DBUS_COMPONENT))
+
+typedef struct _EkigaDBusComponentPrivate EkigaDBusComponentPrivate;
+typedef struct _EkigaDBusComponent EkigaDBusComponent;
+
+struct _EkigaDBusComponent {
+ GObject parent;
+ EkigaDBusComponentPrivate *priv;
+};
+
+typedef GObjectClass EkigaDBusComponentClass;
+
+GType ekiga_dbus_component_get_type ();
+EkigaDBusComponent *ekiga_dbus_component_new (Ekiga::ServiceCore *core);
+
+gboolean ekiga_dbus_claim_ownership ();
+
+void ekiga_dbus_client_show ();
+void ekiga_dbus_client_connect (const gchar *uri);
+
+G_END_DECLS
+
+#endif /* __DBUS_COMPONENT_H */
+/* ex:set ts=2 sw=2 et: */
diff --git a/src/dbus-helper/org.ekiga.Ekiga.service.in b/src/dbus-helper/org.ekiga.Ekiga.service.in
new file mode 100644
index 0000000..58681f6
--- /dev/null
+++ b/src/dbus-helper/org.ekiga.Ekiga.service.in
@@ -0,0 +1,3 @@
+[D-BUS Service]
+Name=org.ekiga.Ekiga
+Exec= bindir@/ekiga
diff --git a/src/dbus-helper/org.ekiga.Helper.service.in b/src/dbus-helper/org.ekiga.Helper.service.in
new file mode 100644
index 0000000..008af3c
--- /dev/null
+++ b/src/dbus-helper/org.ekiga.Helper.service.in
@@ -0,0 +1,3 @@
+[D-BUS Service]
+Name=org.ekiga.Helper
+Exec= bindir@/ekiga-helper
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]