Index: uspace/app/wavplay/main.c
===================================================================
--- uspace/app/wavplay/main.c	(revision 7294b5beee98f9d703c3bd5df37d6954a88845c2)
+++ uspace/app/wavplay/main.c	(revision ec812219bbf6c421797accb12802d47001f5bcb3)
@@ -81,5 +81,5 @@
 	}
 
-	ret = hound_context_connect_target(hound, "default");
+	ret = hound_context_connect_target(hound, HOUND_DEFAULT_TARGET);
 	if (ret != EOK) {
 		printf("Failed to connect to default target: %s\n",
Index: uspace/lib/hound/include/hound/client.h
===================================================================
--- uspace/lib/hound/include/hound/client.h	(revision 7294b5beee98f9d703c3bd5df37d6954a88845c2)
+++ uspace/lib/hound/include/hound/client.h	(revision ec812219bbf6c421797accb12802d47001f5bcb3)
@@ -41,6 +41,7 @@
 #include <pcm/format.h>
 
-#define DEFAULT_SINK "default"
-#define DEFAULT_SOURCE "default"
+#define HOUND_DEFAULT_TARGET "default"
+#define HOUND_ALL_TARGETS "all"
+#define DEFAULT_SINK "default" //DEPRECATED
 
 typedef struct hound_context hound_context_t;
Index: uspace/lib/hound/src/client.c
===================================================================
--- uspace/lib/hound/src/client.c	(revision 7294b5beee98f9d703c3bd5df37d6954a88845c2)
+++ uspace/lib/hound/src/client.c	(revision ec812219bbf6c421797accb12802d47001f5bcb3)
@@ -160,10 +160,28 @@
 {
 	assert(hound);
-	if (hound->record)
-		return hound_service_connect_source_sink(
+	assert(target);
+
+	const char **tgt = NULL;
+	size_t count = 1;
+	int ret = EOK;
+	if (str_cmp(target, HOUND_DEFAULT_TARGET) == 0) {
+		ret = hound_context_get_available_targets(hound, &tgt, &count);
+		if (ret != EOK)
+			return ret;
+		target = tgt[0];
+	}
+	//TODO handle all-targets
+
+	if (hound->record) {
+		ret = hound_service_connect_source_sink(
 		    hound->session, target, hound->name);
-	else
-		return hound_service_connect_source_sink(
+	} else {
+		ret = hound_service_connect_source_sink(
 		    hound->session, hound->name, target);
+	}
+	if (tgt)
+		free(tgt[0]);
+	free(tgt);
+	return ret;
 }
 
@@ -171,10 +189,12 @@
 {
 	assert(hound);
-	if (hound->record)
+	assert(target);
+	if (hound->record) {
 		return hound_service_disconnect_source_sink(
 		    hound->session, target, hound->name);
-	else
+	} else {
 		return hound_service_disconnect_source_sink(
 		    hound->session, hound->name, target);
+	}
 }
 
