[ekiga] Revert "Remove last bits of the unmaintained and obsolete dbus client component"



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]