summaryrefslogtreecommitdiff
path: root/jackd
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2013-10-09 19:20:17 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2013-10-09 19:20:17 -0400
commit5ac41161882ecbfa4dc12b10ee93e7ff33844325 (patch)
treef9ab66652648f29cef3d12505dd8f50e00949845 /jackd
parent1d620ce9db995ae40c3eff5d5cde70c6a9de0d28 (diff)
downloadjack1-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.c1
-rw-r--r--jackd/engine.c18
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.