-int pa_simple_read(struct pa_simple *s, void*data, size_t length, int *perror) {
- assert(0);
+static void read_callback(struct pa_stream *s, const void*data, size_t length, void *userdata) {
+ struct pa_simple *p = userdata;
+ assert(s && data && length && p);
+
+ if (p->read_data) {
+ fprintf(stderr, __FILE__": Buffer overflow, dropping incoming memory blocks.\n");
+ free(p->read_data);
+ }
+
+ p->read_data = malloc(p->read_length = length);
+ assert(p->read_data);
+ memcpy(p->read_data, data, length);
+ p->read_index = 0;