Browse Source

set up property change notification structures and calls

tags/0.124.0
Paul Davis 12 years ago
parent
commit
dee55cbc07
4 changed files with 24 additions and 5 deletions
  1. +9
    -1
      include/internal.h
  2. +1
    -0
      jackd/clientengine.c
  3. +2
    -0
      libjack/local.h
  4. +12
    -4
      libjack/metadata.c

+ 9
- 1
include/internal.h View File

@@ -59,6 +59,7 @@ extern void jack_info (const char *fmt, ...);
#include <jack/transport.h>
#include <jack/session.h>
#include <jack/thread.h>
#include <jack/metadata.h>

#include "port.h"

@@ -221,7 +222,8 @@ typedef enum {
ClientRegistered,
ClientUnregistered,
SaveSession,
LatencyCallback
LatencyCallback,
PropertyCallback
} JackEventType;

const char* jack_event_type_name (JackEventType);
@@ -233,12 +235,17 @@ typedef struct {
char name[JACK_PORT_NAME_SIZE];
jack_port_id_t port_id;
jack_port_id_t self_id;
jack_uuid_t property_owner;
} x;
union {
uint32_t n;
jack_port_type_id_t ptid;
jack_port_id_t other_id;
uint32_t key_size; /* key data will follow the event structure */
} y;
union {
jack_property_change_t property_change;
} z;
} POST_PACKED_STRUCTURE jack_event_t;

typedef enum {
@@ -301,6 +308,7 @@ typedef volatile struct {
volatile uint8_t thread_cb_cbset;
volatile uint8_t session_cbset;
volatile uint8_t latency_cbset;
volatile uint8_t property_cbset;

} POST_PACKED_STRUCTURE jack_client_control_t;



+ 1
- 0
jackd/clientengine.c View File

@@ -609,6 +609,7 @@ jack_setup_client_control (jack_engine_t *engine, int fd, ClientType type, const
client->control->client_register_cbset = FALSE;
client->control->thread_cb_cbset = FALSE;
client->control->session_cbset = FALSE;
client->control->property_cbset = FALSE;

#if 0
if (type != ClientExternal) {


+ 2
- 0
libjack/local.h View File

@@ -77,6 +77,8 @@ struct _jack_client {
void *session_cb_arg;
JackLatencyCallback latency_cb;
void *latency_cb_arg;
JackPropertyChangeCallback property_cb;
void *property_cb_arg;

/* external clients: set by libjack
* internal clients: set by engine */


+ 12
- 4
libjack/metadata.c View File

@@ -24,6 +24,7 @@
#include <jack/uuid.h>

#include "internal.h"
#include "local.h"

static DB* db = NULL;

@@ -374,11 +375,18 @@ jack_get_all_descriptions (jack_description_t** descs)
return 0;
}

int jack_set_property_change_callback (jack_client_t* client,
JackPropertyChangeCallback callback,
void *arg)
int
jack_set_property_change_callback (jack_client_t *client,
JackPropertyChangeCallback callback, void *arg)
{
return 0;
if (client->control->active) {
jack_error ("You cannot set callbacks on an active client.");
return -1;
}
client->property_cb = callback;
client->property_cb_arg = arg;
client->control->property_cbset = (callback != NULL);
return 0;
}

int


Loading…
Cancel
Save