Index: uspace/srv/audio/hound/audio_source.c
===================================================================
--- uspace/srv/audio/hound/audio_source.c	(revision 876f55613e8dd6d15775798211c6f619f0c533dc)
+++ uspace/srv/audio/hound/audio_source.c	(revision f0a647c33b26d6ebe92648fa0ec5818a7d799adb)
@@ -65,7 +65,4 @@
 	source->update_available_data = update_available_data;
 	source->format = *f;
-	source->available_data.base = NULL;
-	source->available_data.position = NULL;
-	source->available_data.size = 0;
 	log_verbose("Initialized source (%p) '%s'", source, source->name);
 	return EOK;
@@ -79,52 +76,4 @@
 }
 
-int audio_source_add_self(audio_source_t *source, void *buffer, size_t size,
-    const pcm_format_t *f)
-{
-	assert(source);
-	if (!buffer) {
-		log_debug("Non-existent buffer");
-		return EBADMEM;
-	}
-	if (!f || size == 0) {
-		log_debug("No format or zero size");
-	}
-	if (size % (pcm_sample_format_size(f->sample_format) * f->channels)) {
-		log_debug("Buffer does not fit integer number of frames");
-		return EINVAL;
-	}
-	if (source->format.sampling_rate != f->sampling_rate) {
-		log_debug("Resampling is not supported, yet");
-		return ENOTSUP;
-	}
-	const size_t src_frame_size = pcm_format_frame_size(&source->format);
-	const size_t dst_frames = size / pcm_format_frame_size(f);
-
-	if (source->available_data.position == NULL ||
-	    source->available_data.size == 0) {
-		int ret = EOVERFLOW; /* In fact this is underflow... */
-		if (source->update_available_data)
-			ret = source->update_available_data(source,
-			    dst_frames * src_frame_size);
-		if (ret != EOK) {
-			log_debug("No data to add to %p(%zu)", buffer, size);
-			return ret;
-		}
-	}
-
-	const int ret = pcm_format_convert_and_mix(buffer, size,
-	       source->available_data.position, source->available_data.size,
-	       &source->format, f);
-	if (ret != EOK) {
-		log_debug("Mixing failed %p <= %p, frames: %zu",
-		    buffer, source->available_data.position, dst_frames);
-		return ret;
-	}
-
-	source->available_data.position += (dst_frames * src_frame_size);
-	source->available_data.size -= (dst_frames * src_frame_size);
-	return EOK;
-}
-
 /**
  * @}
Index: uspace/srv/audio/hound/audio_source.h
===================================================================
--- uspace/srv/audio/hound/audio_source.h	(revision 876f55613e8dd6d15775798211c6f619f0c533dc)
+++ uspace/srv/audio/hound/audio_source.h	(revision f0a647c33b26d6ebe92648fa0ec5818a7d799adb)
@@ -40,5 +40,4 @@
 #include <pcm/format.h>
 
-struct audio_sink;
 typedef struct audio_source audio_source_t;
 
@@ -51,9 +50,4 @@
 	int (*connection_change)(audio_source_t *source, bool added);
 	int (*update_available_data)(audio_source_t *source, size_t size);
-	struct {
-		void *position;
-		void *base;
-		size_t size;
-	} available_data;
 };
 
@@ -68,7 +62,4 @@
     const pcm_format_t *f);
 void audio_source_fini(audio_source_t *source);
-//int audio_source_connected(audio_source_t *source, struct audio_sink *sink);
-int audio_source_add_self(audio_source_t *source, void *buffer, size_t size,
-    const pcm_format_t *f);
 static inline const pcm_format_t *audio_source_format(const audio_source_t *s)
 {
