#include "sourceoutput.h"
#include "protocol-simple.h"
#include "client.h"
+#include "sample-util.h"
struct connection {
struct protocol_simple *protocol;
return -1;
}
- chunk.memblock->length = r;
- chunk.length = r;
+ chunk.memblock->length = chunk.length = r;
chunk.index = 0;
assert(c->input_memblockq);
memblockq_push(c->input_memblockq, &chunk, 0);
memblock_unref(chunk.memblock);
+ assert(c->sink_input);
sink_notify(c->sink_input->sink);
return 0;
/*** sink_input callbacks ***/
static int sink_input_peek_cb(struct sink_input *i, struct memchunk *chunk) {
- struct connection*c = i->userdata;
- assert(i && c && chunk);
-
+ struct connection*c;
+ assert(i && i->userdata && chunk);
+ c = i->userdata;
+
if (memblockq_peek(c->input_memblockq, chunk) < 0)
return -1;
static uint32_t sink_input_get_latency_cb(struct sink_input *i) {
struct connection*c = i->userdata;
assert(i && c);
- return samples_usec(memblockq_get_length(c->input_memblockq), &DEFAULT_SAMPLE_SPEC);
+ return pa_samples_usec(memblockq_get_length(c->input_memblockq), &c->sink_input->sample_spec);
}
/*** source_output callbacks ***/
static void on_connection(struct socket_server*s, struct iochannel *io, void *userdata) {
struct protocol_simple *p = userdata;
struct connection *c = NULL;
+ char cname[256];
assert(s && io && p);
c = malloc(sizeof(struct connection));
c->input_memblockq = c->output_memblockq = NULL;
c->protocol = p;
- c->client = client_new(p->core, "SIMPLE", "Client");
+ iochannel_peer_to_string(io, cname, sizeof(cname));
+ c->client = client_new(p->core, "SIMPLE", cname);
assert(c->client);
c->client->kill = client_kill_cb;
c->client->userdata = c;
c->source_output->kill = source_output_kill_cb;
c->source_output->userdata = c;
- l = 5*bytes_per_second(&DEFAULT_SAMPLE_SPEC); /* 5s */
- c->output_memblockq = memblockq_new(l, sample_size(&DEFAULT_SAMPLE_SPEC), l/2);
+ l = 5*pa_bytes_per_second(&DEFAULT_SAMPLE_SPEC); /* 5s */
+ c->output_memblockq = memblockq_new(l, pa_sample_size(&DEFAULT_SAMPLE_SPEC), l/2);
}
if (p->mode & PROTOCOL_SIMPLE_PLAYBACK) {
c->sink_input->get_latency = sink_input_get_latency_cb;
c->sink_input->userdata = c;
- l = bytes_per_second(&DEFAULT_SAMPLE_SPEC)/2; /* half a second */
- c->input_memblockq = memblockq_new(l, sample_size(&DEFAULT_SAMPLE_SPEC), l/2);
+ l = pa_bytes_per_second(&DEFAULT_SAMPLE_SPEC)/2; /* half a second */
+ c->input_memblockq = memblockq_new(l, pa_sample_size(&DEFAULT_SAMPLE_SPEC), l/2);
}