summaryrefslogtreecommitdiff
path: root/jackd/engine.c
diff options
context:
space:
mode:
Diffstat (limited to 'jackd/engine.c')
-rw-r--r--jackd/engine.c17
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)) {