diff options
| -rw-r--r-- | input/input-service.c | 29 | ||||
| -rw-r--r-- | input/input-service.h | 2 | ||||
| -rw-r--r-- | input/main.c | 3 | 
3 files changed, 34 insertions, 0 deletions
| diff --git a/input/input-service.c b/input/input-service.c index f5568bb4..11e060d2 100644 --- a/input/input-service.c +++ b/input/input-service.c @@ -1426,3 +1426,32 @@ void input_dbus_exit(void)  	dbus_connection_unref(connection);  } + +void internal_service(const char *identifier) +{ +	DBusMessage *msg, *reply; +	const char *name = "Input Service Debug", *desc = ""; + +	info("Registering service"); + +	msg = dbus_message_new_method_call("org.bluez", "/org/bluez", +				"org.bluez.Database", "RegisterService"); +	if (!msg) { +		error("Can't create service register method"); +		return; +	} + +	dbus_message_append_args(msg, DBUS_TYPE_STRING, &identifier, +				DBUS_TYPE_STRING, &name, +				DBUS_TYPE_STRING, &desc, DBUS_TYPE_INVALID); + +	reply = dbus_connection_send_with_reply_and_block(connection, msg, -1, NULL); +	if (!reply) { +		error("Can't register service"); +		return; +	} + +	dbus_message_unref(reply); + +	dbus_connection_flush(connection); +} diff --git a/input/input-service.h b/input/input-service.h index acda934d..179a02c5 100644 --- a/input/input-service.h +++ b/input/input-service.h @@ -27,4 +27,6 @@  int input_dbus_init(void);  void input_dbus_exit(void); +void internal_service(const char *identifier); +  #endif /* __INPUT_SERVICE_H */ diff --git a/input/main.c b/input/main.c index bb8759a7..340fc776 100644 --- a/input/main.c +++ b/input/main.c @@ -76,6 +76,9 @@ int main(int argc, char *argv[])  		exit(1);  	} +	if (argc > 1 && !strcmp(argv[1], "-s")) +		internal_service("input"); +  	server_start();  	g_main_loop_run(main_loop); | 
