Jack2 1.9.21

metadata.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2011-2014 David Robillard
3 Copyright (C) 2013 Paul Davis
4
5 This program is free software; you can redistribute it and/or modify it
6 under the terms of the GNU Lesser General Public License as published by
7 the Free Software Foundation; either version 2.1 of the License, or (at
8 your option) any later version.
9
10 This program is distributed in the hope that it will be useful, but WITHOUT
11 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
13 License for more details.
14
15 You should have received a copy of the GNU Lesser General Public License
16 along with this program; if not, write to the Free Software Foundation,
17 Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18*/
19
27#ifndef __jack_metadata_h__
28#define __jack_metadata_h__
29
30#include <jack/types.h>
31
32#ifdef __cplusplus
33 extern "C" {
34#endif
35
53 typedef struct {
55 const char* key;
56
58 const char* data;
59
77 const char* type;
78} jack_property_t;
79
91 int
92 jack_set_property(jack_client_t*,
93 jack_uuid_t subject,
94 const char* key,
95 const char* value,
96 const char* type);
97
111 int
112 jack_get_property(jack_uuid_t subject,
113 const char* key,
114 char** value,
115 char** type);
116
120 typedef struct {
121 jack_uuid_t subject;
122 uint32_t property_cnt;
123 jack_property_t* properties;
124 uint32_t property_size;
125} jack_description_t;
126
133 void
134 jack_free_description (jack_description_t* desc, int free_description_itself);
135
143 int
144 jack_get_properties (jack_uuid_t subject,
145 jack_description_t* desc);
146
154 int
155 jack_get_all_properties (jack_description_t** descs);
156
166 int jack_remove_property (jack_client_t* client, jack_uuid_t subject, const char* key);
167
176 int jack_remove_properties (jack_client_t* client, jack_uuid_t subject);
177
189 int jack_remove_all_properties (jack_client_t* client);
190
191 typedef enum {
192 PropertyCreated,
193 PropertyChanged,
194 PropertyDeleted
195} jack_property_change_t;
196
209 typedef void (*JackPropertyChangeCallback)(jack_uuid_t subject,
210 const char* key,
211 jack_property_change_t change,
212 void* arg);
213
224 int jack_set_property_change_callback (jack_client_t* client,
225 JackPropertyChangeCallback callback,
226 void* arg);
227
232 extern const char* JACK_METADATA_CONNECTED;
233
245 extern const char* JACK_METADATA_EVENT_TYPES;
246
252 extern const char* JACK_METADATA_HARDWARE;
253
259 extern const char* JACK_METADATA_ICON_LARGE;
260
270 extern const char* JACK_METADATA_ICON_NAME;
271
277 extern const char* JACK_METADATA_ICON_SMALL;
278
290 extern const char* JACK_METADATA_ORDER;
291
297 extern const char* JACK_METADATA_PRETTY_NAME;
298
301 extern const char* JACK_METADATA_PORT_GROUP;
302
312 extern const char* JACK_METADATA_SIGNAL_TYPE;
313
318#ifdef __cplusplus
319} /* namespace */
320#endif
321
322#endif /* __jack_metadata_h__ */
jack_get_property
int jack_get_property(jack_uuid_t subject, const char *key, char **value, char **type)
JackPropertyChangeCallback
void(* JackPropertyChangeCallback)(jack_uuid_t subject, const char *key, jack_property_change_t change, void *arg)
Definition: metadata.h:209
JACK_METADATA_SIGNAL_TYPE
const char * JACK_METADATA_SIGNAL_TYPE
jack_remove_all_properties
int jack_remove_all_properties(jack_client_t *client)
jack_get_all_properties
int jack_get_all_properties(jack_description_t **descs)
jack_get_properties
int jack_get_properties(jack_uuid_t subject, jack_description_t *desc)
JACK_METADATA_HARDWARE
const char * JACK_METADATA_HARDWARE
JACK_METADATA_PRETTY_NAME
const char * JACK_METADATA_PRETTY_NAME
jack_remove_properties
int jack_remove_properties(jack_client_t *client, jack_uuid_t subject)
JACK_METADATA_EVENT_TYPES
const char * JACK_METADATA_EVENT_TYPES
JACK_METADATA_ICON_SMALL
const char * JACK_METADATA_ICON_SMALL
JACK_METADATA_ORDER
const char * JACK_METADATA_ORDER
JACK_METADATA_CONNECTED
const char * JACK_METADATA_CONNECTED
jack_free_description
void jack_free_description(jack_description_t *desc, int free_description_itself)
JACK_METADATA_ICON_NAME
const char * JACK_METADATA_ICON_NAME
jack_remove_property
int jack_remove_property(jack_client_t *client, jack_uuid_t subject, const char *key)
JACK_METADATA_ICON_LARGE
const char * JACK_METADATA_ICON_LARGE
jack_set_property
int jack_set_property(jack_client_t *, jack_uuid_t subject, const char *key, const char *value, const char *type)
jack_set_property_change_callback
int jack_set_property_change_callback(jack_client_t *client, JackPropertyChangeCallback callback, void *arg)
jack_description_t
Definition: metadata.h:120
jack_description_t::subject
jack_uuid_t subject
Definition: metadata.h:121
jack_description_t::properties
jack_property_t * properties
Definition: metadata.h:123
jack_description_t::property_size
uint32_t property_size
Definition: metadata.h:124
jack_description_t::property_cnt
uint32_t property_cnt
Definition: metadata.h:122
jack_property_t
Definition: metadata.h:53
jack_property_t::type
const char * type
Definition: metadata.h:77
jack_property_t::key
const char * key
Definition: metadata.h:55
jack_property_t::data
const char * data
Definition: metadata.h:58