Index: uspace/lib/hound/src/protocol.c
===================================================================
--- uspace/lib/hound/src/protocol.c	(revision 059490c27c5feac3ad2bd31ed3a86c9aaa9eee97)
+++ uspace/lib/hound/src/protocol.c	(revision 504f1ea3f50f3bc6ccb462628723e8deff3baf60)
@@ -46,4 +46,14 @@
 #include "server.h"
 
+enum ipc_methods {
+	IPC_M_HOUND_CONTEXT_REGISTER = IPC_FIRST_USER_METHOD,
+	IPC_M_HOUND_CONTEXT_UNREGISTER,
+	IPC_M_HOUND_STREAM_START,
+	IPC_M_HOUND_STREAM_STOP,
+	IPC_M_HOUND_STREAM_DRAIN,
+	IPC_M_HOUND_STREAM_WRITE,
+	IPC_M_HOUND_STREAM_READ,
+};
+
 const char *HOUND_SERVICE = "audio/hound";
 
@@ -63,4 +73,54 @@
 		async_hangup(sess);
 }
+
+hound_context_id_t hound_service_register_context(hound_sess_t *sess,
+    const char *name)
+{
+	assert(sess);
+	assert(name);
+	async_exch_t *exch = async_exchange_begin(sess);
+	const int ret =
+	    async_req_1_0(exch, IPC_M_HOUND_CONTEXT_REGISTER, str_size(name));
+	//TODO send the string
+	async_exchange_end(exch);
+	return ret;
+}
+
+int hound_service_unregister_context(hound_sess_t *sess, hound_context_id_t id)
+{
+	assert(sess);
+	async_exch_t *exch = async_exchange_begin(sess);
+	const int ret =
+	    async_req_1_0(exch, IPC_M_HOUND_CONTEXT_UNREGISTER, id);
+	async_exchange_end(exch);
+	return ret;
+}
+
+int hound_service_stream_enter(async_exch_t *exch, hound_context_id_t id,
+    int flags, pcm_format_t format, size_t bsize)
+{
+	return ENOTSUP;
+}
+
+int hound_service_stream_exit(async_exch_t *exch)
+{
+	return ENOTSUP;
+}
+
+int hound_service_stream_drain(async_exch_t *exch)
+{
+	return ENOTSUP;
+}
+
+int hound_service_stream_write(async_exch_t *exch, const void *data, size_t size)
+{
+	return ENOTSUP;
+}
+
+int hound_service_stream_read(async_exch_t *exch, void *data, size_t size)
+{
+	return ENOTSUP;
+}
+
 
 /***
Index: uspace/lib/hound/src/protocol.h
===================================================================
--- uspace/lib/hound/src/protocol.h	(revision 059490c27c5feac3ad2bd31ed3a86c9aaa9eee97)
+++ uspace/lib/hound/src/protocol.h	(revision 504f1ea3f50f3bc6ccb462628723e8deff3baf60)
@@ -44,5 +44,4 @@
 typedef async_sess_t hound_sess_t;
 typedef int hound_context_id_t;
-typedef int hound_stream_id_t;
 
 hound_sess_t *hound_service_connect(const char *service);
@@ -51,15 +50,13 @@
 hound_context_id_t hound_service_register_context(hound_sess_t *sess,
     const char *name);
-int hound_service_unregister_context(hound_sess_t *sess);
+int hound_service_unregister_context(hound_sess_t *sess, hound_context_id_t id);
 
-hound_stream_id_t hound_service_stream_add(hound_sess_t *sess, int flags,
-    pcm_format_t format, size_t bsize);
-int hound_service_stream_remove(hound_sess_t *sess, hound_stream_id_t);
-int hound_service_stream_drain(hound_sess_t *sess, hound_stream_id_t);
+int hound_service_stream_enter(async_exch_t *exch, hound_context_id_t id,
+    int flags, pcm_format_t format, size_t bsize);
+int hound_service_stream_drain(async_exch_t *exch);
+int hound_service_stream_exit(async_exch_t *exch);
 
-int hound_service_stream_write(async_exch_t *exch, hound_stream_id_t,
-    const void *data, size_t size);
-int hound_service_stream_read(async_exch_t *exch, hound_stream_id_t,
-    void *data, size_t size);
+int hound_service_stream_write(async_exch_t *exch, const void *data, size_t size);
+int hound_service_stream_read(async_exch_t *exch, void *data, size_t size);
 
 
