PipeWire 1.3.81
Loading...
Searching...
No Matches
metadata.h
Go to the documentation of this file.
1/* PipeWire */
2/* SPDX-FileCopyrightText: Copyright © 2019 Wim Taymans */
3/* SPDX-License-Identifier: MIT */
4
5#ifndef PIPEWIRE_EXT_METADATA_H
6#define PIPEWIRE_EXT_METADATA_H
7
8#ifdef __cplusplus
9extern "C" {
10#endif
11
12#include <spa/utils/defs.h>
13
22#define PW_TYPE_INTERFACE_Metadata PW_TYPE_INFO_INTERFACE_BASE "Metadata"
23
24#define PW_METADATA_PERM_MASK PW_PERM_RWX
25
26#define PW_VERSION_METADATA 3
28
29#ifndef PW_API_METADATA_IMPL
30#define PW_API_METADATA_IMPL static inline
31#endif
32
33#define PW_EXTENSION_MODULE_METADATA PIPEWIRE_MODULE_PREFIX "module-metadata"
35#define PW_METADATA_EVENT_PROPERTY 0
36#define PW_METADATA_EVENT_NUM 1
37
38
40struct pw_metadata_events {
41#define PW_VERSION_METADATA_EVENTS 0
42 uint32_t version;
44 int (*property) (void *data,
45 uint32_t subject,
46 const char *key,
47 const char *type,
48 const char *value);
49};
50
51#define PW_METADATA_METHOD_ADD_LISTENER 0
52#define PW_METADATA_METHOD_SET_PROPERTY 1
53#define PW_METADATA_METHOD_CLEAR 2
54#define PW_METADATA_METHOD_NUM 3
58#define PW_VERSION_METADATA_METHODS 0
59 uint32_t version;
60
61 int (*add_listener) (void *object,
62 struct spa_hook *listener,
63 const struct pw_metadata_events *events,
64 void *data);
82 int (*set_property) (void *object,
83 uint32_t subject,
84 const char *key,
85 const char *type,
86 const char *value);
87
93 int (*clear) (void *object);
94};
95
99 struct spa_hook *listener,
100 const struct pw_metadata_events *events,
101 void *data)
102{
103 return spa_api_method_r(int, -ENOTSUP,
104 pw_metadata, (struct spa_interface*)object, add_listener, 0,
105 listener, events, data);
106}
110 uint32_t subject,
111 const char *key,
112 const char *type,
113 const char *value)
114{
115 return spa_api_method_r(int, -ENOTSUP,
116 pw_metadata, (struct spa_interface*)object, set_property, 0,
117 subject, key, type, value);
118}
122{
123 return spa_api_method_r(int, -ENOTSUP,
124 pw_metadata, (struct spa_interface*)object, clear, 0);
125}
126
127#define PW_KEY_METADATA_NAME "metadata.name"
128#define PW_KEY_METADATA_VALUES "metadata.values"
129
134#ifdef __cplusplus
135} /* extern "C" */
136#endif
137
138#endif /* PIPEWIRE_EXT_METADATA_H */
spa/utils/defs.h
PW_API_METADATA_IMPL int pw_metadata_set_property(struct pw_metadata *object, uint32_t subject, const char *key, const char *type, const char *value)
Set a metadata property.
Definition metadata.h:127
#define PW_API_METADATA_IMPL
Definition metadata.h:39
PW_API_METADATA_IMPL int pw_metadata_clear(struct pw_metadata *object)
Clear all metadata.
Definition metadata.h:139
PW_API_METADATA_IMPL int pw_metadata_add_listener(struct pw_metadata *object, struct spa_hook *listener, const struct pw_metadata_events *events, void *data)
Definition metadata.h:116
#define spa_api_method_r(rtype, def, type, o, method, version,...)
Definition hook.h:291
Metadata events
Definition metadata.h:52
uint32_t version
Definition metadata.h:55
int(* property)(void *data, uint32_t subject, const char *key, const char *type, const char *value)
Definition metadata.h:57
Metadata methods
Definition metadata.h:74
int(* clear)(void *object)
Clear all metadata.
Definition metadata.h:111
int(* add_listener)(void *object, struct spa_hook *listener, const struct pw_metadata_events *events, void *data)
Definition metadata.h:79
int(* set_property)(void *object, uint32_t subject, const char *key, const char *type, const char *value)
Set a metadata property.
Definition metadata.h:100
uint32_t version
Definition metadata.h:77
A hook, contains the structure with functions and the data passed to the functions.
Definition hook.h:427
Definition hook.h:148