Browse Source

add flags to jack_session_event_t and session_command_t

tags/0.120.1
Torben Hohn 16 years ago
parent
commit
992f3bf639
4 changed files with 19 additions and 0 deletions
  1. +1
    -0
      jack/internal.h
  2. +1
    -0
      jack/session.h
  3. +8
    -0
      jackd/engine.c
  4. +9
    -0
      libjack/client.c

+ 1
- 0
jack/internal.h View File

@@ -259,6 +259,7 @@ typedef volatile struct {
volatile jack_client_state_t state; /* w: engine and client r: engine */
volatile char name[JACK_CLIENT_NAME_SIZE];
volatile char session_command[JACK_PORT_NAME_SIZE];
volatile jack_session_flags_t session_flags;
volatile ClientType type; /* w: engine r: engine and client */
volatile int8_t active; /* w: engine r: engine and client */
volatile int8_t dead; /* r/w: engine */


+ 1
- 0
jack/session.h View File

@@ -164,6 +164,7 @@ typedef struct {
const char *uuid;
const char *client_name;
const char *command;
jack_session_flags_t flags;
} jack_session_command_t;

/**


+ 8
- 0
jackd/engine.c View File

@@ -2644,6 +2644,14 @@ static int jack_send_session_reply ( jack_engine_t *engine, jack_client_internal
engine->session_reply_fd, strerror (errno));
return -1;
}
if (write (engine->session_reply_fd, & client->control->session_flags,
sizeof (client->control->session_flags))
< (ssize_t) sizeof (client->control->session_flags)) {
jack_error ("cannot write SessionNotify result "
"to client via fd = %d (%s)",
engine->session_reply_fd, strerror (errno));
return -1;
}

return 0;
}


+ 9
- 0
libjack/client.c View File

@@ -1346,6 +1346,7 @@ jack_session_reply (jack_client_t *client, jack_session_event_t *event )
snprintf ((char *)client->control->session_command,
sizeof(client->control->session_command),
"%s", event->command_line);
client->control->session_flags = event->flags;

free (event->command_line);
} else {
@@ -1382,6 +1383,8 @@ jack_session_commands_free (jack_session_command_t *cmds)
free ((char *)cmds[i].uuid);
else
break;

i += 1;
}

free(cmds);
@@ -1449,6 +1452,12 @@ jack_session_notify (jack_client_t* client, const char *target, jack_session_eve
" server (%s)", request.type, strerror (errno));
goto out;
}
if (read (client->request_fd, & retval[num_replies-1].flags, sizeof(retval[num_replies-1].flags) )
!= sizeof(retval[num_replies-1].flags) ) {
jack_error ("cannot read result for request type %d from"
" server (%s)", request.type, strerror (errno));
goto out;
}
snprintf( (char *)retval[num_replies-1].uuid, 16, "%d", uid );
}
free((char *)retval[num_replies-1].uuid);


Loading…
Cancel
Save