diff options
Diffstat (limited to 'daemon')
| -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>  | 
