diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2013-10-09 19:20:17 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2013-10-09 19:20:17 -0400 |
commit | 5ac41161882ecbfa4dc12b10ee93e7ff33844325 (patch) | |
tree | f9ab66652648f29cef3d12505dd8f50e00949845 /jackd | |
parent | 1d620ce9db995ae40c3eff5d5cde70c6a9de0d28 (diff) | |
download | jack1-5ac41161882ecbfa4dc12b10ee93e7ff33844325.tar.gz |
fix up issues with (a) delivery of buffer size changes to internal clients (b) incorrect memset() of an event in latency handling
Diffstat (limited to 'jackd')
-rw-r--r-- | jackd/clientengine.c | 1 | ||||
-rw-r--r-- | jackd/engine.c | 18 |
2 files changed, 11 insertions, 8 deletions
diff --git a/jackd/clientengine.c b/jackd/clientengine.c index 00eea7c..593af54 100644 --- a/jackd/clientengine.c +++ b/jackd/clientengine.c @@ -990,6 +990,7 @@ jack_client_activate (jack_engine_t *engine, jack_uuid_t id) } event.type = BufferSizeChange; + event.x.n = engine->control->buffer_size; jack_deliver_event (engine, client, &event); // send delayed notifications for ports. diff --git a/jackd/engine.c b/jackd/engine.c index 8931ef5..0de2c11 100644 --- a/jackd/engine.c +++ b/jackd/engine.c @@ -535,6 +535,7 @@ jack_driver_buffer_size (jack_engine_t *engine, jack_nframes_t nframes) } event.type = BufferSizeChange; + event.x.n = engine->control->buffer_size; jack_deliver_event_to_all (engine, &event); return 0; @@ -2908,7 +2909,7 @@ jack_notify_all_port_interested_clients (jack_engine_t *engine, jack_uuid_t src, int jack_deliver_event (jack_engine_t *engine, jack_client_internal_t *client, - jack_event_t *event, ...) + const jack_event_t *event, ...) { va_list ap; char status=0; @@ -2959,13 +2960,14 @@ jack_deliver_event (jack_engine_t *engine, jack_client_internal_t *client, break; case BufferSizeChange: - jack_client_fix_port_buffers - (client->private_client); + jack_client_fix_port_buffers (client->private_client); if (client->control->bufsize_cbset) { + if (event->x.n < 16) { + abort (); + } client->private_client->bufsize - (event->x.n, - client->private_client->bufsize_arg); + (event->x.n, client->private_client->bufsize_arg); } break; @@ -3479,13 +3481,13 @@ jack_compute_new_latency (jack_engine_t *engine) { JSList *node; JSList *reverse_list = NULL; - jack_event_t event; - event.type = LatencyCallback; - event.x.n = 0; VALGRIND_MEMSET (&event, 0, sizeof (event)); + event.type = LatencyCallback; + event.x.n = 0; + /* iterate over all clients in graph order, and emit * capture latency callback. * also builds up list in reverse graph order. |