Index: uspace/srv/audio/hound/iface.c
===================================================================
--- uspace/srv/audio/hound/iface.c	(revision 5ffcbaf8d1dd79e1d93f7124f3072eb6d9a496d4)
+++ uspace/srv/audio/hound/iface.c	(revision eafc7b211b6d8d50fb6bf149ad7a2812669569db)
@@ -71,5 +71,5 @@
 	hound_remove_ctx(server, ctx);
 	hound_ctx_destroy(ctx);
-	log_info("%s: %p, %d", __FUNCTION__, server, id);
+	log_info("%s: %p, %#x", __FUNCTION__, server, id);
 	return EOK;
 }
@@ -88,9 +88,11 @@
     const char *connection, int flags)
 {
-	log_info("%s: %p, %zu, %s, %u", __FUNCTION__, server, *size, connection, flags);
-	*list = malloc(sizeof(char *));
-	**list = str_dup("FOO SINK");
-	*size = 1;
-	return EOK;
+	log_info("%s: %p, %zu, %s, %#x\n", __FUNCTION__, server, *size,
+	    connection, flags);
+	if ((flags & (HOUND_SINK_DEVS | HOUND_SINK_APPS)) != 0)
+		return hound_list_sinks(server, list, size);
+	if ((flags & (HOUND_SOURCE_DEVS | HOUND_SOURCE_APPS)) != 0)
+		return hound_list_sources(server, list, size);
+	return ENOTSUP;
 }
 
@@ -98,5 +100,5 @@
 {
 	log_info("%s: %p, %s -> %s", __FUNCTION__, server, source, sink);
-	return ENOTSUP;
+	return hound_connect(server, source, sink);
 }
 
@@ -104,5 +106,5 @@
 {
 	log_info("%s: %p, %s -> %s", __FUNCTION__, server, source, sink);
-	return ENOTSUP;
+	return hound_disconnect(server, source, sink);
 }
 
