diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2006-10-26 16:17:13 +0000 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2006-10-26 16:17:13 +0000 |
commit | 9f8d1c90aab3dd84b6f0abc7bb726c0bc79c0f92 (patch) | |
tree | 1bd6ca6a0c123f1f8cc14dfc429df8f3a6f18dff | |
parent | d900a907a0c43e31b84ee5b9aabe5ab7a114052e (diff) |
Add skeleton for example echo service
-rw-r--r-- | daemon/Makefile.am | 15 | ||||
-rw-r--r-- | daemon/echo.c | 57 | ||||
-rw-r--r-- | daemon/service-agent.xml | 25 |
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> |