diff options
Diffstat (limited to 'jackd/engine.c')
-rw-r--r-- | jackd/engine.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/jackd/engine.c b/jackd/engine.c index 26df2bd..b92051c 100644 --- a/jackd/engine.c +++ b/jackd/engine.c @@ -3038,6 +3038,7 @@ jack_deliver_event (jack_engine_t *engine, jack_client_internal_t *client, */ if (event->type == PropertyChange) { + if (keylen) { if (write (client->event_fd, key, keylen) != keylen) { jack_error ("cannot send property change key to client [%s] (%s)", client->control->name, @@ -3045,6 +3046,7 @@ jack_deliver_event (jack_engine_t *engine, jack_client_internal_t *client, client->error += JACK_ERROR_WITH_SOCKETS; jack_engine_signal_problems (engine); } + } } if (client->error) { @@ -4472,6 +4474,17 @@ next: req->x.port_info.port_id = port_id; + if (internal) { + /* set port order so clients can list ports in the proper order if + * there are more than 9 driver ports (since the lack of leading zeros + * breaks sorting by name) */ + char index_str[16]; + snprintf (index_str, sizeof(index_str), "%d", port_id); + jack_set_property (client, shared->uuid, + "http://jackaudio.org/metadata/order", index_str, + "http://www.w3.org/2001/XMLSchema#integer"); + } + return 0; } @@ -4670,8 +4683,8 @@ jack_port_rename_notify (jack_engine_t *engine, event.type = PortRename; event.y.other_id = port->shared->id; - snprintf (event.x.name, JACK_PORT_NAME_SIZE-1, old_name); - snprintf (event.z.other_name, JACK_PORT_NAME_SIZE-1, new_name); + snprintf (event.x.name, JACK_PORT_NAME_SIZE-1, "%s", old_name); + snprintf (event.z.other_name, JACK_PORT_NAME_SIZE-1, "%s", new_name); for (node = engine->clients; node; node = jack_slist_next (node)) { |