PipeWire  0.1.5
introspect.h
Go to the documentation of this file.
1 /* PipeWire
2  * Copyright (C) 2015 Wim Taymans <wim.taymans@gmail.com>
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Library General Public
6  * License as published by the Free Software Foundation; either
7  * version 2 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Library General Public License for more details.
13  *
14  * You should have received a copy of the GNU Library General Public
15  * License along with this library; if not, write to the
16  * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
17  * Boston, MA 02110-1301, USA.
18  */
19 
20 #ifndef __PIPEWIRE_INTROSPECT_H__
21 #define __PIPEWIRE_INTROSPECT_H__
22 
23 #include <spa/defs.h>
24 #include <spa/format.h>
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
30 #include <pipewire/properties.h>
31 
41 };
42 
44 const char * pw_node_state_as_string(enum pw_node_state state);
45 
48  PW_DIRECTION_INPUT = SPA_DIRECTION_INPUT,
49  PW_DIRECTION_OUTPUT = SPA_DIRECTION_OUTPUT
50 };
51 
53 const char * pw_direction_as_string(enum pw_direction direction);
54 
64 };
65 
67 const char * pw_link_state_as_string(enum pw_link_state state);
68 
76 struct pw_core_info {
77  uint32_t id;
78 #define PW_CORE_CHANGE_MASK_USER_NAME (1 << 0)
79 #define PW_CORE_CHANGE_MASK_HOST_NAME (1 << 1)
80 #define PW_CORE_CHANGE_MASK_VERSION (1 << 2)
81 #define PW_CORE_CHANGE_MASK_NAME (1 << 3)
82 #define PW_CORE_CHANGE_MASK_COOKIE (1 << 4)
83 #define PW_CORE_CHANGE_MASK_PROPS (1 << 5)
84 #define PW_CORE_CHANGE_MASK_ALL (~0)
85  uint64_t change_mask;
86  const char *user_name;
87  const char *host_name;
88  const char *version;
89  const char *name;
90  uint32_t cookie;
91  struct spa_dict *props;
92 };
93 
95 struct pw_core_info *
97  const struct pw_core_info *update);
98 
100 void pw_core_info_free(struct pw_core_info *info);
101 
104  uint32_t id;
105 #define PW_MODULE_CHANGE_MASK_NAME (1 << 0)
106 #define PW_MODULE_CHANGE_MASK_FILENAME (1 << 1)
107 #define PW_MODULE_CHANGE_MASK_ARGS (1 << 2)
108 #define PW_MODULE_CHANGE_MASK_PROPS (1 << 3)
109  uint64_t change_mask;
110  const char *name;
111  const char *filename;
112  const char *args;
113  struct spa_dict *props;
114 };
115 
117 struct pw_module_info *
119  const struct pw_module_info *update);
120 
122 void pw_module_info_free(struct pw_module_info *info);
123 
126  uint32_t id;
127 #define PW_CLIENT_CHANGE_MASK_PROPS (1 << 0)
128  uint64_t change_mask;
129  struct spa_dict *props;
130 };
131 
133 struct pw_client_info *
135  const struct pw_client_info *update);
136 
138 void pw_client_info_free(struct pw_client_info *info);
139 
140 
142 struct pw_node_info {
143  uint32_t id;
144 #define PW_NODE_CHANGE_MASK_NAME (1 << 0)
145 #define PW_NODE_CHANGE_MASK_INPUT_PORTS (1 << 1)
146 #define PW_NODE_CHANGE_MASK_INPUT_FORMATS (1 << 2)
147 #define PW_NODE_CHANGE_MASK_OUTPUT_PORTS (1 << 3)
148 #define PW_NODE_CHANGE_MASK_OUTPUT_FORMATS (1 << 4)
149 #define PW_NODE_CHANGE_MASK_STATE (1 << 5)
150 #define PW_NODE_CHANGE_MASK_PROPS (1 << 6)
151  uint64_t change_mask;
152  const char *name;
153  uint32_t max_input_ports;
154  uint32_t n_input_ports;
155  uint32_t n_input_formats;
156  struct spa_format **input_formats;
157  uint32_t max_output_ports;
158  uint32_t n_output_ports;
159  uint32_t n_output_formats;
160  struct spa_format **output_formats;
161  enum pw_node_state state;
162  const char *error;
163  struct spa_dict *props;
164 };
165 
166 struct pw_node_info *
167 pw_node_info_update(struct pw_node_info *info,
168  const struct pw_node_info *update);
169 
170 void
171 pw_node_info_free(struct pw_node_info *info);
172 
175  uint32_t id;
176  const char *name;
177  uint32_t type;
178  uint32_t version;
179 #define PW_FACTORY_CHANGE_MASK_PROPS (1 << 0)
180  uint64_t change_mask;
181  struct spa_dict *props;
182 };
183 
184 struct pw_factory_info *
186  const struct pw_factory_info *update);
187 
188 void
190 
192 struct pw_link_info {
193  uint32_t id;
194 #define PW_LINK_CHANGE_MASK_OUTPUT (1 << 0)
195 #define PW_LINK_CHANGE_MASK_INPUT (1 << 1)
196 #define PW_LINK_CHANGE_MASK_FORMAT (1 << 2)
197 #define PW_LINK_CHANGE_MASK_PROPS (1 << 3)
198  uint64_t change_mask;
199  uint32_t output_node_id;
200  uint32_t output_port_id;
201  uint32_t input_node_id;
202  uint32_t input_port_id;
203  struct spa_format *format;
204  struct spa_dict *props;
205 };
206 
207 struct pw_link_info *
208 pw_link_info_update(struct pw_link_info *info,
209  const struct pw_link_info *update);
210 
211 void
212 pw_link_info_free(struct pw_link_info *info);
213 
214 #ifdef __cplusplus
215 }
216 #endif
217 
218 #endif /* __PIPEWIRE_INTROSPECT_H__ */
struct spa_format ** input_formats
array of input formats
Definition: introspect.h:156
const char * filename
filename of the module
Definition: introspect.h:111
struct pw_core_info * pw_core_info_update(struct pw_core_info *info, const struct pw_core_info *update)
Definition: introspect.c:118
the node is running but there is no active port
Definition: introspect.h:38
struct spa_format ** output_formats
array of output formats
Definition: introspect.h:160
struct spa_dict * props
extra properties
Definition: introspect.h:91
uint32_t n_input_ports
number of inputs
Definition: introspect.h:154
void pw_core_info_free(struct pw_core_info *info)
Definition: introspect.c:162
the link is unlinked
Definition: introspect.h:58
uint64_t change_mask
bitfield of changed fields since last call
Definition: introspect.h:85
pw_node_state
The different node states.
Definition: introspect.h:33
void pw_client_info_free(struct pw_client_info *info)
Definition: introspect.c:385
uint64_t change_mask
bitfield of changed fields since last call
Definition: introspect.h:109
const char * host_name
name of the machine the core is running on
Definition: introspect.h:87
const char * args
arguments passed to the module
Definition: introspect.h:112
uint32_t max_output_ports
maximum number of outputs
Definition: introspect.h:157
the link is initialized
Definition: introspect.h:59
uint32_t version
version of the objects
Definition: introspect.h:178
struct spa_dict * props
the properties of the factory
Definition: introspect.h:181
uint32_t cookie
a random cookie for identifying this instance of PipeWire
Definition: introspect.h:90
uint32_t id
id of the global
Definition: introspect.h:77
pw_link_state
The different link states.
Definition: introspect.h:56
The core information.
Definition: introspect.h:76
const char * name
name the factory
Definition: introspect.h:176
uint32_t id
id of the global
Definition: introspect.h:126
uint64_t change_mask
bitfield of changed fields since last call
Definition: introspect.h:180
const char * version
version of the core
Definition: introspect.h:88
void pw_module_info_free(struct pw_module_info *info)
Definition: introspect.c:349
const char * name
name the node, suitable for display
Definition: introspect.h:152
an input port direction
Definition: introspect.h:48
uint32_t n_output_ports
number of outputs
Definition: introspect.h:158
the link is paused
Definition: introspect.h:62
const char * pw_node_state_as_string(enum pw_node_state state)
Convert a pw_node_state to a readable string.
Definition: introspect.c:26
struct spa_dict * props
extra properties
Definition: introspect.h:129
the node is running
Definition: introspect.h:40
void pw_factory_info_free(struct pw_factory_info *info)
Definition: introspect.c:303
the link is negotiating formats
Definition: introspect.h:60
uint32_t n_input_formats
number of input formats
Definition: introspect.h:155
uint32_t id
id of the global
Definition: introspect.h:143
const char * user_name
name of the user that started the core
Definition: introspect.h:86
The client information.
Definition: introspect.h:125
uint64_t change_mask
bitfield of changed fields since last call
Definition: introspect.h:128
the link is running
Definition: introspect.h:63
struct spa_dict * props
the properties of the node
Definition: introspect.h:163
the link is allocating buffers
Definition: introspect.h:61
struct spa_dict * props
extra properties
Definition: introspect.h:113
uint32_t max_input_ports
maximum number of inputs
Definition: introspect.h:153
the link is in error
Definition: introspect.h:57
uint32_t n_output_formats
number of output formats
Definition: introspect.h:159
struct pw_factory_info * pw_factory_info_update(struct pw_factory_info *info, const struct pw_factory_info *update)
Definition: introspect.c:276
The factory information.
Definition: introspect.h:174
The module information.
Definition: introspect.h:103
void pw_node_info_free(struct pw_node_info *info)
Definition: introspect.c:253
uint64_t change_mask
bitfield of changed fields since last call
Definition: introspect.h:151
struct pw_node_info * pw_node_info_update(struct pw_node_info *info, const struct pw_node_info *update)
Definition: introspect.c:177
struct pw_link_info * pw_link_info_update(struct pw_link_info *info, const struct pw_link_info *update)
Definition: introspect.c:392
void pw_link_info_free(struct pw_link_info *info)
Definition: introspect.c:422
uint32_t type
type of the factory
Definition: introspect.h:177
error state
Definition: introspect.h:34
the node is suspended, the device might be closed
Definition: introspect.h:36
uint32_t id
id of the global
Definition: introspect.h:175
an output port direction
Definition: introspect.h:49
the node is being created
Definition: introspect.h:35
uint32_t id
id of the global
Definition: introspect.h:104
struct pw_client_info * pw_client_info_update(struct pw_client_info *info, const struct pw_client_info *update)
Definition: introspect.c:363
The node information.
Definition: introspect.h:142
const char * pw_direction_as_string(enum pw_direction direction)
Convert a pw_direction to a readable string.
Definition: introspect.c:43
const char * name
name of the core
Definition: introspect.h:89
pw_direction
The direction of a port.
Definition: introspect.h:47
const char * name
name of the module
Definition: introspect.h:110
struct pw_module_info * pw_module_info_update(struct pw_module_info *info, const struct pw_module_info *update)
Definition: introspect.c:312
const char * error
an error reason if state is error
Definition: introspect.h:162