summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2006-10-26 16:17:13 +0000
committerMarcel Holtmann <marcel@holtmann.org>2006-10-26 16:17:13 +0000
commit9f8d1c90aab3dd84b6f0abc7bb726c0bc79c0f92 (patch)
tree1bd6ca6a0c123f1f8cc14dfc429df8f3a6f18dff
parentd900a907a0c43e31b84ee5b9aabe5ab7a114052e (diff)
Add skeleton for example echo service
-rw-r--r--daemon/Makefile.am15
-rw-r--r--daemon/echo.c57
-rw-r--r--daemon/service-agent.xml25
3 files changed, 96 insertions, 1 deletions
diff --git a/daemon/Makefile.am b/daemon/Makefile.am
index 6d5bf02d..51855d7b 100644
--- a/daemon/Makefile.am
+++ b/daemon/Makefile.am
@@ -1,14 +1,27 @@
if GLIB
-noinst_PROGRAMS = bluetoothd
+noinst_PROGRAMS = bluetoothd bt.echod
bluetoothd_SOURCES = main.c
bluetoothd_LDADD = @GLIB_LIBS@ @BLUEZ_LIBS@ $(top_builddir)/common/libhelper.a
+bt_echod_SOURCES = echo.c
+
+bt_echod_LDADD = @GLIB_LIBS@ @BLUEZ_LIBS@
+
AM_CFLAGS = @BLUEZ_CFLAGS@ @GLIB_CFLAGS@
INCLUDES = -I$(top_srcdir)/common
+
+BUILT_SOURCES = service-agent-glue.h
+
+CLEANFILES = $(BUILT_SOURCES)
endif
+EXTRA_DIST = service-agent.xml
+
MAINTAINERCLEANFILES = Makefile.in
+
+service-agent-glue.h: service-agent.xml
+ $(DBUS_BINDING_TOOL) --prefix=service_agent --mode=glib-server --output=$@ $(srcdir)/$<
diff --git a/daemon/echo.c b/daemon/echo.c
new file mode 100644
index 00000000..fab835ce
--- /dev/null
+++ b/daemon/echo.c
@@ -0,0 +1,57 @@
+/*
+ *
+ * BlueZ - Bluetooth protocol stack for Linux
+ *
+ * Copyright (C) 2005-2006 Marcel Holtmann <marcel@holtmann.org>
+ *
+ *
+ * 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
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <errno.h>
+#include <stdlib.h>
+
+#include <dbus/dbus-glib.h>
+
+int main(int argc, char *argv[])
+{
+ GMainLoop *mainloop;
+ DBusGConnection *conn;
+ GError *error = NULL;
+
+ g_type_init();
+
+ mainloop = g_main_loop_new(NULL, FALSE);
+
+ conn = dbus_g_bus_get(DBUS_BUS_SYSTEM, &error);
+ if (error != NULL) {
+ g_printerr("Connecting to system bus failed: %s\n",
+ error->message);
+ g_error_free(error);
+ exit(EXIT_FAILURE);
+ }
+
+ g_main_loop_run(mainloop);
+
+ dbus_g_connection_unref(conn);
+
+ return 0;
+}
diff --git a/daemon/service-agent.xml b/daemon/service-agent.xml
new file mode 100644
index 00000000..cbd57c23
--- /dev/null
+++ b/daemon/service-agent.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<node name="/">
+ <interface name="org.bluez.ServiceAgent">
+ <method name="Interfaces">
+ <arg type="as" direction="out"/>
+ </method>
+
+ <method name="Start">
+ <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+ </method>
+
+ <method name="Stop">
+ <annotation name="org.freedesktop.DBus.GLib.Async" value=""/>
+ </method>
+
+ <method name="Record">
+ <arg type="s" direction="out"/>
+ </method>
+
+ <method name="Release">
+ </method>
+
+ </interface>
+</node>