[devdocsgjs/revert-9231215c] Revert "Update for GNOME 41"
- From: Andy Holmes <andyholmes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [devdocsgjs/revert-9231215c] Revert "Update for GNOME 41"
- Date: Tue, 14 Dec 2021 21:22:20 +0000 (UTC)
commit 52bef32275dddcf38eb035523d54a5c92465e2d8
Author: Andy Holmes <andyholmes gnome org>
Date: Tue Dec 14 21:22:19 2021 +0000
Revert "Update for GNOME 41"
This reverts commit 9231215c9041d8416ccd297f00158796eddfe9af
Dockerfile | 23 +-
assets/javascripts/gnome_news.json | 4 -
assets/stylesheets/global/_icons.scss | 6 -
lib/docs/scrapers/gnome/girs/Wp-0.3.gir | 14331 ++++
lib/docs/scrapers/gnome/girs/mutter-8/Cally-8.gir | 1128 -
.../scrapers/gnome/girs/mutter-8/Clutter-8.gir | 72892 -------------------
.../scrapers/gnome/girs/mutter-8/ClutterX11-8.gir | 315 -
lib/docs/scrapers/gnome/girs/mutter-8/Cogl-8.gir | 13813 ----
.../scrapers/gnome/girs/mutter-8/CoglPango-8.gir | 377 -
lib/docs/scrapers/gnome/girs/mutter-8/Meta-8.gir | 15958 ----
10 files changed, 14341 insertions(+), 104506 deletions(-)
---
diff --git a/Dockerfile b/Dockerfile
index 0303e4d8..596630bb 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,5 +1,5 @@
# We bump this each release to fetch the latest stable GIRs
-FROM fedora:35 AS fetch
+FROM fedora:34 AS fetch
RUN dnf install -y \
NetworkManager-libnm-devel cairo-devel cheese-libs-devel \
@@ -16,8 +16,7 @@ RUN dnf install -y \
libgxps-devel libhandy1-devel libnotify-devel libpeas-devel \
librsvg2-devel libsecret-devel libzapojit-devel mutter pango-devel \
polkit-devel poppler-glib-devel rest-devel telepathy-glib-devel \
- tracker-devel udisks-devel upower-devel vte{,291}-devel \
- wireplumber-devel && \
+ tracker-devel udisks-devel upower-devel vte{,291}-devel && \
dnf clean all && \
rm -rf /var/cache/yum
@@ -28,20 +27,20 @@ FROM fedora:33 AS build
# These are GIRs from the fetch step
COPY --from=fetch /usr/share/gir-1.0 /usr/share/gir-1.0
COPY --from=fetch /usr/share/gnome-shell /usr/share/gnome-shell
-COPY --from=fetch /usr/lib64/mutter-9 /usr/lib64/mutter-9
+COPY --from=fetch /usr/lib64/mutter-8 /usr/lib64/mutter-8
# These are extra GIRs we can't install with dnf
COPY lib/docs/scrapers/gnome/girs/GtkosxApplication-1.0.gir /usr/share/gir-1.0/
COPY lib/docs/scrapers/gnome/girs/Tracker-2.0.gir /usr/share/gir-1.0/
COPY lib/docs/scrapers/gnome/girs/TrackerControl-2.0.gir /usr/share/gir-1.0/
COPY lib/docs/scrapers/gnome/girs/TrackerMiner-2.0.gir /usr/share/gir-1.0/
+COPY lib/docs/scrapers/gnome/girs/Wp-0.3.gir /usr/share/gir-1.0/
COPY lib/docs/scrapers/gnome/girs/mutter-3 /usr/lib64/mutter-3
COPY lib/docs/scrapers/gnome/girs/mutter-4 /usr/lib64/mutter-4
COPY lib/docs/scrapers/gnome/girs/mutter-5 /usr/lib64/mutter-5
COPY lib/docs/scrapers/gnome/girs/mutter-6 /usr/lib64/mutter-6
COPY lib/docs/scrapers/gnome/girs/mutter-7 /usr/lib64/mutter-7
-COPY lib/docs/scrapers/gnome/girs/mutter-8 /usr/lib64/mutter-8
# Install devdocs dependencies
RUN dnf install -y glibc-langpack-en
@@ -71,7 +70,6 @@ RUN bundle exec thor gir:generate_all /usr/lib64/mutter-5
RUN bundle exec thor gir:generate_all /usr/lib64/mutter-6
RUN bundle exec thor gir:generate_all /usr/lib64/mutter-7
RUN bundle exec thor gir:generate_all /usr/lib64/mutter-8
-RUN bundle exec thor gir:generate_all /usr/lib64/mutter-9
# Some of the gnome-shell GIRs need extra include paths
RUN bundle exec thor gir:generate /usr/share/gnome-shell/Gvc-1.0.gir
@@ -84,9 +82,9 @@ RUN bundle exec thor gir:generate /usr/share/gnome-shell/St-1.0.gir --include /u
# dbus10, dbusglib10, fontconfig20, freetype220, gdkpixdata20, gl10, libxml220,
# win3210, xfixes40, xft20, xlib20, xrandr13
RUN for docset in appindicator301 appstreamglib10 atk10 atspi20 cairo10 \
- cally10 cally9 camel12 champlain012 cheese30 clutter10 clutter9 \
- cluttergdk10 cluttergst30 clutterx1110 clutterx119 cogl10 cogl20 cogl9 \
- coglpango10 coglpango20 coglpango9 dbusmenu04 ebook12 ebookcontacts12 \
+ cally10 cally8 camel12 champlain012 cheese30 clutter10 clutter8 \
+ cluttergdk10 cluttergst30 clutterx1110 clutterx118 cogl10 cogl20 cogl8 \
+ coglpango10 coglpango20 coglpango8 dbusmenu04 ebook12 ebookcontacts12 \
edataserver12 edataserverui12 evincedocument30 evinceview30 folks06 \
folksdummy06 folkseds06 folkstelepathy06 gcab10 gck1 gcr3 gcrui3 \
gda50 gdata00 gdesktopenums30 gdk20 gdk30 gdk40 gdkpixbuf20 gdkx1120 \
@@ -99,18 +97,17 @@ RUN for docset in appindicator301 appstreamglib10 atk10 atspi20 cairo10 \
gstvideo10 gstvulkan10 gstwebrtc10 gtk20 gtk30 gtk40 gtkchamplain012 \
gtkclutter10 gtkosxapplication10 gtksource30 gtksource40 gudev10 \
gupnp10 gupnpdlna20 gupnpdlnagst20 gvc10 gweather30 gxps01 handy1 \
- ibus10 javascriptcore40 json10 keybinder30 meta9 nm10 notify07 pango10 \
+ ibus10 javascriptcore40 json10 keybinder30 meta8 nm10 notify07 pango10 \
pangocairo10 pangoft210 pangoxft10 peas10 peasgtk10 polkit10 \
polkitagent10 poppler018 rest07 restextras07 rsvg20 secret1 shell01 \
soup24 soupgnome24 st10 telepathyglib012 tracker20 tracker30 \
trackercontrol20 trackerminer20 upowerglib10 vte00 vte291 webkit240 \
- webkit2webextension40 wp04 zpj00 \
+ webkit2webextension40 wp03 zpj00 \
cally3 clutter3 clutterx113 cogl3 coglpango3 meta3 \
cally4 clutter4 clutterx114 cogl4 coglpango4 meta4 \
cally5 clutter5 clutterx115 cogl5 coglpango5 meta5 \
cally6 clutter6 clutterx116 cogl6 coglpango6 meta6 \
- cally7 clutter7 clutterx117 cogl7 coglpango7 meta7 \
- cally8 clutter8 clutterx118 cogl8 coglpango8 meta8; \
+ cally7 clutter7 clutterx117 cogl7 coglpango7 meta7; \
do echo $docset; bundle exec thor docs:generate $docset --force; done
diff --git a/assets/javascripts/gnome_news.json b/assets/javascripts/gnome_news.json
index febd38fb..70d23dc7 100644
--- a/assets/javascripts/gnome_news.json
+++ b/assets/javascripts/gnome_news.json
@@ -1,8 +1,4 @@
[
- [
- "2021-10-31",
- "New documentations: <a href='/cally9/'>Cally 9</a> (Mutter version), <a href='/clutter9/'>Clutter 9</a>
(Mutter version), <a href='/clutterx119/'>ClutterX11 9</a> (Mutter version), <a href='/cogl9/'>Cogl 9</a>
(Mutter version), <a href='/coglpango9/'>CoglPango 9</a> (Mutter version), <a href='/meta9/'>Mutter 9</a>"
- ],
[
"2021-09-05",
"New documentations: <a href='/gtksource40/'>GtkSourceView 4</a>"
diff --git a/assets/stylesheets/global/_icons.scss b/assets/stylesheets/global/_icons.scss
index 057d0f91..8d6b9c74 100644
--- a/assets/stylesheets/global/_icons.scss
+++ b/assets/stylesheets/global/_icons.scss
@@ -208,7 +208,6 @@ convert public/icons/docs/{appstream,cairo,champlain,cheese,clutter,evince,evolu
._icon-cally6:before,
._icon-cally7:before,
._icon-cally8:before,
-._icon-cally9:before,
._icon-clutter10:before,
._icon-clutter3:before,
._icon-clutter4:before,
@@ -216,7 +215,6 @@ convert public/icons/docs/{appstream,cairo,champlain,cheese,clutter,evince,evolu
._icon-clutter6:before,
._icon-clutter7:before,
._icon-clutter8:before,
-._icon-clutter9:before,
._icon-cluttergdk10:before,
._icon-cluttergst20:before,
._icon-cluttergst30:before,
@@ -227,7 +225,6 @@ convert public/icons/docs/{appstream,cairo,champlain,cheese,clutter,evince,evolu
._icon-clutterx116:before,
._icon-clutterx117:before,
._icon-clutterx118:before,
-._icon-clutterx119:before,
._icon-cogl10:before,
._icon-cogl20:before,
._icon-cogl3:before,
@@ -236,7 +233,6 @@ convert public/icons/docs/{appstream,cairo,champlain,cheese,clutter,evince,evolu
._icon-cogl6:before,
._icon-cogl7:before,
._icon-cogl8:before,
-._icon-cogl9:before,
._icon-coglpango10:before,
._icon-coglpango20:before,
._icon-coglpango3:before,
@@ -245,7 +241,6 @@ convert public/icons/docs/{appstream,cairo,champlain,cheese,clutter,evince,evolu
._icon-coglpango6:before,
._icon-coglpango7:before,
._icon-coglpango8:before,
-._icon-coglpango9:before,
._icon-gtkclutter10:before { @extend %gnome-icons; background-position: -4rem 0; }
._icon-evincedocument30:before,
._icon-evinceview30:before { @extend %gnome-icons; background-position: -5rem 0; }
@@ -323,7 +318,6 @@ convert public/icons/docs/{appstream,cairo,champlain,cheese,clutter,evince,evolu
._icon-meta6:before,
._icon-meta7:before,
._icon-meta8:before,
-._icon-meta9:before,
._icon-notify07:before,
._icon-pango10:before,
._icon-pangocairo10:before,
diff --git a/lib/docs/scrapers/gnome/girs/Wp-0.3.gir b/lib/docs/scrapers/gnome/girs/Wp-0.3.gir
new file mode 100644
index 00000000..20cb3167
--- /dev/null
+++ b/lib/docs/scrapers/gnome/girs/Wp-0.3.gir
@@ -0,0 +1,14331 @@
+<?xml version="1.0"?>
+<!-- This file was automatically generated from C sources - DO NOT EDIT!
+To affect the contents of this file, edit the original C definitions,
+and/or use gtk-doc annotations. -->
+<repository version="1.2"
+ xmlns="http://www.gtk.org/introspection/core/1.0"
+ xmlns:c="http://www.gtk.org/introspection/c/1.0"
+ xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
+ <include name="GLib" version="2.0"/>
+ <include name="GObject" version="2.0"/>
+ <include name="Gio" version="2.0"/>
+ <namespace name="Wp"
+ version="0.3"
+ shared-library="libwireplumber-0.3.so.0"
+ c:identifier-prefixes="Wp"
+ c:symbol-prefixes="wp">
+ <class name="Client"
+ c:symbol-prefix="client"
+ c:type="WpClient"
+ parent="Proxy"
+ glib:type-name="WpClient"
+ glib:get-type="wp_client_get_type"
+ glib:type-struct="ClientClass">
+ <source-position filename="../lib/wp/client.h" line="25"/>
+ <method name="update_permissions"
+ c:identifier="wp_client_update_permissions"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/client.c"
+ line="105">Update client's permissions on a list of objects. An object id of `-1`
+can be used to set the default object permissions for this client</doc>
+ <source-position filename="../lib/wp/client.h" line="28"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/client.c"
+ line="107">the client</doc>
+ <type name="Client" c:type="WpClient*"/>
+ </instance-parameter>
+ <parameter name="n_perm" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/client.c"
+ line="108">the number of permissions specified in the variable arguments</doc>
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="..." transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/client.c"
+ line="109">@n_perm pairs of #guint32 numbers; the first number is the object id
+ and the second is the permissions that this client should have
+ on this object</doc>
+ <varargs/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="update_permissions_array"
+ c:identifier="wp_client_update_permissions_array"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/client.c"
+ line="133">Update client's permissions on a list of objects. An object id of `-1`
+can be used to set the default object permissions for this client</doc>
+ <source-position filename="../lib/wp/client.h" line="31"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/client.c"
+ line="135">the client</doc>
+ <type name="Client" c:type="WpClient*"/>
+ </instance-parameter>
+ <parameter name="n_perm" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/client.c"
+ line="136">the number of permissions specified in the @permissions array</doc>
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="permissions" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/client.c"
+ line="137">an array
+ of permissions per object id</doc>
+ <array length="0"
+ zero-terminated="0"
+ c:type="const pw_permission*">
+ <type c:type="pw_permission"/>
+ </array>
+ </parameter>
+ </parameters>
+ </method>
+ </class>
+ <record name="ClientClass"
+ c:type="WpClientClass"
+ glib:is-gtype-struct-for="Client">
+ <source-position filename="../lib/wp/client.h" line="25"/>
+ <field name="parent_class">
+ <type name="ProxyClass" c:type="WpProxyClass"/>
+ </field>
+ </record>
+ <interface name="ConfigParser"
+ c:symbol-prefix="config_parser"
+ c:type="WpConfigParser"
+ glib:type-name="WpConfigParser"
+ glib:get-type="wp_config_parser_get_type"
+ glib:type-struct="ConfigParserInterface">
+ <source-position filename="../lib/wp/configuration.h" line="41"/>
+ <virtual-method name="add_file" invoker="add_file">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="36">Adds the file at @location on the parser and parses all the information
+from it, making it available to the code that needs this configuration</doc>
+ <source-position filename="../lib/wp/configuration.h" line="38"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="44">%TRUE on success, %FALSE if an error occurred</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="38">the parser</doc>
+ <type name="ConfigParser" c:type="WpConfigParser*"/>
+ </instance-parameter>
+ <parameter name="location" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="39">path to a configuration file</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_matched_data" invoker="get_matched_data">
+ <source-position filename="../lib/wp/configuration.h" line="39"/>
+ <return-value transfer-ownership="none" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="60">the matched data</doc>
+ <type name="gpointer" c:type="gconstpointer"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="57">the parser</doc>
+ <type name="ConfigParser" c:type="WpConfigParser*"/>
+ </instance-parameter>
+ <parameter name="data"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="58">implementation-specific data</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="reset" invoker="reset">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="71">Resets the state of the parser</doc>
+ <source-position filename="../lib/wp/configuration.h" line="40"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="73">the parser</doc>
+ <type name="ConfigParser" c:type="WpConfigParser*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <method name="add_file" c:identifier="wp_config_parser_add_file">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="36">Adds the file at @location on the parser and parses all the information
+from it, making it available to the code that needs this configuration</doc>
+ <source-position filename="../lib/wp/configuration.h" line="44"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="44">%TRUE on success, %FALSE if an error occurred</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="38">the parser</doc>
+ <type name="ConfigParser" c:type="WpConfigParser*"/>
+ </instance-parameter>
+ <parameter name="location" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="39">path to a configuration file</doc>
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_matched_data"
+ c:identifier="wp_config_parser_get_matched_data">
+ <source-position filename="../lib/wp/configuration.h" line="47"/>
+ <return-value transfer-ownership="none" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="60">the matched data</doc>
+ <type name="gpointer" c:type="gconstpointer"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="57">the parser</doc>
+ <type name="ConfigParser" c:type="WpConfigParser*"/>
+ </instance-parameter>
+ <parameter name="data"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="58">implementation-specific data</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="reset" c:identifier="wp_config_parser_reset">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="71">Resets the state of the parser</doc>
+ <source-position filename="../lib/wp/configuration.h" line="51"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="73">the parser</doc>
+ <type name="ConfigParser" c:type="WpConfigParser*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ </interface>
+ <record name="ConfigParserInterface"
+ c:type="WpConfigParserInterface"
+ glib:is-gtype-struct-for="ConfigParser">
+ <source-position filename="../lib/wp/configuration.h" line="41"/>
+ <field name="parent">
+ <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+ </field>
+ <field name="add_file">
+ <callback name="add_file">
+ <source-position filename="../lib/wp/configuration.h" line="38"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="44">%TRUE on success, %FALSE if an error occurred</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="38">the parser</doc>
+ <type name="ConfigParser" c:type="WpConfigParser*"/>
+ </parameter>
+ <parameter name="location" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="39">path to a configuration file</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_matched_data">
+ <callback name="get_matched_data">
+ <source-position filename="../lib/wp/configuration.h" line="39"/>
+ <return-value transfer-ownership="none" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="60">the matched data</doc>
+ <type name="gpointer" c:type="gconstpointer"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="57">the parser</doc>
+ <type name="ConfigParser" c:type="WpConfigParser*"/>
+ </parameter>
+ <parameter name="data"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="58">implementation-specific data</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="reset">
+ <callback name="reset">
+ <source-position filename="../lib/wp/configuration.h" line="40"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="73">the parser</doc>
+ <type name="ConfigParser" c:type="WpConfigParser*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ </record>
+ <class name="Configuration"
+ c:symbol-prefix="configuration"
+ c:type="WpConfiguration"
+ parent="GObject.Object"
+ glib:type-name="WpConfiguration"
+ glib:get-type="wp_configuration_get_type"
+ glib:type-struct="ConfigurationClass">
+ <source-position filename="../lib/wp/configuration.h" line="62"/>
+ <function name="get_instance"
+ c:identifier="wp_configuration_get_instance">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="115">Retrieves (and creates, the first time) the instance of #WpConfiguration
+that is registered on the specified @core</doc>
+ <source-position filename="../lib/wp/configuration.h" line="66"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="122">the @core-specific instance of #WpConfiguration</doc>
+ <type name="Configuration" c:type="WpConfiguration*"/>
+ </return-value>
+ <parameters>
+ <parameter name="core" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="117">the core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <method name="add_extension"
+ c:identifier="wp_configuration_add_extension">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="197">Creates a parser and associates it with the specified filename @extension.
+All configuration files that match this extension will, upon calling
+wp_configuration_reload(), be added to this parser</doc>
+ <source-position filename="../lib/wp/configuration.h" line="75"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="207">%TRUE if the extension is new, %FALSE if it was already added
+ or an error occurred</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="199">the configuration</doc>
+ <type name="Configuration" c:type="WpConfiguration*"/>
+ </instance-parameter>
+ <parameter name="extension" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="200">a filename extension</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="parser_type" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="201">a type that implements the #WpConfigParser interface</doc>
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_path" c:identifier="wp_configuration_add_path">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="142">Adds the specified @path in the list of directories that are being
+searched for configuration files. All files in this directory that
+have a known extension to this #WpConfiguration instance will be parsed
+and made available through their #WpConfigParser</doc>
+ <source-position filename="../lib/wp/configuration.h" line="69"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="144">the configuration</doc>
+ <type name="Configuration" c:type="WpConfiguration*"/>
+ </instance-parameter>
+ <parameter name="path" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="145">path to a directory that contains configuration files</doc>
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_parser" c:identifier="wp_configuration_get_parser">
+ <source-position filename="../lib/wp/configuration.h" line="83"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="251">the parser associated with @extension</doc>
+ <type name="ConfigParser" c:type="WpConfigParser*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="247">the configuration</doc>
+ <type name="Configuration" c:type="WpConfiguration*"/>
+ </instance-parameter>
+ <parameter name="extension" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="248">a filename extension that was previously associated with a
+ parser using wp_configuration_add_extension()</doc>
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="reload" c:identifier="wp_configuration_reload">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="264">Resets the parser associated with @extension and re-adds (and re-parses)
+all the configuration files that have this @extension from all the
+directories that were added with wp_configuration_add_path()</doc>
+ <source-position filename="../lib/wp/configuration.h" line="87"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="266">the configuration</doc>
+ <type name="Configuration" c:type="WpConfiguration*"/>
+ </instance-parameter>
+ <parameter name="extension" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="267">a filename extension that was previously associated with a
+ parser using wp_configuration_add_extension()</doc>
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="remove_extension"
+ c:identifier="wp_configuration_remove_extension">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="225">Removes the association of @extension to a parser and destroys the parser</doc>
+ <source-position filename="../lib/wp/configuration.h" line="79"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="233">%TRUE if the extension was indeed removed,
+ %FALSE if it was not added</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="227">the configuration</doc>
+ <type name="Configuration" c:type="WpConfiguration*"/>
+ </instance-parameter>
+ <parameter name="extension" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="228">a filename extension that was previously associated with a
+ parser using wp_configuration_add_extension()</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="remove_path" c:identifier="wp_configuration_remove_path">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="169">Removes the specified @path from the list of directories that are being
+searched for configuration files</doc>
+ <source-position filename="../lib/wp/configuration.h" line="72"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="171">the configuration</doc>
+ <type name="Configuration" c:type="WpConfiguration*"/>
+ </instance-parameter>
+ <parameter name="path" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/configuration.c"
+ line="172">path to a directory that was previously added with
+ wp_configuration_add_path()</doc>
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ </parameters>
+ </method>
+ </class>
+ <record name="ConfigurationClass"
+ c:type="WpConfigurationClass"
+ glib:is-gtype-struct-for="Configuration">
+ <source-position filename="../lib/wp/configuration.h" line="62"/>
+ <field name="parent_class">
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+ </field>
+ </record>
+ <enumeration name="ConstraintType"
+ glib:type-name="WpConstraintType"
+ glib:get-type="wp_constraint_type_get_type"
+ c:type="WpConstraintType">
+ <member name="none"
+ value="0"
+ c:identifier="WP_CONSTRAINT_TYPE_NONE"
+ glib:nick="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.h"
+ line="20">invalid constraint type</doc>
+ </member>
+ <member name="pw_global_property"
+ value="1"
+ c:identifier="WP_CONSTRAINT_TYPE_PW_GLOBAL_PROPERTY"
+ glib:nick="pw-global-property">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.h"
+ line="21">constraint applies
+ to a PipeWire global property of the object (the ones returned by
+ wp_proxy_get_global_properties())</doc>
+ </member>
+ <member name="pw_property"
+ value="2"
+ c:identifier="WP_CONSTRAINT_TYPE_PW_PROPERTY"
+ glib:nick="pw-property">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.h"
+ line="24">constraint applies
+ to a PipeWire property of the object (the ones returned by
+ wp_proxy_get_properties())</doc>
+ </member>
+ <member name="g_property"
+ value="3"
+ c:identifier="WP_CONSTRAINT_TYPE_G_PROPERTY"
+ glib:nick="g-property">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.h"
+ line="27">constraint applies to a #GObject
+ property of the object</doc>
+ </member>
+ </enumeration>
+ <enumeration name="ConstraintVerb"
+ glib:type-name="WpConstraintVerb"
+ glib:get-type="wp_constraint_verb_get_type"
+ c:type="WpConstraintVerb">
+ <member name="equals"
+ value="61"
+ c:identifier="WP_CONSTRAINT_VERB_EQUALS"
+ glib:nick="equals">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.h"
+ line="39">`=` the subject's value must equal the
+ constraint's value</doc>
+ </member>
+ <member name="in_list"
+ value="99"
+ c:identifier="WP_CONSTRAINT_VERB_IN_LIST"
+ glib:nick="in-list">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.h"
+ line="41">`c` the subject's value must equal at least
+ one of the values in the list given as the constraint's value</doc>
+ </member>
+ <member name="in_range"
+ value="126"
+ c:identifier="WP_CONSTRAINT_VERB_IN_RANGE"
+ glib:nick="in-range">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.h"
+ line="43">`~` the subject's value must be a number
+ in the range defined by the constraint's value</doc>
+ </member>
+ <member name="matches"
+ value="35"
+ c:identifier="WP_CONSTRAINT_VERB_MATCHES"
+ glib:nick="matches">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.h"
+ line="45">`#` the subject's value must match the
+ pattern specified in the constraint's value</doc>
+ </member>
+ <member name="is_present"
+ value="43"
+ c:identifier="WP_CONSTRAINT_VERB_IS_PRESENT"
+ glib:nick="is-present">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.h"
+ line="47">`+` the subject property must exist</doc>
+ </member>
+ <member name="is_absent"
+ value="45"
+ c:identifier="WP_CONSTRAINT_VERB_IS_ABSENT"
+ glib:nick="is-absent">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.h"
+ line="48">`-` the subject property must not exist</doc>
+ </member>
+ </enumeration>
+ <class name="Core"
+ c:symbol-prefix="core"
+ c:type="WpCore"
+ parent="GObject.Object"
+ glib:type-name="WpCore"
+ glib:get-type="wp_core_get_type"
+ glib:type-struct="CoreClass">
+ <source-position filename="../lib/wp/core.h" line="23"/>
+ <constructor name="new" c:identifier="wp_core_new">
+ <source-position filename="../lib/wp/core.h" line="28"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="410">a new #WpCore</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </return-value>
+ <parameters>
+ <parameter name="context"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="406">the #GMainContext to use for events</doc>
+ <type name="GLib.MainContext" c:type="GMainContext*"/>
+ </parameter>
+ <parameter name="properties"
+ transfer-ownership="full"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="407">additional properties, which are
+ passed to `pw_context_new` and `pw_context_connect`</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="clone" c:identifier="wp_core_clone">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="423">Clones a core with the same context as @self</doc>
+ <source-position filename="../lib/wp/core.h" line="31"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="429">the clone #WpCore</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="425">the core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="connect" c:identifier="wp_core_connect">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="482">Connects this core to the PipeWire server. When connection succeeds,
+the #WpCore::connected signal is emitted</doc>
+ <source-position filename="../lib/wp/core.h" line="45"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="489">%TRUE if the core is effectively connected or %FALSE if
+ connection failed</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="484">the core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="disconnect" c:identifier="wp_core_disconnect">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="520">Disconnects this core from the PipeWire server. This also effectively
+destroys all #WpProxy objects that were created through the registry,
+destroys the `pw_core` and finally emits the #WpCore::disconnected signal.</doc>
+ <source-position filename="../lib/wp/core.h" line="48"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="522">the core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_g_main_context"
+ c:identifier="wp_core_get_g_main_context">
+ <source-position filename="../lib/wp/core.h" line="34"/>
+ <return-value transfer-ownership="none" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="445">the #GMainContext that is in use by
+ this core for events</doc>
+ <type name="GLib.MainContext" c:type="GMainContext*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="443">the core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_properties" c:identifier="wp_core_get_properties">
+ <source-position filename="../lib/wp/core.h" line="74"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="651">the properties of @self</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="649">the core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_pw_context" c:identifier="wp_core_get_pw_context">
+ <source-position filename="../lib/wp/core.h" line="37"/>
+ <return-value transfer-ownership="none" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="459">the internal `pw_context` object</doc>
+ <type name="gpointer" c:type="pw_context*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="457">the core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_pw_core" c:identifier="wp_core_get_pw_core">
+ <source-position filename="../lib/wp/core.h" line="40"/>
+ <return-value transfer-ownership="none" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="472">the internal `pw_core` object,
+ or %NULL if the core is not connected to PipeWire</doc>
+ <type name="gpointer" c:type="pw_core*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="470">the core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_remote_cookie"
+ c:identifier="wp_core_get_remote_cookie">
+ <source-position filename="../lib/wp/core.h" line="56"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="556">The cookie of the PipeWire instance that @self is connected to.
+ The cookie is a unique random number for identifying an instance of
+ PipeWire</doc>
+ <type name="guint32" c:type="guint32"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="554">the core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_remote_host_name"
+ c:identifier="wp_core_get_remote_host_name">
+ <source-position filename="../lib/wp/core.h" line="65"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="604">The name of the host where the PipeWire instance that
+ @self is connected to is running on</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="602">the core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_remote_name" c:identifier="wp_core_get_remote_name">
+ <source-position filename="../lib/wp/core.h" line="59"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="573">The name of the PipeWire instance that @self is connected to</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="571">the core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_remote_properties"
+ c:identifier="wp_core_get_remote_properties">
+ <source-position filename="../lib/wp/core.h" line="71"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="635">the properties of the PipeWire instance that
+ @self is connected to</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="633">the core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_remote_user_name"
+ c:identifier="wp_core_get_remote_user_name">
+ <source-position filename="../lib/wp/core.h" line="62"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="588">The name of the user that started the PipeWire instance that
+ @self is connected to</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="586">the core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_remote_version"
+ c:identifier="wp_core_get_remote_version">
+ <source-position filename="../lib/wp/core.h" line="68"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="620">The version of the PipeWire instance that @self is connected to</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="618">the core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="idle_add"
+ c:identifier="wp_core_idle_add"
+ shadowed-by="idle_add_closure">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="708">Adds an idle callback to be called in the same #GMainContext as the
+one used by this core. This is essentially the same as g_idle_add_full(),
+but it adds the created #GSource on the #GMainContext used by this core
+instead of the default context.</doc>
+ <source-position filename="../lib/wp/core.h" line="82"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="710">the core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </instance-parameter>
+ <parameter name="source"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="711">the source</doc>
+ <type name="GLib.Source" c:type="GSource**"/>
+ </parameter>
+ <parameter name="function"
+ transfer-ownership="none"
+ scope="notified"
+ closure="2"
+ destroy="3">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="712">the function to call</doc>
+ <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
+ </parameter>
+ <parameter name="data"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="713">data to pass to @function</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ <parameter name="destroy"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1"
+ scope="async">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="714">a function to destroy @data</doc>
+ <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="idle_add_closure"
+ c:identifier="wp_core_idle_add_closure"
+ shadows="idle_add">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="737">Adds an idle callback to be called in the same #GMainContext as the
+one used by this core.
+
+This is the same as wp_core_idle_add(), but it allows you to specify
+a #GClosure instead of a C callback.</doc>
+ <source-position filename="../lib/wp/core.h" line="86"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="739">the core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </instance-parameter>
+ <parameter name="source"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="740">the source</doc>
+ <type name="GLib.Source" c:type="GSource**"/>
+ </parameter>
+ <parameter name="closure" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="741">the closure to invoke</doc>
+ <type name="GObject.Closure" c:type="GClosure*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="install_object_manager"
+ c:identifier="wp_core_install_object_manager">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="1192">Installs the object manager on this core, activating its internal management
+engine. This will immediately emit signals about objects added on @om
+if objects that the @om is interested in were in existence already.</doc>
+ <source-position filename="../lib/wp/core.h" line="108"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="1194">the core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </instance-parameter>
+ <parameter name="om" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="1195">a #WpObjectManager</doc>
+ <type name="ObjectManager" c:type="WpObjectManager*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="is_connected" c:identifier="wp_core_is_connected">
+ <source-position filename="../lib/wp/core.h" line="51"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="543">%TRUE if the core is connected to PipeWire, %FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="541">the core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="sync" c:identifier="wp_core_sync">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="828">Asks the PipeWire server to call the @callback via an event.
+
+Since methods are handled in-order and events are delivered
+in-order, this can be used as a barrier to ensure all previous
+methods and the resulting events have been handled.
+
+In both success and error cases, @callback is always called. Use
+wp_core_sync_finish() from within the @callback to determine whether
+the operation completed successfully or if an error occurred.</doc>
+ <source-position filename="../lib/wp/core.h" line="98"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="845">%TRUE if the sync operation was started, %FALSE if an error
+ occurred before returning from this function</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="830">the core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </instance-parameter>
+ <parameter name="cancellable"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="831">a #GCancellable to cancel the operation</doc>
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="callback"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1"
+ scope="async"
+ closure="2">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="832">a function to call when the operation is done</doc>
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="user_data"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="833">data to pass to @callback</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="sync_finish" c:identifier="wp_core_sync_finish" throws="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="882">This function is meant to be called from within the callback of
+wp_core_sync() in order to determine the success or failure of the operation.</doc>
+ <source-position filename="../lib/wp/core.h" line="102"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="891">%TRUE if the operation succeeded, %FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="884">the core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </instance-parameter>
+ <parameter name="res" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="885">a #GAsyncResult</doc>
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="timeout_add"
+ c:identifier="wp_core_timeout_add"
+ shadowed-by="timeout_add_closure">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="765">Adds a timeout callback to be called at regular intervals in the same
+#GMainContext as the one used by this core. The function is called repeatedly
+until it returns FALSE, at which point the timeout is automatically destroyed
+and the function will not be called again. The first call to the function
+will be at the end of the first interval. This is essentially the same as
+g_timeout_add_full(), but it adds the created #GSource on the #GMainContext
+used by this core instead of the default context.</doc>
+ <source-position filename="../lib/wp/core.h" line="90"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="767">the core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </instance-parameter>
+ <parameter name="source"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="768">the source</doc>
+ <type name="GLib.Source" c:type="GSource**"/>
+ </parameter>
+ <parameter name="timeout_ms" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="769">the timeout in milliseconds</doc>
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="function"
+ transfer-ownership="none"
+ scope="notified"
+ closure="3"
+ destroy="4">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="770">the function to call</doc>
+ <type name="GLib.SourceFunc" c:type="GSourceFunc"/>
+ </parameter>
+ <parameter name="data"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="771">data to pass to @function</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ <parameter name="destroy"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1"
+ scope="async">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="772">a function to destroy @data</doc>
+ <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="timeout_add_closure"
+ c:identifier="wp_core_timeout_add_closure"
+ shadows="timeout_add">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="798">Adds a timeout callback to be called at regular intervals in the same
+#GMainContext as the one used by this core.
+
+This is the same as wp_core_timeout_add(), but it allows you to specify
+a #GClosure instead of a C callback.</doc>
+ <source-position filename="../lib/wp/core.h" line="94"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="800">the core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </instance-parameter>
+ <parameter name="source"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="801">the source</doc>
+ <type name="GLib.Source" c:type="GSource**"/>
+ </parameter>
+ <parameter name="timeout_ms" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="802">the timeout in milliseconds</doc>
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="closure" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="803">the closure to invoke</doc>
+ <type name="GObject.Closure" c:type="GClosure*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="update_properties"
+ c:identifier="wp_core_update_properties">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="677">Updates the properties of @self on the connection, making them appear on
+the client object that represents this connection.
+
+If @self is not connected yet, these properties are stored and passed to
+`pw_context_connect` when connecting.</doc>
+ <source-position filename="../lib/wp/core.h" line="77"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="679">the core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </instance-parameter>
+ <parameter name="updates" transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="680">updates to apply to the properties of @self;
+ this does not need to include properties that have not changed</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <property name="g-main-context"
+ writable="1"
+ construct-only="1"
+ transfer-ownership="none">
+ <type name="GLib.MainContext"/>
+ </property>
+ <property name="properties"
+ writable="1"
+ construct-only="1"
+ transfer-ownership="none">
+ <type name="Properties"/>
+ </property>
+ <property name="pw-context"
+ writable="1"
+ construct-only="1"
+ transfer-ownership="none">
+ <type name="gpointer" c:type="gpointer"/>
+ </property>
+ <property name="pw-core" transfer-ownership="none">
+ <type name="gpointer" c:type="gpointer"/>
+ </property>
+ <glib:signal name="connected" when="last">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="383">Emitted when the core is successfully connected to the PipeWire server</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </glib:signal>
+ <glib:signal name="disconnected" when="last">
+ <doc xml:space="preserve"
+ filename="../lib/wp/core.c"
+ line="393">Emitted when the core is disconnected from the PipeWire server</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </glib:signal>
+ </class>
+ <record name="CoreClass"
+ c:type="WpCoreClass"
+ glib:is-gtype-struct-for="Core">
+ <source-position filename="../lib/wp/core.h" line="23"/>
+ <field name="parent_class">
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+ </field>
+ </record>
+ <class name="Device"
+ c:symbol-prefix="device"
+ c:type="WpDevice"
+ parent="Proxy"
+ glib:type-name="WpDevice"
+ glib:get-type="wp_device_get_type"
+ glib:type-struct="DeviceClass">
+ <source-position filename="../lib/wp/device.h" line="25"/>
+ <constructor name="new_from_factory"
+ c:identifier="wp_device_new_from_factory">
+ <doc xml:space="preserve"
+ filename="../lib/wp/device.c"
+ line="170">Constructs a device on the PipeWire server by asking the remote factory
+@factory_name to create it.
+
+Because of the nature of the PipeWire protocol, this operation completes
+asynchronously at some point in the future. In order to find out when
+this is done, you should call wp_proxy_augment(), requesting at least
+%WP_PROXY_FEATURE_BOUND. When this feature is ready, the device is ready for
+use on the server. If the device cannot be created, this augment operation
+will fail.</doc>
+ <source-position filename="../lib/wp/device.h" line="28"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/device.c"
+ line="186">the new device or %NULL if the core
+ is not connected and therefore the device cannot be created</doc>
+ <type name="Device" c:type="WpDevice*"/>
+ </return-value>
+ <parameters>
+ <parameter name="core" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/device.c"
+ line="172">the wireplumber core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </parameter>
+ <parameter name="factory_name" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/device.c"
+ line="173">the pipewire factory name to construct the device</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="properties"
+ transfer-ownership="full"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/device.c"
+ line="174">the properties to pass to the factory</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ </class>
+ <record name="DeviceClass"
+ c:type="WpDeviceClass"
+ glib:is-gtype-struct-for="Device">
+ <source-position filename="../lib/wp/device.h" line="25"/>
+ <field name="parent_class">
+ <type name="ProxyClass" c:type="WpProxyClass"/>
+ </field>
+ </record>
+ <enumeration name="Direction"
+ glib:type-name="WpDirection"
+ glib:get-type="wp_direction_get_type"
+ c:type="WpDirection">
+ <doc xml:space="preserve"
+ filename="../lib/wp/port.h"
+ line="16">The different directions the endpoint can have</doc>
+ <member name="input"
+ value="0"
+ c:identifier="WP_DIRECTION_INPUT"
+ glib:nick="input">
+ <doc xml:space="preserve"
+ filename="../lib/wp/port.h"
+ line="18">a sink, consuming input</doc>
+ </member>
+ <member name="output"
+ value="1"
+ c:identifier="WP_DIRECTION_OUTPUT"
+ glib:nick="output">
+ <doc xml:space="preserve"
+ filename="../lib/wp/port.h"
+ line="19">a source, producing output</doc>
+ </member>
+ </enumeration>
+ <constant name="ENDPOINT_FEATURES_STANDARD"
+ value="65544"
+ c:type="WP_ENDPOINT_FEATURES_STANDARD">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.h"
+ line="33">A constant set of features that contains the standard features that are
+available in the #WpEndpoint class.</doc>
+ <source-position filename="../lib/wp/endpoint.h" line="39"/>
+ <type name="gint" c:type="gint"/>
+ </constant>
+ <class name="Endpoint"
+ c:symbol-prefix="endpoint"
+ c:type="WpEndpoint"
+ parent="Proxy"
+ glib:type-name="WpEndpoint"
+ glib:get-type="wp_endpoint_get_type"
+ glib:type-struct="EndpointClass">
+ <source-position filename="../lib/wp/endpoint.h" line="56"/>
+ <method name="create_link" c:identifier="wp_endpoint_create_link">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="540">Creates a #WpEndpointLink between @self and another endpoint, which
+must be specified in @props.
+@props may contain:
+ - `endpoint-link.output.endpoint`: the bound id of the endpoint
+ that is in the %WP_DIRECTION_OUTPUT direction
+ - `endpoint-link.output.stream`: the bound id of the endpoint stream
+ that is in the %WP_DIRECTION_OUTPUT direction
+ - `endpoint-link.input.endpoint`: the bound id of the endpoint
+ that is in the %WP_DIRECTION_INPUT direction
+ - `endpoint-link.input.stream`: the bound id of the endpoint stream
+ that is in the %WP_DIRECTION_INPUT direction
+
+If either stream id are not specified (or set to -1), then the first
+available stream of this endpoint is used for the link.
+
+The id of @self is not necessary to be specified, so only one of
+`endpoint-link.output.endpoint`, `endpoint-link.input.endpoint`
+is actually required.</doc>
+ <source-position filename="../lib/wp/endpoint.h" line="90"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="542">the endpoint</doc>
+ <type name="Endpoint" c:type="WpEndpoint*"/>
+ </instance-parameter>
+ <parameter name="props" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="543">the link properties</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_direction" c:identifier="wp_endpoint_get_direction">
+ <source-position filename="../lib/wp/endpoint.h" line="65"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="396">the direction of this endpoint</doc>
+ <type name="Direction" c:type="WpDirection"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="394">the endpoint</doc>
+ <type name="Endpoint" c:type="WpEndpoint*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_media_class"
+ c:identifier="wp_endpoint_get_media_class">
+ <source-position filename="../lib/wp/endpoint.h" line="62"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="379">the media class of the endpoint (ex. "Audio/Sink")</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="377">the endpoint</doc>
+ <type name="Endpoint" c:type="WpEndpoint*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_n_streams" c:identifier="wp_endpoint_get_n_streams">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="409">Requires %WP_ENDPOINT_FEATURE_STREAMS</doc>
+ <source-position filename="../lib/wp/endpoint.h" line="68"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="415">the number of streams of this endpoint</doc>
+ <type name="guint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="411">the endpoint</doc>
+ <type name="Endpoint" c:type="WpEndpoint*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_name" c:identifier="wp_endpoint_get_name">
+ <source-position filename="../lib/wp/endpoint.h" line="59"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="362">the name of the endpoint</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="360">the endpoint</doc>
+ <type name="Endpoint" c:type="WpEndpoint*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="iterate_streams"
+ c:identifier="wp_endpoint_iterate_streams">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="428">Requires %WP_ENDPOINT_FEATURE_STREAMS</doc>
+ <source-position filename="../lib/wp/endpoint.h" line="71"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="434">a #WpIterator that iterates over all
+ the endpoint streams that belong to this endpoint</doc>
+ <type name="Iterator" c:type="WpIterator*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="430">the endpoint</doc>
+ <type name="Endpoint" c:type="WpEndpoint*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="iterate_streams_filtered"
+ c:identifier="wp_endpoint_iterate_streams_filtered"
+ shadowed-by="iterate_streams_filtered_full"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="448">Requires %WP_ENDPOINT_FEATURE_STREAMS
+
+The constraints specified in the variable arguments must follow the rules
+documented in wp_object_interest_new().</doc>
+ <source-position filename="../lib/wp/endpoint.h" line="74"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="458">a #WpIterator that iterates over all
+ the streams that belong to this endpoint and match the constraints</doc>
+ <type name="Iterator" c:type="WpIterator*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="450">the endpoint</doc>
+ <type name="Endpoint" c:type="WpEndpoint*"/>
+ </instance-parameter>
+ <parameter name="..." transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="451">a list of constraints, terminated by %NULL</doc>
+ <varargs/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="iterate_streams_filtered_full"
+ c:identifier="wp_endpoint_iterate_streams_filtered_full"
+ shadows="iterate_streams_filtered">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="472">Requires %WP_ENDPOINT_FEATURE_STREAMS</doc>
+ <source-position filename="../lib/wp/endpoint.h" line="78"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="479">a #WpIterator that iterates over all
+ the streams that belong to this endpoint and match the @interest</doc>
+ <type name="Iterator" c:type="WpIterator*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="474">the endpoint</doc>
+ <type name="Endpoint" c:type="WpEndpoint*"/>
+ </instance-parameter>
+ <parameter name="interest" transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="475">the interest</doc>
+ <type name="ObjectInterest" c:type="WpObjectInterest*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="lookup_stream"
+ c:identifier="wp_endpoint_lookup_stream"
+ shadowed-by="lookup_stream_full"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="494">Requires %WP_ENDPOINT_FEATURE_STREAMS
+
+The constraints specified in the variable arguments must follow the rules
+documented in wp_object_interest_new().</doc>
+ <source-position filename="../lib/wp/endpoint.h" line="82"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="504">the first stream that matches the
+ constraints, or %NULL if there is no such stream</doc>
+ <type name="EndpointStream" c:type="WpEndpointStream*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="496">the endpoint</doc>
+ <type name="Endpoint" c:type="WpEndpoint*"/>
+ </instance-parameter>
+ <parameter name="..." transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="497">a list of constraints, terminated by %NULL</doc>
+ <varargs/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="lookup_stream_full"
+ c:identifier="wp_endpoint_lookup_stream_full"
+ shadows="lookup_stream">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="518">Requires %WP_ENDPOINT_FEATURE_STREAMS</doc>
+ <source-position filename="../lib/wp/endpoint.h" line="86"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="525">the first stream that matches the
+ @interest, or %NULL if there is no such stream</doc>
+ <type name="EndpointStream" c:type="WpEndpointStream*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="520">the endpoint</doc>
+ <type name="Endpoint" c:type="WpEndpoint*"/>
+ </instance-parameter>
+ <parameter name="interest" transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="521">the interest</doc>
+ <type name="ObjectInterest" c:type="WpObjectInterest*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <property name="direction" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="348">The direction of the endpoint</doc>
+ <type name="Direction"/>
+ </property>
+ <property name="media-class" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="339">The media class of the endpoint (ex. "Audio/Sink")</doc>
+ <type name="utf8" c:type="gchar*"/>
+ </property>
+ <property name="name" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="330">The name of the endpoint</doc>
+ <type name="utf8" c:type="gchar*"/>
+ </property>
+ <field name="parent_instance">
+ <type name="Proxy" c:type="WpProxy"/>
+ </field>
+ <glib:signal name="streams-changed" when="last">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.c"
+ line="319">Emitted when the endpoints's streams change. This is only emitted
+when %WP_ENDPOINT_FEATURE_STREAMS is enabled.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </glib:signal>
+ </class>
+ <record name="EndpointClass"
+ c:type="WpEndpointClass"
+ glib:is-gtype-struct-for="Endpoint">
+ <source-position filename="../lib/wp/endpoint.h" line="56"/>
+ <field name="parent_class">
+ <type name="ProxyClass" c:type="WpProxyClass"/>
+ </field>
+ </record>
+ <bitfield name="EndpointFeatures"
+ glib:type-name="WpEndpointFeatures"
+ glib:get-type="wp_endpoint_features_get_type"
+ c:type="WpEndpointFeatures">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.h"
+ line="21">An extension of #WpProxyFeatures</doc>
+ <member name="streams"
+ value="65536"
+ c:identifier="WP_ENDPOINT_FEATURE_STREAMS"
+ glib:nick="streams">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint.h"
+ line="23">caches information about streams, enabling
+ the use of wp_endpoint_get_n_streams(), wp_endpoint_lookup_stream(),
+ wp_endpoint_iterate_streams() and related methods</doc>
+ </member>
+ </bitfield>
+ <class name="EndpointLink"
+ c:symbol-prefix="endpoint_link"
+ c:type="WpEndpointLink"
+ parent="Proxy"
+ glib:type-name="WpEndpointLink"
+ glib:get-type="wp_endpoint_link_get_type"
+ glib:type-struct="EndpointLinkClass">
+ <source-position filename="../lib/wp/endpoint-link.h" line="43"/>
+ <method name="get_linked_object_ids"
+ c:identifier="wp_endpoint_link_get_linked_object_ids">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint-link.c"
+ line="208">Retrieves the ids of the objects that are linked by this endpoint link
+
+Note: Using this method requires %WP_PROXY_FEATURE_INFO</doc>
+ <source-position filename="../lib/wp/endpoint-link.h" line="46"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint-link.c"
+ line="210">the endpoint link</doc>
+ <type name="EndpointLink" c:type="WpEndpointLink*"/>
+ </instance-parameter>
+ <parameter name="output_endpoint"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint-link.c"
+ line="211">the bound id of the output (source)
+ endpoint</doc>
+ <type name="guint32" c:type="guint32*"/>
+ </parameter>
+ <parameter name="output_stream"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint-link.c"
+ line="213">the bound id of the output (source)
+ endpoint's stream</doc>
+ <type name="guint32" c:type="guint32*"/>
+ </parameter>
+ <parameter name="input_endpoint"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint-link.c"
+ line="215">the bound id of the input (sink)
+ endpoint</doc>
+ <type name="guint32" c:type="guint32*"/>
+ </parameter>
+ <parameter name="input_stream"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint-link.c"
+ line="217">the bound id of the input (sink)
+ endpoint's stream</doc>
+ <type name="guint32" c:type="guint32*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_state" c:identifier="wp_endpoint_link_get_state">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint-link.c"
+ line="244">Retrieves the current state of the link
+
+Note: Using this method requires %WP_PROXY_FEATURE_INFO</doc>
+ <source-position filename="../lib/wp/endpoint-link.h" line="51"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint-link.c"
+ line="253">the current state of the link</doc>
+ <type name="EndpointLinkState" c:type="WpEndpointLinkState"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint-link.c"
+ line="246">the endpoint link</doc>
+ <type name="EndpointLink" c:type="WpEndpointLink*"/>
+ </instance-parameter>
+ <parameter name="error"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="none"
+ optional="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint-link.c"
+ line="247">the error string if the state is
+ %WP_ENDPOINT_LINK_STATE_ERROR</doc>
+ <type name="utf8" c:type="const gchar**"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="request_state"
+ c:identifier="wp_endpoint_link_request_state">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint-link.c"
+ line="268">Requests a state change on the link
+
+Note: Using this method requires %WP_PROXY_FEATURE_PW_PROXY</doc>
+ <source-position filename="../lib/wp/endpoint-link.h" line="55"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint-link.c"
+ line="270">the endpoint link</doc>
+ <type name="EndpointLink" c:type="WpEndpointLink*"/>
+ </instance-parameter>
+ <parameter name="target" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint-link.c"
+ line="271">the desired target state of the link</doc>
+ <type name="EndpointLinkState" c:type="WpEndpointLinkState"/>
+ </parameter>
+ </parameters>
+ </method>
+ <field name="parent_instance">
+ <type name="Proxy" c:type="WpProxy"/>
+ </field>
+ <glib:signal name="state-changed" when="last">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint-link.c"
+ line="192">Emitted when an endpoint link changes state</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="old_state" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint-link.c"
+ line="195">the old state of the link</doc>
+ <type name="EndpointLinkState"/>
+ </parameter>
+ <parameter name="new_state" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint-link.c"
+ line="196">the new state of the link</doc>
+ <type name="EndpointLinkState"/>
+ </parameter>
+ <parameter name="error"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint-link.c"
+ line="197">the error string if the new state is
+ %WP_ENDPOINT_LINK_STATE_ERROR</doc>
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </class>
+ <record name="EndpointLinkClass"
+ c:type="WpEndpointLinkClass"
+ glib:is-gtype-struct-for="EndpointLink">
+ <source-position filename="../lib/wp/endpoint-link.h" line="43"/>
+ <field name="parent_class">
+ <type name="ProxyClass" c:type="WpProxyClass"/>
+ </field>
+ </record>
+ <enumeration name="EndpointLinkState"
+ glib:type-name="WpEndpointLinkState"
+ glib:get-type="wp_endpoint_link_state_get_type"
+ c:type="WpEndpointLinkState">
+ <member name="error"
+ value="-1"
+ c:identifier="WP_ENDPOINT_LINK_STATE_ERROR"
+ glib:nick="error">
+ </member>
+ <member name="preparing"
+ value="0"
+ c:identifier="WP_ENDPOINT_LINK_STATE_PREPARING"
+ glib:nick="preparing">
+ </member>
+ <member name="inactive"
+ value="1"
+ c:identifier="WP_ENDPOINT_LINK_STATE_INACTIVE"
+ glib:nick="inactive">
+ </member>
+ <member name="active"
+ value="2"
+ c:identifier="WP_ENDPOINT_LINK_STATE_ACTIVE"
+ glib:nick="active">
+ </member>
+ </enumeration>
+ <class name="EndpointStream"
+ c:symbol-prefix="endpoint_stream"
+ c:type="WpEndpointStream"
+ parent="Proxy"
+ glib:type-name="WpEndpointStream"
+ glib:get-type="wp_endpoint_stream_get_type"
+ glib:type-struct="EndpointStreamClass">
+ <source-position filename="../lib/wp/endpoint-stream.h" line="30"/>
+ <method name="get_name" c:identifier="wp_endpoint_stream_get_name">
+ <source-position filename="../lib/wp/endpoint-stream.h" line="33"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint-stream.c"
+ line="221">the name of the endpoint stream</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint-stream.c"
+ line="219">the endpoint stream</doc>
+ <type name="EndpointStream" c:type="WpEndpointStream*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <property name="name" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/endpoint-stream.c"
+ line="207">The name of the endpoint stream</doc>
+ <type name="utf8" c:type="gchar*"/>
+ </property>
+ <field name="parent_instance">
+ <type name="Proxy" c:type="WpProxy"/>
+ </field>
+ </class>
+ <record name="EndpointStreamClass"
+ c:type="WpEndpointStreamClass"
+ glib:is-gtype-struct-for="EndpointStream">
+ <source-position filename="../lib/wp/endpoint-stream.h" line="30"/>
+ <field name="parent_class">
+ <type name="ProxyClass" c:type="WpProxyClass"/>
+ </field>
+ </record>
+ <class name="ImplNode"
+ c:symbol-prefix="impl_node"
+ c:type="WpImplNode"
+ parent="GObject.Object"
+ glib:type-name="WpImplNode"
+ glib:get-type="wp_impl_node_get_type"
+ glib:type-struct="ImplNodeClass">
+ <source-position filename="../lib/wp/node.h" line="132"/>
+ <constructor name="new_from_pw_factory"
+ c:identifier="wp_impl_node_new_from_pw_factory">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="635">Constructs a new node, locally on this process, using the specified
+@factory_name.
+
+To export this node to the PipeWire server, you need to call
+wp_proxy_augment() requesting %WP_PROXY_FEATURE_BOUND and
+wait for the operation to complete.</doc>
+ <source-position filename="../lib/wp/node.h" line="138"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="649">A new #WpImplNode wrapping the
+ node that was constructed by the factory, or %NULL if the factory
+ does not exist or was unable to construct the node</doc>
+ <type name="ImplNode" c:type="WpImplNode*"/>
+ </return-value>
+ <parameters>
+ <parameter name="core" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="637">the wireplumber core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </parameter>
+ <parameter name="factory_name" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="638">the name of the pipewire factory</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="properties"
+ transfer-ownership="full"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="639">properties to be passed to node
+ constructor</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_wrap" c:identifier="wp_impl_node_new_wrap">
+ <source-position filename="../lib/wp/node.h" line="135"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="624">A new #WpImplNode wrapping @node</doc>
+ <type name="ImplNode" c:type="WpImplNode*"/>
+ </return-value>
+ <parameters>
+ <parameter name="core" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="621">the wireplumber core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </parameter>
+ <parameter name="node"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="622">an existing pw_impl_node to wrap</doc>
+ <type name="gpointer" c:type="pw_impl_node*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="export" c:identifier="wp_impl_node_export">
+ <source-position filename="../lib/wp/node.h" line="142"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="ImplNode" c:type="WpImplNode*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <property name="core"
+ writable="1"
+ construct-only="1"
+ transfer-ownership="none">
+ <type name="Core"/>
+ </property>
+ <property name="pw-impl-node"
+ writable="1"
+ construct-only="1"
+ transfer-ownership="none">
+ <type name="gpointer" c:type="gpointer"/>
+ </property>
+ </class>
+ <record name="ImplNodeClass"
+ c:type="WpImplNodeClass"
+ glib:is-gtype-struct-for="ImplNode">
+ <source-position filename="../lib/wp/node.h" line="132"/>
+ <field name="parent_class">
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+ </field>
+ </record>
+ <class name="ImplSession"
+ c:symbol-prefix="impl_session"
+ c:type="WpImplSession"
+ parent="Session"
+ glib:type-name="WpImplSession"
+ glib:get-type="wp_impl_session_get_type"
+ glib:type-struct="ImplSessionClass">
+ <source-position filename="../lib/wp/session.h" line="126"/>
+ <constructor name="new" c:identifier="wp_impl_session_new">
+ <source-position filename="../lib/wp/session.h" line="129"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="966">the newly constructed session implementation</doc>
+ <type name="ImplSession" c:type="WpImplSession*"/>
+ </return-value>
+ <parameters>
+ <parameter name="core" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="964">the #WpCore</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="set_property" c:identifier="wp_impl_session_set_property">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="978">Sets the specified property on the PipeWire properties of the session.
+
+If this property is set before exporting the session, then it is also used
+in the construction process of the session object and appears as a global
+property.</doc>
+ <source-position filename="../lib/wp/session.h" line="132"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="980">the session implementation</doc>
+ <type name="ImplSession" c:type="WpImplSession*"/>
+ </instance-parameter>
+ <parameter name="key" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="981">a property key</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="982">a property value</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="update_properties"
+ c:identifier="wp_impl_session_update_properties">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="1011">Adds or updates the values of the PipeWire properties of the session
+using the properties in @updates as a source.
+
+If the properties are set before exporting the session, then they are also
+used in the construction process of the session object and appear as
+global properties.</doc>
+ <source-position filename="../lib/wp/session.h" line="136"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="1013">the session implementation</doc>
+ <type name="ImplSession" c:type="WpImplSession*"/>
+ </instance-parameter>
+ <parameter name="updates" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="1014">a set of properties to add or update in the session's properties</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </parameter>
+ </parameters>
+ </method>
+ </class>
+ <record name="ImplSessionClass"
+ c:type="WpImplSessionClass"
+ glib:is-gtype-struct-for="ImplSession">
+ <source-position filename="../lib/wp/session.h" line="126"/>
+ <field name="parent_class">
+ <type name="SessionClass" c:type="WpSessionClass"/>
+ </field>
+ </record>
+ <bitfield name="InitFlags"
+ glib:type-name="WpInitFlags"
+ glib:get-type="wp_init_flags_get_type"
+ c:type="WpInitFlags">
+ <doc xml:space="preserve"
+ filename="../lib/wp/wp.c"
+ line="18">See wp_init()</doc>
+ <member name="pipewire"
+ value="1"
+ c:identifier="WP_INIT_PIPEWIRE"
+ glib:nick="pipewire">
+ <doc xml:space="preserve"
+ filename="../lib/wp/wp.c"
+ line="20">Initializes libpipewire by calling `pw_init()`</doc>
+ </member>
+ <member name="spa_types"
+ value="2"
+ c:identifier="WP_INIT_SPA_TYPES"
+ glib:nick="spa-types">
+ <doc xml:space="preserve"
+ filename="../lib/wp/wp.c"
+ line="21">Initializes WirePlumber's SPA types integration,
+ required for using #WpSpaPod among other things</doc>
+ </member>
+ <member name="set_pw_log"
+ value="4"
+ c:identifier="WP_INIT_SET_PW_LOG"
+ glib:nick="set-pw-log">
+ <doc xml:space="preserve"
+ filename="../lib/wp/wp.c"
+ line="23">Enables redirecting debug log messages from
+ libpipewire to GLib's logging system, by installing WirePlumber's
+ implementation of `struct spa_log` (see wp_spa_log_get_instance())
+ with `pw_log_set()`</doc>
+ </member>
+ <member name="set_glib_log"
+ value="8"
+ c:identifier="WP_INIT_SET_GLIB_LOG"
+ glib:nick="set-glib-log">
+ <doc xml:space="preserve"
+ filename="../lib/wp/wp.c"
+ line="27">Installs WirePlumber's debug log handler,
+ wp_log_writer_default(), on GLib with g_log_set_writer_func()</doc>
+ </member>
+ <member name="all" value="15" c:identifier="WP_INIT_ALL" glib:nick="all">
+ <doc xml:space="preserve"
+ filename="../lib/wp/wp.c"
+ line="29">Enables all of the above</doc>
+ </member>
+ </bitfield>
+ <record name="Iterator"
+ c:type="WpIterator"
+ glib:type-name="WpIterator"
+ glib:get-type="wp_iterator_get_type"
+ c:symbol-prefix="iterator">
+ <source-position filename="../lib/wp/iterator.h" line="48"/>
+ <constructor name="new_ptr_array"
+ c:identifier="wp_iterator_new_ptr_array"
+ introspectable="0">
+ <source-position filename="../lib/wp/iterator.h" line="77"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/iterator.c"
+ line="263">a new iterator that iterates over @items</doc>
+ <type name="Iterator" c:type="WpIterator*"/>
+ </return-value>
+ <parameters>
+ <parameter name="items" transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/iterator.c"
+ line="260">the items to iterate over</doc>
+ <array name="GLib.PtrArray" c:type="GPtrArray*">
+ <type name="gpointer" c:type="gpointer"/>
+ </array>
+ </parameter>
+ <parameter name="item_type" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/iterator.c"
+ line="261">the type of each item</doc>
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="fold" c:identifier="wp_iterator_fold">
+ <doc xml:space="preserve"
+ filename="../lib/wp/iterator.c"
+ line="148">Iterates over all items of the iterator calling a function.</doc>
+ <source-position filename="../lib/wp/iterator.h" line="67"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/iterator.c"
+ line="157">TRUE if all the items were processed, FALSE otherwise.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/iterator.c"
+ line="150">the iterator</doc>
+ <type name="Iterator" c:type="WpIterator*"/>
+ </instance-parameter>
+ <parameter name="func"
+ transfer-ownership="none"
+ scope="call"
+ closure="2">
+ <doc xml:space="preserve"
+ filename="../lib/wp/iterator.c"
+ line="151">the fold function</doc>
+ <type name="IteratorFoldFunc" c:type="WpIteratorFoldFunc"/>
+ </parameter>
+ <parameter name="ret"
+ direction="inout"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/iterator.c"
+ line="152">the accumulator data</doc>
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="data"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/iterator.c"
+ line="153">the user data</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="foreach" c:identifier="wp_iterator_foreach">
+ <doc xml:space="preserve"
+ filename="../lib/wp/iterator.c"
+ line="171">Fold a function over the items of the iterator.</doc>
+ <source-position filename="../lib/wp/iterator.h" line="71"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/iterator.c"
+ line="179">TRUE if all the items were processed, FALSE otherwise.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/iterator.c"
+ line="173">the iterator</doc>
+ <type name="Iterator" c:type="WpIterator*"/>
+ </instance-parameter>
+ <parameter name="func"
+ transfer-ownership="none"
+ scope="call"
+ closure="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/iterator.c"
+ line="174">the foreach function</doc>
+ <type name="IteratorForeachFunc" c:type="WpIteratorForeachFunc"/>
+ </parameter>
+ <parameter name="data"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/iterator.c"
+ line="175">the user data</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="next" c:identifier="wp_iterator_next">
+ <doc xml:space="preserve"
+ filename="../lib/wp/iterator.c"
+ line="129">Gets the next item of the iterator.</doc>
+ <source-position filename="../lib/wp/iterator.h" line="64"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/iterator.c"
+ line="136">TRUE if next iterator was obtained, FALSE when the iterator has no
+more items to iterate through.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/iterator.c"
+ line="131">the iterator</doc>
+ <type name="Iterator" c:type="WpIterator*"/>
+ </instance-parameter>
+ <parameter name="item"
+ direction="out"
+ caller-allocates="1"
+ transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/iterator.c"
+ line="132">the next item of the iterator</doc>
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="ref" c:identifier="wp_iterator_ref">
+ <source-position filename="../lib/wp/iterator.h" line="53"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/iterator.c"
+ line="86">@self with an additional reference count on it</doc>
+ <type name="Iterator" c:type="WpIterator*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/iterator.c"
+ line="84">an iterator object</doc>
+ <type name="Iterator" c:type="WpIterator*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="reset" c:identifier="wp_iterator_reset">
+ <doc xml:space="preserve"
+ filename="../lib/wp/iterator.c"
+ line="114">Resets the iterator so we can iterate again from the beginning.</doc>
+ <source-position filename="../lib/wp/iterator.h" line="61"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/iterator.c"
+ line="116">the iterator</doc>
+ <type name="Iterator" c:type="WpIterator*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="unref" c:identifier="wp_iterator_unref">
+ <doc xml:space="preserve"
+ filename="../lib/wp/iterator.c"
+ line="101">Decreases the reference count on @self and frees it when the ref count
+reaches zero.</doc>
+ <source-position filename="../lib/wp/iterator.h" line="56"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/iterator.c"
+ line="103">an iterator object</doc>
+ <type name="Iterator" c:type="WpIterator*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ </record>
+ <callback name="IteratorFoldFunc" c:type="WpIteratorFoldFunc">
+ <doc xml:space="preserve"
+ filename="../lib/wp/iterator.h"
+ line="17">A function to be passed to #wp_iterator_fold.</doc>
+ <source-position filename="../lib/wp/iterator.h" line="27"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/iterator.h"
+ line="25">TRUE if the fold should continue, FALSE if it should stop.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="item" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/iterator.h"
+ line="19">the item to fold</doc>
+ <type name="GObject.Value" c:type="const GValue*"/>
+ </parameter>
+ <parameter name="ret" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/iterator.h"
+ line="20">the value collecting the result</doc>
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="data"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/iterator.h"
+ line="21">data passed to #wp_iterator_fold</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="IteratorForeachFunc" c:type="WpIteratorForeachFunc">
+ <doc xml:space="preserve"
+ filename="../lib/wp/iterator.h"
+ line="30">A function that is called by #wp_iterator_foreach for every element.</doc>
+ <source-position filename="../lib/wp/iterator.h" line="37"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="item" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/iterator.h"
+ line="32">the item</doc>
+ <type name="GObject.Value" c:type="const GValue*"/>
+ </parameter>
+ <parameter name="data"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/iterator.h"
+ line="33">the data passed to #wp_iterator_foreach</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <constant name="LOG_LEVEL_TRACE" value="1" c:type="WP_LOG_LEVEL_TRACE">
+ <source-position filename="../lib/wp/debug.h" line="17"/>
+ <type name="gint" c:type="gint"/>
+ </constant>
+ <enumeration name="LibraryErrorEnum"
+ glib:type-name="WpLibraryErrorEnum"
+ glib:get-type="wp_library_error_enum_get_type"
+ c:type="WpLibraryErrorEnum">
+ <doc xml:space="preserve"
+ filename="../lib/wp/error.h"
+ line="27">Error codes that can appear in a #GError when the error domain
+is %WP_DOMAIN_LIBRARY</doc>
+ <member name="invariant"
+ value="0"
+ c:identifier="WP_LIBRARY_ERROR_INVARIANT"
+ glib:nick="invariant">
+ <doc xml:space="preserve"
+ filename="../lib/wp/error.h"
+ line="29">an invariant check failed; this most likely
+ indicates a programming error</doc>
+ </member>
+ <member name="invalid_argument"
+ value="1"
+ c:identifier="WP_LIBRARY_ERROR_INVALID_ARGUMENT"
+ glib:nick="invalid-argument">
+ <doc xml:space="preserve"
+ filename="../lib/wp/error.h"
+ line="31">an unexpected/invalid argument was given</doc>
+ </member>
+ <member name="operation_failed"
+ value="2"
+ c:identifier="WP_LIBRARY_ERROR_OPERATION_FAILED"
+ glib:nick="operation-failed">
+ <doc xml:space="preserve"
+ filename="../lib/wp/error.h"
+ line="32">an operation failed</doc>
+ </member>
+ </enumeration>
+ <class name="Link"
+ c:symbol-prefix="link"
+ c:type="WpLink"
+ parent="Proxy"
+ glib:type-name="WpLink"
+ glib:get-type="wp_link_get_type"
+ glib:type-struct="LinkClass">
+ <source-position filename="../lib/wp/link.h" line="23"/>
+ <constructor name="new_from_factory"
+ c:identifier="wp_link_new_from_factory">
+ <doc xml:space="preserve"
+ filename="../lib/wp/link.c"
+ line="111">Constructs a link on the PipeWire server by asking the remote factory
+@factory_name to create it.
+
+Because of the nature of the PipeWire protocol, this operation completes
+asynchronously at some point in the future. In order to find out when
+this is done, you should call wp_proxy_augment(), requesting at least
+%WP_PROXY_FEATURE_BOUND. When this feature is ready, the link is ready for
+use on the server. If the link cannot be created, this augment operation
+will fail.</doc>
+ <source-position filename="../lib/wp/link.h" line="26"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/link.c"
+ line="127">the new link or %NULL if the core
+ is not connected and therefore the link cannot be created</doc>
+ <type name="Link" c:type="WpLink*"/>
+ </return-value>
+ <parameters>
+ <parameter name="core" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/link.c"
+ line="113">the wireplumber core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </parameter>
+ <parameter name="factory_name" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/link.c"
+ line="114">the pipewire factory name to construct the link</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="properties"
+ transfer-ownership="full"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/link.c"
+ line="115">the properties to pass to the factory</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="get_linked_object_ids"
+ c:identifier="wp_link_get_linked_object_ids">
+ <doc xml:space="preserve"
+ filename="../lib/wp/link.c"
+ line="150">Retrieves the ids of the objects that are linked by this link
+
+Note: Using this method requires %WP_PROXY_FEATURE_INFO</doc>
+ <source-position filename="../lib/wp/link.h" line="30"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/link.c"
+ line="152">the link</doc>
+ <type name="Link" c:type="WpLink*"/>
+ </instance-parameter>
+ <parameter name="output_node"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/link.c"
+ line="153">the bound id of the output (source) node</doc>
+ <type name="guint32" c:type="guint32*"/>
+ </parameter>
+ <parameter name="output_port"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/link.c"
+ line="154">the bound id of the output (source) port</doc>
+ <type name="guint32" c:type="guint32*"/>
+ </parameter>
+ <parameter name="input_node"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/link.c"
+ line="155">the bound id of the input (sink) node</doc>
+ <type name="guint32" c:type="guint32*"/>
+ </parameter>
+ <parameter name="input_port"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/link.c"
+ line="156">the bound id of the input (sink) port</doc>
+ <type name="guint32" c:type="guint32*"/>
+ </parameter>
+ </parameters>
+ </method>
+ </class>
+ <record name="LinkClass"
+ c:type="WpLinkClass"
+ glib:is-gtype-struct-for="Link">
+ <source-position filename="../lib/wp/link.h" line="23"/>
+ <field name="parent_class">
+ <type name="ProxyClass" c:type="WpProxyClass"/>
+ </field>
+ </record>
+ <class name="Module"
+ c:symbol-prefix="module"
+ c:type="WpModule"
+ parent="GObject.Object"
+ glib:type-name="WpModule"
+ glib:get-type="wp_module_get_type"
+ glib:type-struct="ModuleClass">
+ <source-position filename="../lib/wp/module.h" line="23"/>
+ <function name="load" c:identifier="wp_module_load" throws="1">
+ <source-position filename="../lib/wp/module.h" line="26"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/module.c"
+ line="157">the loaded module</doc>
+ <type name="Module" c:type="WpModule*"/>
+ </return-value>
+ <parameters>
+ <parameter name="core" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/module.c"
+ line="150">the core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </parameter>
+ <parameter name="abi" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/module.c"
+ line="151">the abi name of the module</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="module_name" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/module.c"
+ line="152">the module name</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="args"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/module.c"
+ line="153">additional properties passed to the
+ module ("a{sv}")</doc>
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <method name="get_core" c:identifier="wp_module_get_core">
+ <source-position filename="../lib/wp/module.h" line="33"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/module.c"
+ line="202">the core on which this module is registered</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/module.c"
+ line="200">the module</doc>
+ <type name="Module" c:type="WpModule*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_properties" c:identifier="wp_module_get_properties">
+ <source-position filename="../lib/wp/module.h" line="30"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/module.c"
+ line="189">the properties of the module ("a{sv}")</doc>
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/module.c"
+ line="187">the module</doc>
+ <type name="Module" c:type="WpModule*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="set_destroy_callback"
+ c:identifier="wp_module_set_destroy_callback">
+ <doc xml:space="preserve"
+ filename="../lib/wp/module.c"
+ line="211">Registers a @callback to call when the module object is destroyed</doc>
+ <source-position filename="../lib/wp/module.h" line="36"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/module.c"
+ line="213">the module</doc>
+ <type name="Module" c:type="WpModule*"/>
+ </instance-parameter>
+ <parameter name="callback" transfer-ownership="none" scope="async">
+ <doc xml:space="preserve"
+ filename="../lib/wp/module.c"
+ line="214">a function to call when the module is destroyed</doc>
+ <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+ </parameter>
+ <parameter name="data"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/module.c"
+ line="215">data to pass to @callback</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ </class>
+ <record name="ModuleClass"
+ c:type="WpModuleClass"
+ glib:is-gtype-struct-for="Module">
+ <source-position filename="../lib/wp/module.h" line="23"/>
+ <field name="parent_class">
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+ </field>
+ </record>
+ <constant name="NODE_FEATURES_STANDARD"
+ value="65536"
+ c:type="WP_NODE_FEATURES_STANDARD">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.h"
+ line="65">A constant set of features that contains the standard features that are
+available in the #WpNode class.</doc>
+ <source-position filename="../lib/wp/node.h" line="71"/>
+ <type name="gint" c:type="gint"/>
+ </constant>
+ <class name="Node"
+ c:symbol-prefix="node"
+ c:type="WpNode"
+ parent="Proxy"
+ glib:type-name="WpNode"
+ glib:get-type="wp_node_get_type"
+ glib:type-struct="NodeClass">
+ <source-position filename="../lib/wp/node.h" line="87"/>
+ <constructor name="new_from_factory"
+ c:identifier="wp_node_new_from_factory">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="278">Constructs a node on the PipeWire server by asking the remote factory
+@factory_name to create it.
+
+Because of the nature of the PipeWire protocol, this operation completes
+asynchronously at some point in the future. In order to find out when
+this is done, you should call wp_proxy_augment(), requesting at least
+%WP_PROXY_FEATURE_BOUND. When this feature is ready, the node is ready for
+use on the server. If the node cannot be created, this augment operation
+will fail.</doc>
+ <source-position filename="../lib/wp/node.h" line="90"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="294">the new node or %NULL if the core
+ is not connected and therefore the node cannot be created</doc>
+ <type name="Node" c:type="WpNode*"/>
+ </return-value>
+ <parameters>
+ <parameter name="core" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="280">the wireplumber core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </parameter>
+ <parameter name="factory_name" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="281">the pipewire factory name to construct the node</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="properties"
+ transfer-ownership="full"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="282">the properties to pass to the factory</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="get_n_input_ports"
+ c:identifier="wp_node_get_n_input_ports">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="330">Requires %WP_PROXY_FEATURE_INFO</doc>
+ <source-position filename="../lib/wp/node.h" line="97"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="337">the number of input ports of this node, as reported by the node info</doc>
+ <type name="guint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="332">the node</doc>
+ <type name="Node" c:type="WpNode*"/>
+ </instance-parameter>
+ <parameter name="max"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="333">the maximum supported number of input ports</doc>
+ <type name="guint" c:type="guint*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_n_output_ports"
+ c:identifier="wp_node_get_n_output_ports">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="352">Requires %WP_PROXY_FEATURE_INFO</doc>
+ <source-position filename="../lib/wp/node.h" line="100"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="359">the number of output ports of this node, as reported by the node info</doc>
+ <type name="guint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="354">the node</doc>
+ <type name="Node" c:type="WpNode*"/>
+ </instance-parameter>
+ <parameter name="max"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="355">the maximum supported number of output ports</doc>
+ <type name="guint" c:type="guint*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_n_ports" c:identifier="wp_node_get_n_ports">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="374">Requires %WP_NODE_FEATURE_PORTS</doc>
+ <source-position filename="../lib/wp/node.h" line="103"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="380">the number of ports of this node. Note that this number may not
+ add up to wp_node_get_n_input_ports() + wp_node_get_n_output_ports()
+ because it is discovered by looking at the number of available ports
+ in the registry, however ports may appear there with a delay or may
+ not appear at all if this client does not have permission to read them</doc>
+ <type name="guint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="376">the node</doc>
+ <type name="Node" c:type="WpNode*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_state" c:identifier="wp_node_get_state">
+ <source-position filename="../lib/wp/node.h" line="94"/>
+ <return-value transfer-ownership="none">
+ <type name="NodeState" c:type="WpNodeState"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="Node" c:type="WpNode*"/>
+ </instance-parameter>
+ <parameter name="error" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar**"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="iterate_ports" c:identifier="wp_node_iterate_ports">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="397">Requires %WP_NODE_FEATURE_PORTS</doc>
+ <source-position filename="../lib/wp/node.h" line="106"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="403">a #WpIterator that iterates over all
+ the ports that belong to this node</doc>
+ <type name="Iterator" c:type="WpIterator*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="399">the node</doc>
+ <type name="Node" c:type="WpNode*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="iterate_ports_filtered"
+ c:identifier="wp_node_iterate_ports_filtered"
+ shadowed-by="iterate_ports_filtered_full"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="417">Requires %WP_NODE_FEATURE_PORTS
+
+The constraints specified in the variable arguments must follow the rules
+documented in wp_object_interest_new().</doc>
+ <source-position filename="../lib/wp/node.h" line="109"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="427">a #WpIterator that iterates over all
+ the ports that belong to this node and match the constraints</doc>
+ <type name="Iterator" c:type="WpIterator*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="419">the node</doc>
+ <type name="Node" c:type="WpNode*"/>
+ </instance-parameter>
+ <parameter name="..." transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="420">a list of constraints, terminated by %NULL</doc>
+ <varargs/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="iterate_ports_filtered_full"
+ c:identifier="wp_node_iterate_ports_filtered_full"
+ shadows="iterate_ports_filtered">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="441">Requires %WP_NODE_FEATURE_PORTS</doc>
+ <source-position filename="../lib/wp/node.h" line="113"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="448">a #WpIterator that iterates over all
+ the ports that belong to this node and match the @interest</doc>
+ <type name="Iterator" c:type="WpIterator*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="443">the node</doc>
+ <type name="Node" c:type="WpNode*"/>
+ </instance-parameter>
+ <parameter name="interest" transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="444">the interest</doc>
+ <type name="ObjectInterest" c:type="WpObjectInterest*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="lookup_port"
+ c:identifier="wp_node_lookup_port"
+ shadowed-by="lookup_port_full"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="462">Requires %WP_NODE_FEATURE_PORTS
+
+The constraints specified in the variable arguments must follow the rules
+documented in wp_object_interest_new().</doc>
+ <source-position filename="../lib/wp/node.h" line="117"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="472">the first port that matches the
+ constraints, or %NULL if there is no such port</doc>
+ <type name="Port" c:type="WpPort*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="464">the node</doc>
+ <type name="Node" c:type="WpNode*"/>
+ </instance-parameter>
+ <parameter name="..." transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="465">a list of constraints, terminated by %NULL</doc>
+ <varargs/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="lookup_port_full"
+ c:identifier="wp_node_lookup_port_full"
+ shadows="lookup_port">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="486">Requires %WP_NODE_FEATURE_PORTS</doc>
+ <source-position filename="../lib/wp/node.h" line="120"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="493">the first port that matches the
+ @interest, or %NULL if there is no such port</doc>
+ <type name="Port" c:type="WpPort*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="488">the node</doc>
+ <type name="Node" c:type="WpNode*"/>
+ </instance-parameter>
+ <parameter name="interest" transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="489">the interest</doc>
+ <type name="ObjectInterest" c:type="WpObjectInterest*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="send_command" c:identifier="wp_node_send_command">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="508">Sends a command to a node</doc>
+ <source-position filename="../lib/wp/node.h" line="123"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="510">the node</doc>
+ <type name="Node" c:type="WpNode*"/>
+ </instance-parameter>
+ <parameter name="command" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="511">the command</doc>
+ <type name="NodeCommand" c:type="WpNodeCommand"/>
+ </parameter>
+ </parameters>
+ </method>
+ <field name="parent_instance">
+ <type name="Proxy" c:type="WpProxy"/>
+ </field>
+ <glib:signal name="ports-changed" when="last">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="266">Emitted when the node's ports change. This is only emitted
+when %WP_NODE_FEATURE_PORTS is enabled.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </glib:signal>
+ <glib:signal name="state-changed" when="last">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="252">Emitted when the node changes state. This is only emitted
+when %WP_PROXY_FEATURE_INFO is enabled.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="old_state" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="255">the old state</doc>
+ <type name="NodeState"/>
+ </parameter>
+ <parameter name="new_state" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.c"
+ line="256">the new state</doc>
+ <type name="NodeState"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </class>
+ <record name="NodeClass"
+ c:type="WpNodeClass"
+ glib:is-gtype-struct-for="Node">
+ <source-position filename="../lib/wp/node.h" line="87"/>
+ <field name="parent_class">
+ <type name="ProxyClass" c:type="WpProxyClass"/>
+ </field>
+ </record>
+ <enumeration name="NodeCommand"
+ glib:type-name="WpNodeCommand"
+ glib:get-type="wp_node_command_get_type"
+ c:type="WpNodeCommand">
+ <member name="suspend"
+ value="0"
+ c:identifier="WP_NODE_COMMAND_SUSPEND"
+ glib:nick="suspend">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.h"
+ line="39">suspends the node, the device might close</doc>
+ </member>
+ <member name="pause"
+ value="1"
+ c:identifier="WP_NODE_COMMAND_PAUSE"
+ glib:nick="pause">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.h"
+ line="40">pauses the node, the device will not close</doc>
+ </member>
+ <member name="start"
+ value="2"
+ c:identifier="WP_NODE_COMMAND_START"
+ glib:nick="start">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.h"
+ line="41">starts procesing data</doc>
+ </member>
+ <member name="enable"
+ value="3"
+ c:identifier="WP_NODE_COMMAND_ENABLE"
+ glib:nick="enable">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.h"
+ line="42">enables the node</doc>
+ </member>
+ <member name="disable"
+ value="4"
+ c:identifier="WP_NODE_COMMAND_DISABLE"
+ glib:nick="disable">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.h"
+ line="43">disables the node</doc>
+ </member>
+ </enumeration>
+ <bitfield name="NodeFeatures"
+ glib:type-name="WpNodeFeatures"
+ glib:get-type="wp_node_features_get_type"
+ c:type="WpNodeFeatures">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.h"
+ line="53">An extension of #WpProxyFeatures</doc>
+ <member name="ports"
+ value="65536"
+ c:identifier="WP_NODE_FEATURE_PORTS"
+ glib:nick="ports">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.h"
+ line="55">caches information about ports, enabling
+ the use of wp_node_get_n_ports(), wp_node_lookup_port(),
+ wp_node_iterate_ports() and related methods</doc>
+ </member>
+ </bitfield>
+ <enumeration name="NodeState"
+ glib:type-name="WpNodeState"
+ glib:get-type="wp_node_state_get_type"
+ c:type="WpNodeState">
+ <member name="error"
+ value="-1"
+ c:identifier="WP_NODE_STATE_ERROR"
+ glib:nick="error">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.h"
+ line="23">error state</doc>
+ </member>
+ <member name="creating"
+ value="0"
+ c:identifier="WP_NODE_STATE_CREATING"
+ glib:nick="creating">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.h"
+ line="24">the node is being created</doc>
+ </member>
+ <member name="suspended"
+ value="1"
+ c:identifier="WP_NODE_STATE_SUSPENDED"
+ glib:nick="suspended">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.h"
+ line="25">the node is suspended, the device might be closed</doc>
+ </member>
+ <member name="idle"
+ value="2"
+ c:identifier="WP_NODE_STATE_IDLE"
+ glib:nick="idle">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.h"
+ line="26">the node is running but there is no active port</doc>
+ </member>
+ <member name="running"
+ value="3"
+ c:identifier="WP_NODE_STATE_RUNNING"
+ glib:nick="running">
+ <doc xml:space="preserve"
+ filename="../lib/wp/node.h"
+ line="27">the node is running</doc>
+ </member>
+ </enumeration>
+ <function-macro name="OBJECT_ARGS"
+ c:identifier="WP_OBJECT_ARGS"
+ introspectable="0">
+ <source-position filename="../lib/wp/debug.h" line="20"/>
+ <parameters>
+ <parameter name="object">
+ </parameter>
+ </parameters>
+ </function-macro>
+ <constant name="OBJECT_FORMAT"
+ value="<%s:%p>"
+ c:type="WP_OBJECT_FORMAT">
+ <source-position filename="../lib/wp/debug.h" line="19"/>
+ <type name="utf8" c:type="gchar*"/>
+ </constant>
+ <record name="ObjectInterest"
+ c:type="WpObjectInterest"
+ glib:type-name="WpObjectInterest"
+ glib:get-type="wp_object_interest_get_type"
+ c:symbol-prefix="object_interest">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="37">An object interest is a helper that is used in #WpObjectManager to
+declare interest in certain kinds of objects.
+An interest is defined by a #GType and a set of constraints on the object's
+properties. An object "matches" the interest if it is of the specified
+#GType (either the same type or a descendant of it) and all the constraints
+are satisfied.</doc>
+ <source-position filename="../lib/wp/object-interest.h" line="68"/>
+ <constructor name="new"
+ c:identifier="wp_object_interest_new"
+ shadowed-by="new_type"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="50">Creates a new interest that declares interest in objects of the specified
+@gtype, with the constraints specified in the variable arguments.
+
+The variable arguments should be a list of constraints terminated with %NULL,
+where each constraint consists of the following arguments:
+ - a #WpConstraintType: the constraint type
+ - a `const gchar *`: the subject name
+ - a `const gchar *`: the format string
+ - 0 or more arguments according to the format string
+
+The format string is interpreted as follows:
+ - the first character is the constraint verb:
+ - `=`: %WP_CONSTRAINT_VERB_EQUALS
+ - `c`: %WP_CONSTRAINT_VERB_IN_LIST
+ - `~`: %WP_CONSTRAINT_VERB_IN_RANGE
+ - `#`: %WP_CONSTRAINT_VERB_MATCHES
+ - `+`: %WP_CONSTRAINT_VERB_IS_PRESENT
+ - `-`: %WP_CONSTRAINT_VERB_IS_ABSENT
+ - the rest of the characters are interpreted as a #GVariant format string,
+ as it would be used in g_variant_new()
+
+The rest of this function's arguments up to the start of the next constraint
+depend on the #GVariant format part of the format string and are used to
+construct a #GVariant for the constraint's value argument.
+
+For further reading on the constraint's arguments, see
+wp_object_interest_add_constraint()
+
+For example, this interest matches objects that are descendands of #WpProxy
+with a "bound-id" between 0 and 100 (inclusive), with a pipewire property
+called "format.dsp" that contains the string "audio" somewhere in the value
+and with a pipewire property "port.name" being present (with any value):
+|[
+interest = wp_object_interest_new (WP_TYPE_PROXY,
+ WP_CONSTRAINT_TYPE_G_PROPERTY, "bound-id", "~(uu)", 0, 100,
+ WP_CONSTRAINT_TYPE_PW_PROPERTY, "format.dsp", "#s", "*audio*",
+ WP_CONSTRAINT_TYPE_PW_PROPERTY, "port.name", "+",
+ NULL);
+]|</doc>
+ <source-position filename="../lib/wp/object-interest.h" line="71"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="95">the new object interest</doc>
+ <type name="ObjectInterest" c:type="WpObjectInterest*"/>
+ </return-value>
+ <parameters>
+ <parameter name="gtype" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="52">the type of the object to declare interest in</doc>
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ <parameter name="..." transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="53">a set of constraints, terminated with %NULL</doc>
+ <varargs/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_type"
+ c:identifier="wp_object_interest_new_type"
+ shadows="new">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="148">Creates a new interest that declares interest in objects of the specified
+@gtype, without any property constraints. To add property constraints,
+you can call wp_object_interest_add_constraint() afterwards.</doc>
+ <source-position filename="../lib/wp/object-interest.h" line="77"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="156">the new object interest</doc>
+ <type name="ObjectInterest" c:type="WpObjectInterest*"/>
+ </return-value>
+ <parameters>
+ <parameter name="gtype" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="150">the type of the object to declare interest in</doc>
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_valist"
+ c:identifier="wp_object_interest_new_valist"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="108">va_list version of wp_object_interest_new()</doc>
+ <source-position filename="../lib/wp/object-interest.h" line="74"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="115">the new object interest</doc>
+ <type name="ObjectInterest" c:type="WpObjectInterest*"/>
+ </return-value>
+ <parameters>
+ <parameter name="gtype" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="110">the type of the object to declare interest in</doc>
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ <parameter name="args" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="111">pointer to va_list containing the constraints</doc>
+ <type name="va_list" c:type="va_list*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="add_constraint"
+ c:identifier="wp_object_interest_add_constraint">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="168">Adds a constraint to this interest. Constraints consist of a @type,
+a @subject, a @verb and, depending on the @verb, a @value.
+
+Constraints are almost like a spoken language sentence that declare a
+condition that must be true in order to consider that an object can match
+this interest. For instance, a constraint can be "pipewire property
+'object.id' equals 10". This would be translated to:
+|[
+wp_object_interest_add_constraint (i,
+ WP_CONSTRAINT_TYPE_PW_PROPERTY, "object.id",
+ WP_CONSTRAINT_VERB_EQUALS, g_variant_new_int (10));
+]|
+
+Some verbs require a @value and some others do not. For those that do,
+the @value must be of a specific type:
+ - %WP_CONSTRAINT_VERB_EQUALS: @value can be a string, a (u)int32,
+ a (u)int64, a double or a boolean. The @subject value must equal this
+ value for the constraint to be satisfied
+ - %WP_CONSTRAINT_VERB_IN_LIST: @value must be a tuple that contains any
+ number of items of the same type; the items can be string, (u)int32,
+ (u)int64 or double. These items make a list that the @subject's value
+ will be checked against. If any of the items equals the @subject value,
+ the constraint is satisfied
+ - %WP_CONSTRAINT_VERB_IN_RANGE: @value must be a tuple that contains exactly
+ 2 numbers of the same type ((u)int32, (u)int64 or double), meaning the
+ minimum and maximum (inclusive) of the range. If the @subject value is a
+ number within this range, the constraint is satisfied
+ - %WP_CONSTRAINT_VERB_MATCHES: @value must be a string that defines a
+ pattern usable with #GPatternSpec. If the @subject value matches this
+ pattern, the constraint is satisfied
+
+In case the type of the @subject value is not the same type as the one
+requested by the type of the @value, the @subject value is converted.
+For #GObject properties, this conversion is done using g_value_transform(),
+so limitations of this function apply. In the case of PipeWire properties,
+which are *always* strings, conversion is done as follows:
+ - to boolean: `"true"` or `"1"` means %TRUE, `"false"` or `"0"` means %FALSE
+ - to int / uint / int64 / uint64: One of the `strtol()` family of functions
+ is used to convert, using base 10
+ - to double: `strtod()` is used
+
+This method does not fail if invalid arguments are given. However,
+wp_object_interest_validate() should be called after adding all the
+constraints on an interest in order to catch errors.</doc>
+ <source-position filename="../lib/wp/object-interest.h" line="80"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="170">the object interest</doc>
+ <type name="ObjectInterest" c:type="WpObjectInterest*"/>
+ </instance-parameter>
+ <parameter name="type" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="171">the constraint type</doc>
+ <type name="ConstraintType" c:type="WpConstraintType"/>
+ </parameter>
+ <parameter name="subject" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="172">the subject that the constraint applies to</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="verb" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="173">the operation that is performed to check the constraint</doc>
+ <type name="ConstraintVerb" c:type="WpConstraintVerb"/>
+ </parameter>
+ <parameter name="value"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="174">the value to check for</doc>
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="copy" c:identifier="wp_object_interest_copy">
+ <source-position filename="../lib/wp/object-interest.h" line="85"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="247">a deep copy of @self</doc>
+ <type name="ObjectInterest" c:type="WpObjectInterest*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="245">the object interest to copy</doc>
+ <type name="ObjectInterest" c:type="WpObjectInterest*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="free" c:identifier="wp_object_interest_free">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="275">Releases @self and all the memory associated with it</doc>
+ <source-position filename="../lib/wp/object-interest.h" line="88"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="277">the object interest to free</doc>
+ <type name="ObjectInterest" c:type="WpObjectInterest*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="matches" c:identifier="wp_object_interest_matches">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="658">Checks if the specified @object matches the type and all the constraints
+that are described in @self
+
+Equivalent to `wp_object_interest_matches_full (self,
+G_OBJECT_TYPE (object), object, NULL, NULL)`</doc>
+ <source-position filename="../lib/wp/object-interest.h" line="94"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="669">%TRUE if the object matches, %FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="660">the object interest</doc>
+ <type name="ObjectInterest" c:type="WpObjectInterest*"/>
+ </instance-parameter>
+ <parameter name="object"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="661">the target object to check for a match</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="matches_full"
+ c:identifier="wp_object_interest_matches_full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="678">A low-level version of wp_object_interest_matches(). In this version,
+the object's type is directly given in @object_type and is not inferred
+from the @object. @object is only used to check for constraints against
+#GObject properties.
+
+@pw_props and @pw_global_props are used to check constraints against
+PipeWire object properties and global properties, respectively.
+
+@object, @pw_props and @pw_global_props may be %NULL, but in case there
+are any constraints that require them, the match will fail.
+As a special case, if @object is not %NULL and is a subclass of #WpProxy,
+then @pw_props and @pw_global_props, if required, will be internally
+retrieved from @object by calling wp_proxy_get_properties() and
+wp_proxy_get_global_properties() respectively.</doc>
+ <source-position filename="../lib/wp/object-interest.h" line="97"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="704">%TRUE if the the type matches this interest and the properties
+ match the constraints, %FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="680">the object interest</doc>
+ <type name="ObjectInterest" c:type="WpObjectInterest*"/>
+ </instance-parameter>
+ <parameter name="object_type" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="681">the type to be checked against the interest's type</doc>
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ <parameter name="object"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="682">the object to be used for
+ checking constraints of type %WP_CONSTRAINT_TYPE_G_PROPERTY</doc>
+ <type name="GObject.Object" c:type="gpointer"/>
+ </parameter>
+ <parameter name="pw_props"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="684">the properties to be used for
+ checking constraints of type %WP_CONSTRAINT_TYPE_PW_PROPERTY</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </parameter>
+ <parameter name="pw_global_props"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="686">the properties to be used for
+ checking constraints of type %WP_CONSTRAINT_TYPE_PW_GLOBAL_PROPERTY</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="validate"
+ c:identifier="wp_object_interest_validate"
+ throws="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="296">Validates the interest, ensuring that the interest #GType is a valid
+object and that all the constraints have been expressed properly.</doc>
+ <source-position filename="../lib/wp/object-interest.h" line="91"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="304">%TRUE if the interest is valid and can be used in a match,
+ %FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-interest.c"
+ line="298">the object interest to validate</doc>
+ <type name="ObjectInterest" c:type="WpObjectInterest*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ </record>
+ <class name="ObjectManager"
+ c:symbol-prefix="object_manager"
+ c:type="WpObjectManager"
+ parent="GObject.Object"
+ glib:type-name="WpObjectManager"
+ glib:get-type="wp_object_manager_get_type"
+ glib:type-struct="ObjectManagerClass">
+ <source-position filename="../lib/wp/object-manager.h" line="26"/>
+ <constructor name="new" c:identifier="wp_object_manager_new">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="197">Constructs a new object manager.</doc>
+ <source-position filename="../lib/wp/object-manager.h" line="29"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="202">the newly constructed object manager</doc>
+ <type name="ObjectManager" c:type="WpObjectManager*"/>
+ </return-value>
+ </constructor>
+ <method name="add_interest"
+ c:identifier="wp_object_manager_add_interest"
+ shadowed-by="add_interest_full"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="224">Equivalent to:
+|[
+WpObjectInterest *i = wp_object_interest_new (gtype, ...);
+wp_object_manager_add_interest_full (self, i);
+]|
+
+The constraints specified in the variable arguments must follow the rules
+documented in wp_object_interest_new().</doc>
+ <source-position filename="../lib/wp/object-manager.h" line="39"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="226">the object manager</doc>
+ <type name="ObjectManager" c:type="WpObjectManager*"/>
+ </instance-parameter>
+ <parameter name="gtype" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="227">the #GType of the objects that we are declaring interest in</doc>
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ <parameter name="..." transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="228">a list of constraints, terminated by %NULL</doc>
+ <varargs/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_interest_full"
+ c:identifier="wp_object_manager_add_interest_full"
+ shadows="add_interest">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="253">Declares interest in a certain kind of object. Interest consists of a #GType
+that the object must be an ancestor of (g_type_is_a must match) and
+optionally, a set of additional constraints on certain properties of the
+object. Refer to #WpObjectInterest for more details.</doc>
+ <source-position filename="../lib/wp/object-manager.h" line="43"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="255">the object manager</doc>
+ <type name="ObjectManager" c:type="WpObjectManager*"/>
+ </instance-parameter>
+ <parameter name="interest" transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="256">the interest</doc>
+ <type name="ObjectInterest" c:type="WpObjectInterest*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_n_objects"
+ c:identifier="wp_object_manager_get_n_objects">
+ <source-position filename="../lib/wp/object-manager.h" line="55"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="317">the number of objects managed by this #WpObjectManager</doc>
+ <type name="guint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="315">the object manager</doc>
+ <type name="ObjectManager" c:type="WpObjectManager*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="is_installed"
+ c:identifier="wp_object_manager_is_installed">
+ <source-position filename="../lib/wp/object-manager.h" line="34"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="214">%TRUE if the object manager is installed (the
+ WpObjectManager::installed has been emitted), %FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="212">the object manager</doc>
+ <type name="ObjectManager" c:type="WpObjectManager*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="iterate" c:identifier="wp_object_manager_iterate">
+ <source-position filename="../lib/wp/object-manager.h" line="58"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="404">a #WpIterator that iterates over all the managed
+ objects of this object manager</doc>
+ <type name="Iterator" c:type="WpIterator*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="402">the object manager</doc>
+ <type name="ObjectManager" c:type="WpObjectManager*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="iterate_filtered"
+ c:identifier="wp_object_manager_iterate_filtered"
+ shadowed-by="iterate_filtered_full"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="422">Equivalent to:
+|[
+WpObjectInterest *i = wp_object_interest_new (gtype, ...);
+return wp_object_manager_iterate_filtered_full (self, i);
+]|
+
+The constraints specified in the variable arguments must follow the rules
+documented in wp_object_interest_new().</doc>
+ <source-position filename="../lib/wp/object-manager.h" line="61"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="437">a #WpIterator that iterates over all the matching
+ objects of this object manager</doc>
+ <type name="Iterator" c:type="WpIterator*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="424">the object manager</doc>
+ <type name="ObjectManager" c:type="WpObjectManager*"/>
+ </instance-parameter>
+ <parameter name="gtype" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="425">the #GType of the objects to iterate through</doc>
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ <parameter name="..." transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="426">a list of constraints, terminated by %NULL</doc>
+ <varargs/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="iterate_filtered_full"
+ c:identifier="wp_object_manager_iterate_filtered_full"
+ shadows="iterate_filtered">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="455">Iterates through all the objects managed by this object manager that
+match the specified @interest.</doc>
+ <source-position filename="../lib/wp/object-manager.h" line="65"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="463">a #WpIterator that iterates over all the matching
+ objects of this object manager</doc>
+ <type name="Iterator" c:type="WpIterator*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="457">the object manager</doc>
+ <type name="ObjectManager" c:type="WpObjectManager*"/>
+ </instance-parameter>
+ <parameter name="interest" transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="458">the interest</doc>
+ <type name="ObjectInterest" c:type="WpObjectInterest*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="lookup"
+ c:identifier="wp_object_manager_lookup"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="491">Equivalent to:
+|[
+WpObjectInterest *i = wp_object_interest_new (gtype, ...);
+return wp_object_manager_lookup_full (self, i);
+]|
+
+The constraints specified in the variable arguments must follow the rules
+documented in wp_object_interest_new().</doc>
+ <source-position filename="../lib/wp/object-manager.h" line="69"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="506">the first managed object
+ that matches the lookup interest, or %NULL if no object matches</doc>
+ <type name="GObject.Object" c:type="gpointer"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="493">the object manager</doc>
+ <type name="ObjectManager" c:type="WpObjectManager*"/>
+ </instance-parameter>
+ <parameter name="gtype" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="494">the #GType of the object to lookup</doc>
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ <parameter name="..." transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="495">a list of constraints, terminated by %NULL</doc>
+ <varargs/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="lookup_full" c:identifier="wp_object_manager_lookup_full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="524">Searches for an object that matches the specified @interest and returns
+it, if found. If more than one objects match, only the first one is returned.
+To find multiple objects that match certain criteria,
+wp_object_manager_iterate_filtered() is more suitable.</doc>
+ <source-position filename="../lib/wp/object-manager.h" line="73"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="534">the first managed object
+ that matches the lookup interest, or %NULL if no object matches</doc>
+ <type name="GObject.Object" c:type="gpointer"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="526">the object manager</doc>
+ <type name="ObjectManager" c:type="WpObjectManager*"/>
+ </instance-parameter>
+ <parameter name="interest" transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="527">the interst</doc>
+ <type name="ObjectInterest" c:type="WpObjectInterest*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="request_proxy_features"
+ c:identifier="wp_object_manager_request_proxy_features">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="280">Requests the object manager to automatically prepare the @wanted_features
+on any managed object that is of the specified @proxy_type. These features
+will always be prepared before the object appears on the object manager.</doc>
+ <source-position filename="../lib/wp/object-manager.h" line="49"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="282">the object manager</doc>
+ <type name="ObjectManager" c:type="WpObjectManager*"/>
+ </instance-parameter>
+ <parameter name="proxy_type" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="283">the #WpProxy descendant type</doc>
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ <parameter name="wanted_features" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="284">the features to enable on this kind of proxy</doc>
+ <type name="ProxyFeatures" c:type="WpProxyFeatures"/>
+ </parameter>
+ </parameters>
+ </method>
+ <property name="core" transfer-ownership="none">
+ <type name="Core"/>
+ </property>
+ <glib:signal name="installed" when="first">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="183">This is emitted once after the object manager is installed with
+wp_core_install_object_manager(). If there are objects that need
+to be prepared asynchronously internally, emission of this signal is
+delayed until all objects are ready.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </glib:signal>
+ <glib:signal name="object-added" when="first">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="144">Emitted when an object that matches the interests of this object manager
+is made available.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="147">the managed object that was just added</doc>
+ <type name="GObject.Object"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="object-removed" when="first">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="156">Emitted when an object that was previously added on this object manager
+is now being removed (and most likely destroyed). At the time that this
+signal is emitted, the object is still alive.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="159">the managed object that is being removed</doc>
+ <type name="GObject.Object"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="objects-changed" when="first">
+ <doc xml:space="preserve"
+ filename="../lib/wp/object-manager.c"
+ line="169">Emitted when one or more objects have been recently added or removed
+from this object manager. This signal is useful to get notified only once
+when multiple changes happen in a short timespan. The receiving callback
+may retrieve the updated list of objects by calling
+wp_object_manager_iterate()</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </glib:signal>
+ </class>
+ <record name="ObjectManagerClass"
+ c:type="WpObjectManagerClass"
+ glib:is-gtype-struct-for="ObjectManager">
+ <source-position filename="../lib/wp/object-manager.h" line="26"/>
+ <field name="parent_class">
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+ </field>
+ </record>
+ <constant name="PROXY_FEATURES_STANDARD"
+ value="7"
+ c:type="WP_PROXY_FEATURES_STANDARD">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.h"
+ line="46">A constant set of features that contains the standard features that are
+available in the #WpProxy class. The standard features are usually all
+enabled at once, even if not requested explicitly. It is a good practice,
+though, to enable only the features that you actually need. This leaves
+room for optimizations in the #WpProxy class.</doc>
+ <source-position filename="../lib/wp/proxy.h" line="55"/>
+ <type name="gint" c:type="gint"/>
+ </constant>
+ <class name="Plugin"
+ c:symbol-prefix="plugin"
+ c:type="WpPlugin"
+ parent="GObject.Object"
+ abstract="1"
+ glib:type-name="WpPlugin"
+ glib:get-type="wp_plugin_get_type"
+ glib:type-struct="PluginClass">
+ <doc xml:space="preserve"
+ filename="../lib/wp/plugin.c"
+ line="30">#WpPlugin is a base class for objects that provide functionality to the
+WirePlumber daemon.
+
+Typically, a plugin is created within a module and then registered to
+make it available for use by the daemon. The daemon is responsible for
+calling #WpPluginClass.activate() after all modules have been loaded,
+the core is connected and the initial discovery of global objects is
+done.</doc>
+ <source-position filename="../lib/wp/plugin.h" line="36"/>
+ <virtual-method name="activate" invoker="activate">
+ <doc xml:space="preserve"
+ filename="../lib/wp/plugin.c"
+ line="170">Activates the plugin. The plugin is required to start any operations only
+when this method is called and not before.</doc>
+ <source-position filename="../lib/wp/plugin.h" line="34"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/plugin.c"
+ line="172">the plugin</doc>
+ <type name="Plugin" c:type="WpPlugin*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="deactivate" invoker="deactivate">
+ <doc xml:space="preserve"
+ filename="../lib/wp/plugin.c"
+ line="186">Deactivates the plugin. The plugin is required to stop all operations and
+release all resources associated with it.</doc>
+ <source-position filename="../lib/wp/plugin.h" line="35"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/plugin.c"
+ line="188">the plugin</doc>
+ <type name="Plugin" c:type="WpPlugin*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <method name="activate" c:identifier="wp_plugin_activate">
+ <doc xml:space="preserve"
+ filename="../lib/wp/plugin.c"
+ line="170">Activates the plugin. The plugin is required to start any operations only
+when this method is called and not before.</doc>
+ <source-position filename="../lib/wp/plugin.h" line="48"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/plugin.c"
+ line="172">the plugin</doc>
+ <type name="Plugin" c:type="WpPlugin*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="deactivate" c:identifier="wp_plugin_deactivate">
+ <doc xml:space="preserve"
+ filename="../lib/wp/plugin.c"
+ line="186">Deactivates the plugin. The plugin is required to stop all operations and
+release all resources associated with it.</doc>
+ <source-position filename="../lib/wp/plugin.h" line="51"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/plugin.c"
+ line="188">the plugin</doc>
+ <type name="Plugin" c:type="WpPlugin*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_core" c:identifier="wp_plugin_get_core">
+ <source-position filename="../lib/wp/plugin.h" line="45"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/plugin.c"
+ line="161">the core associated with this plugin</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/plugin.c"
+ line="159">the plugin</doc>
+ <type name="Plugin" c:type="WpPlugin*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_module" c:identifier="wp_plugin_get_module">
+ <source-position filename="../lib/wp/plugin.h" line="42"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/plugin.c"
+ line="146">the module associated with this plugin</doc>
+ <type name="Module" c:type="WpModule*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/plugin.c"
+ line="144">the plugin</doc>
+ <type name="Plugin" c:type="WpPlugin*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="register" c:identifier="wp_plugin_register">
+ <doc xml:space="preserve"
+ filename="../lib/wp/plugin.c"
+ line="127">Registers the plugin to its associated core, making it available for use</doc>
+ <source-position filename="../lib/wp/plugin.h" line="39"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="plugin" transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/plugin.c"
+ line="129">the plugin</doc>
+ <type name="Plugin" c:type="WpPlugin*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <property name="module"
+ writable="1"
+ construct-only="1"
+ transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/plugin.c"
+ line="116">The module that created this plugin.
+Implementations should initialize this in the constructor.</doc>
+ <type name="Module"/>
+ </property>
+ <field name="parent_instance">
+ <type name="GObject.Object" c:type="GObject"/>
+ </field>
+ </class>
+ <record name="PluginClass"
+ c:type="WpPluginClass"
+ glib:is-gtype-struct-for="Plugin">
+ <source-position filename="../lib/wp/plugin.h" line="36"/>
+ <field name="parent_class">
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+ </field>
+ <field name="activate">
+ <callback name="activate">
+ <source-position filename="../lib/wp/plugin.h" line="34"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/plugin.c"
+ line="172">the plugin</doc>
+ <type name="Plugin" c:type="WpPlugin*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="deactivate">
+ <callback name="deactivate">
+ <source-position filename="../lib/wp/plugin.h" line="35"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/plugin.c"
+ line="188">the plugin</doc>
+ <type name="Plugin" c:type="WpPlugin*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ </record>
+ <class name="Port"
+ c:symbol-prefix="port"
+ c:type="WpPort"
+ parent="Proxy"
+ glib:type-name="WpPort"
+ glib:get-type="wp_port_get_type"
+ glib:type-struct="PortClass">
+ <source-position filename="../lib/wp/port.h" line="35"/>
+ <method name="get_direction" c:identifier="wp_port_get_direction">
+ <source-position filename="../lib/wp/port.h" line="38"/>
+ <return-value transfer-ownership="none">
+ <type name="Direction" c:type="WpDirection"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="Port" c:type="WpPort*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ </class>
+ <record name="PortClass"
+ c:type="WpPortClass"
+ glib:is-gtype-struct-for="Port">
+ <source-position filename="../lib/wp/port.h" line="35"/>
+ <field name="parent_class">
+ <type name="ProxyClass" c:type="WpProxyClass"/>
+ </field>
+ </record>
+ <record name="Properties"
+ c:type="WpProperties"
+ glib:type-name="WpProperties"
+ glib:get-type="wp_properties_get_type"
+ c:symbol-prefix="properties">
+ <source-position filename="../lib/wp/properties.h" line="30"/>
+ <constructor name="new"
+ c:identifier="wp_properties_new"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="82">Constructs a new properties set that contains the given properties</doc>
+ <source-position filename="../lib/wp/properties.h" line="36"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="90">the newly constructed properties set</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </return-value>
+ <parameters>
+ <parameter name="key" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="84">a property name</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="..." transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="85">a property value, followed by any number of further property
+ key-value pairs, followed by %NULL</doc>
+ <varargs/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_copy" c:identifier="wp_properties_new_copy">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="214">Constructs a new #WpProperties that contains a copy of all the properties
+contained in the given @props structure.</doc>
+ <source-position filename="../lib/wp/properties.h" line="51"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="221">the newly constructed properties set</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </return-value>
+ <parameters>
+ <parameter name="props"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="216">a native `pw_properties` structure to copy</doc>
+ <type name="gpointer" c:type="const pw_properties*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_copy_dict"
+ c:identifier="wp_properties_new_copy_dict">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="268">Constructs a new #WpProperties that contains a copy of all the properties
+contained in the given @dict structure.</doc>
+ <source-position filename="../lib/wp/properties.h" line="57"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="275">the newly constructed properties set</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </return-value>
+ <parameters>
+ <parameter name="dict"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="270">a native `spa_dict` structure to copy</doc>
+ <type name="gpointer" c:type="const spa_dict*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_empty" c:identifier="wp_properties_new_empty">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="65">Creates a new empty properties set</doc>
+ <source-position filename="../lib/wp/properties.h" line="33"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="70">the newly constructed properties set</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </return-value>
+ </constructor>
+ <constructor name="new_string" c:identifier="wp_properties_new_string">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="130">Constructs a new properties set that contains the properties that can
+be parsed from the given string</doc>
+ <source-position filename="../lib/wp/properties.h" line="42"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="138">the newly constructed properties set</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </return-value>
+ <parameters>
+ <parameter name="str" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="132">a string containing a whitespace separated list of key=value pairs
+ (ex. "key1=value1 key2=value2")</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_take" c:identifier="wp_properties_new_take">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="187">Constructs a new #WpProperties that wraps the given @props structure,
+allowing reading & writing properties on that @props structure through
+the #WpProperties API.
+
+In constrast with wp_properties_new_wrap(), this function assumes ownership
+of the @props structure, so it will try to free @props when it is destroyed.</doc>
+ <source-position filename="../lib/wp/properties.h" line="48"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="198">the newly constructed properties set</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </return-value>
+ <parameters>
+ <parameter name="props"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="189">a native `pw_properties` structure to wrap</doc>
+ <type name="gpointer" c:type="pw_properties*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_valist"
+ c:identifier="wp_properties_new_valist"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="105">This is the `va_list` version of wp_properties_new()</doc>
+ <source-position filename="../lib/wp/properties.h" line="39"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="112">the newly constructed properties set</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </return-value>
+ <parameters>
+ <parameter name="key" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="107">a property name</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="args" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="108">the variable arguments passed to wp_properties_new()</doc>
+ <type name="va_list" c:type="va_list"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_wrap" c:identifier="wp_properties_new_wrap">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="154">Constructs a new #WpProperties that wraps the given @props structure,
+allowing reading properties on that @props structure through
+the #WpProperties API.
+
+Care must be taken when using this function, since the returned #WpProperties
+object does not own the @props structure. Therefore, if the owner decides
+to free @props, the returned #WpProperties will crash when used. In addition,
+the returned #WpProperties object will not try to free @props when destroyed.
+
+Furthermore, note that the returned #WpProperties object is immutable. That
+means that you cannot add or modify any properties on it, unless you make
+a copy first.</doc>
+ <source-position filename="../lib/wp/properties.h" line="45"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="171">the newly constructed properties set</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </return-value>
+ <parameters>
+ <parameter name="props"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="156">a native `pw_properties` structure to wrap</doc>
+ <type name="gpointer" c:type="const pw_properties*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_wrap_dict"
+ c:identifier="wp_properties_new_wrap_dict">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="237">Constructs a new #WpProperties that wraps the given @dict structure,
+allowing reading properties from that @dict through the #WpProperties API.
+
+Note that the returned object does not own the @dict, so care must be taken
+not to free it externally while this #WpProperties object is alive.
+
+In addition, note that the returned #WpProperties object is immutable. That
+means that you cannot add or modify any properties on it, since there is
+no defined method for modifying a `struct spa_dict`. If you need to change
+this properties set later, you should make a copy with wp_properties_copy().</doc>
+ <source-position filename="../lib/wp/properties.h" line="54"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="252">the newly constructed properties set</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </return-value>
+ <parameters>
+ <parameter name="dict"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="239">a native `spa_dict` structure to wrap</doc>
+ <type name="gpointer" c:type="const spa_dict*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="add" c:identifier="wp_properties_add">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="411">Adds new properties in @self, using the given @props as a source.
+Properties (keys) from @props that are already contained in @self
+are not modified, unlike what happens with wp_properties_update().
+Properties in @self that are not contained in @props are left untouched.</doc>
+ <source-position filename="../lib/wp/properties.h" line="85"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="421">the number of properties that were changed</doc>
+ <type name="gint" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="413">a properties object</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </instance-parameter>
+ <parameter name="props" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="414">a properties set that contains properties to add</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_from_dict" c:identifier="wp_properties_add_from_dict">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="433">Adds new properties in @self, using the given @dict as a source.
+Properties (keys) from @dict that are already contained in @self
+are not modified, unlike what happens with wp_properties_update_from_dict().
+Properties in @self that are not contained in @dict are left untouched.</doc>
+ <source-position filename="../lib/wp/properties.h" line="88"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="443">the number of properties that were changed</doc>
+ <type name="gint" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="435">a properties object</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </instance-parameter>
+ <parameter name="dict"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="436">a `spa_dict` that contains properties to add</doc>
+ <type name="gpointer" c:type="const spa_dict*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_keys"
+ c:identifier="wp_properties_add_keys"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="547">Adds new properties in @self, using the given @props as a source.
+Unlike wp_properties_add(), this function only adds properties that
+have one of the specified keys; the rest is left untouched.</doc>
+ <source-position filename="../lib/wp/properties.h" line="108"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="558">the number of properties that were changed</doc>
+ <type name="gint" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="549">a properties set</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </instance-parameter>
+ <parameter name="props" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="550">a properties set that contains properties to add</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </parameter>
+ <parameter name="key1" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="551">a property to add</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="..." transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="552">a list of additional properties to add, followed by %NULL</doc>
+ <varargs/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_keys_array"
+ c:identifier="wp_properties_add_keys_array">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="617">The same as wp_properties_add_keys(), using a NULL-terminated array
+for specifying the keys to add</doc>
+ <source-position filename="../lib/wp/properties.h" line="116"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="626">the number of properties that were changed</doc>
+ <type name="gint" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="619">a properties set</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </instance-parameter>
+ <parameter name="props" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="620">a properties set that contains properties to add</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </parameter>
+ <parameter name="keys" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="621">the properties to add</doc>
+ <array c:type="const gchar**">
+ <type name="utf8" c:type="gchar*"/>
+ </array>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_keys_from_dict"
+ c:identifier="wp_properties_add_keys_from_dict"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="582">Adds new properties in @self, using the given @dict as a source.
+Unlike wp_properties_add_from_dict(), this function only adds
+properties that have one of the specified keys; the rest is left untouched.</doc>
+ <source-position filename="../lib/wp/properties.h" line="112"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="593">the number of properties that were changed</doc>
+ <type name="gint" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="584">a properties set</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </instance-parameter>
+ <parameter name="dict"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="585">a `spa_dict` that contains properties to add</doc>
+ <type name="gpointer" c:type="const spa_dict*"/>
+ </parameter>
+ <parameter name="key1" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="586">a property to add</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="..." transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="587">a list of additional properties to add, followed by %NULL</doc>
+ <varargs/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="copy" c:identifier="wp_properties_copy">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="291">Constructs and returns a new #WpProperties object that contains a copy
+of all the properties contained in @other.</doc>
+ <source-position filename="../lib/wp/properties.h" line="60"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="298">the newly constructed properties set</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="other" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="293">a properties object</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="ensure_unique_owner"
+ c:identifier="wp_properties_ensure_unique_owner">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="341">Ensures that the given properties set is uniquely owned, which means:
+ - its reference count is 1
+ - it is not wrapping a native `spa_dict` or `pw_properties` object
+
+If @self is not uniquely owned already, then it is unrefed and a copy of
+it is returned instead. You should always consider @self as unsafe to use
+after this call and you should use the returned object instead.</doc>
+ <source-position filename="../lib/wp/properties.h" line="71"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="353">the uniquely owned properties object</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="343">a properties object</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get" c:identifier="wp_properties_get">
+ <source-position filename="../lib/wp/properties.h" line="122"/>
+ <return-value transfer-ownership="none" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="645">the value of the property identified
+ with @key, or %NULL if this property is not contained in @self</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="642">a properties object</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </instance-parameter>
+ <parameter name="key" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="643">a property key</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="iterate" c:identifier="wp_properties_iterate">
+ <source-position filename="../lib/wp/properties.h" line="139"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="799">an iterator that iterates over the properties.
+ Use wp_properties_iterator_item_get_key() and
+ wp_properties_iterator_item_get_value() to parse the items returned by
+ this iterator.</doc>
+ <type name="Iterator" c:type="WpIterator*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="797">a properties object</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="matches" c:identifier="wp_properties_matches">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="904">Checks if all property values contained in @other are matching with the
+values in @self.
+
+If a property is contained in @other and not in @self, the result is not
+matched. If a property is contained in both sets, then the value of the
+property in @other is interpreted as a glob-style pattern
+(using g_pattern_match_simple()) and the value in @self is checked to
+see if it matches with this pattern.</doc>
+ <source-position filename="../lib/wp/properties.h" line="162"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="918">%TRUE if all matches were successfull, %FALSE if at least one
+ property value did not match</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="906">a properties object</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </instance-parameter>
+ <parameter name="other" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="907">a set of properties to match</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peek_dict" c:identifier="wp_properties_peek_dict">
+ <source-position filename="../lib/wp/properties.h" line="150"/>
+ <return-value transfer-ownership="none" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="854">the internal properties set as a `struct spa_dict *`</doc>
+ <type name="gpointer" c:type="const spa_dict*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="852">a properties object</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="ref" c:identifier="wp_properties_ref">
+ <source-position filename="../lib/wp/properties.h" line="65"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="318">@self with an additional reference count on it</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="316">a properties object</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="set" c:identifier="wp_properties_set">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="657">Sets the given property @key - @value pair on @self. If the property
+already existed, the value is overwritten with the new one.
+
+If the @value is %NULL, then the specified property is removed from @self</doc>
+ <source-position filename="../lib/wp/properties.h" line="125"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="668">%1 if the property was changed. %0 if nothing was changed because
+ the property already existed with the same value or because the key to
+ remove did not exist.</doc>
+ <type name="gint" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="659">a properties object</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </instance-parameter>
+ <parameter name="key" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="660">a property key</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="value"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="661">a property value</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="setf" c:identifier="wp_properties_setf" introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="683">Formats the given @format string with the specified arguments and sets the
+result as a value of the property specified with @key</doc>
+ <source-position filename="../lib/wp/properties.h" line="129"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="694">%1 if the property was changed. %0 if nothing was changed because
+ the property already existed with the same value</doc>
+ <type name="gint" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="685">a properties object</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </instance-parameter>
+ <parameter name="key" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="686">a property key</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="format" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="687">a printf-style format to be formatted and set as a value for
+ this property @key</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="..." transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="689">arguments for @format</doc>
+ <varargs/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="setf_valist"
+ c:identifier="wp_properties_setf_valist"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="711">This is the `va_list` version of wp_properties_setf()</doc>
+ <source-position filename="../lib/wp/properties.h" line="133"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="721">%1 if the property was changed. %0 if nothing was changed because
+ the property already existed with the same value</doc>
+ <type name="gint" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="713">a properties object</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </instance-parameter>
+ <parameter name="key" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="714">a property key</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="format" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="715">a printf-style format to be formatted and set as a value for
+ this property @key</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="args" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="717">the variable arguments passed to wp_properties_setf()</doc>
+ <type name="va_list" c:type="va_list"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="to_pw_properties"
+ c:identifier="wp_properties_to_pw_properties">
+ <source-position filename="../lib/wp/properties.h" line="153"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="868">a copy of the properties in @self
+ as a `struct pw_properties`</doc>
+ <type name="gpointer" c:type="pw_properties*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="866">a properties object</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="unref" c:identifier="wp_properties_unref">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="327">Decreases the reference count on @self and frees it when the ref count
+reaches zero.</doc>
+ <source-position filename="../lib/wp/properties.h" line="68"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="329">a properties object</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="unref_and_take_pw_properties"
+ c:identifier="wp_properties_unref_and_take_pw_properties">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="879">Similar to wp_properties_to_pw_properties(), but this method avoids making
+a copy of the properties by returning the `struct pw_properties` that is
+stored internally and then freeing the #WpProperties wrapper.
+
+If @self is not uniquely owned (see wp_properties_ensure_unique_owner()),
+then this method does make a copy and is the same as
+wp_properties_to_pw_properties(), performance-wise.</doc>
+ <source-position filename="../lib/wp/properties.h" line="156"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="891">the properties in @self as a `struct pw_properties`</doc>
+ <type name="gpointer" c:type="pw_properties*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="881">a properties object</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="update" c:identifier="wp_properties_update">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="368">Updates (adds new or modifies existing) properties in @self, using the
+given @props as a source. Any properties that are not contained in @props
+are left untouched.</doc>
+ <source-position filename="../lib/wp/properties.h" line="76"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="377">the number of properties that were changed</doc>
+ <type name="gint" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="370">a properties object</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </instance-parameter>
+ <parameter name="props" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="371">a properties set that contains properties to update</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="update_from_dict"
+ c:identifier="wp_properties_update_from_dict">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="389">Updates (adds new or modifies existing) properties in @self, using the
+given @dict as a source. Any properties that are not contained in @dict
+are left untouched.</doc>
+ <source-position filename="../lib/wp/properties.h" line="79"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="398">the number of properties that were changed</doc>
+ <type name="gint" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="391">a properties object</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </instance-parameter>
+ <parameter name="dict"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="392">a `spa_dict` that contains properties to update</doc>
+ <type name="gpointer" c:type="const spa_dict*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="update_keys"
+ c:identifier="wp_properties_update_keys"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="456">Updates (adds new or modifies existing) properties in @self, using the
+given @props as a source.
+Unlike wp_properties_update(), this function only updates properties that
+have one of the specified keys; the rest is left untouched.</doc>
+ <source-position filename="../lib/wp/properties.h" line="94"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="468">the number of properties that were changed</doc>
+ <type name="gint" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="458">a properties set</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </instance-parameter>
+ <parameter name="props" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="459">a properties set that contains properties to update</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </parameter>
+ <parameter name="key1" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="460">a property to update</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="..." transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="461">a list of additional properties to update, followed by %NULL</doc>
+ <varargs/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="update_keys_array"
+ c:identifier="wp_properties_update_keys_array">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="524">The same as wp_properties_update_keys(), using a NULL-terminated array
+for specifying the keys to update</doc>
+ <source-position filename="../lib/wp/properties.h" line="102"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="533">the number of properties that were changed</doc>
+ <type name="gint" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="526">a properties set</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </instance-parameter>
+ <parameter name="props" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="527">a properties set that contains properties to update</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </parameter>
+ <parameter name="keys" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="528">the properties to update</doc>
+ <array c:type="const gchar**">
+ <type name="utf8" c:type="gchar*"/>
+ </array>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="update_keys_from_dict"
+ c:identifier="wp_properties_update_keys_from_dict"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="490">Updates (adds new or modifies existing) properties in @self, using the
+given @dict as a source.
+Unlike wp_properties_update_from_dict(), this function only updates
+properties that have one of the specified keys; the rest is left untouched.</doc>
+ <source-position filename="../lib/wp/properties.h" line="98"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="502">the number of properties that were changed</doc>
+ <type name="gint" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="492">a properties set</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </instance-parameter>
+ <parameter name="dict"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="493">a `spa_dict` that contains properties to update</doc>
+ <type name="gpointer" c:type="const spa_dict*"/>
+ </parameter>
+ <parameter name="key1" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="494">a property to update</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="..." transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="495">a list of additional properties to update, followed by %NULL</doc>
+ <varargs/>
+ </parameter>
+ </parameters>
+ </method>
+ <function name="iterator_item_get_key"
+ c:identifier="wp_properties_iterator_item_get_key">
+ <source-position filename="../lib/wp/properties.h" line="142"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="825">the property key of the @item</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="item" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="822">a #GValue that was returned from the #WpIterator of
+ wp_properties_iterate()</doc>
+ <type name="GObject.Value" c:type="const GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="iterator_item_get_value"
+ c:identifier="wp_properties_iterator_item_get_value">
+ <source-position filename="../lib/wp/properties.h" line="145"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="840">the property value of the @item</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="item" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="837">a #GValue that was returned from the #WpIterator of
+ wp_properties_iterate()</doc>
+ <type name="GObject.Value" c:type="const GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ </record>
+ <class name="Props"
+ c:symbol-prefix="props"
+ c:type="WpProps"
+ parent="GObject.Object"
+ glib:type-name="WpProps"
+ glib:get-type="wp_props_get_type"
+ glib:type-struct="PropsClass">
+ <doc xml:space="preserve"
+ filename="../lib/wp/props.c"
+ line="69">#WpProps handles dynamic properties on PipeWire objects, which are
+known in PipeWire as "params" of type `SPA_PARAM_Props`.
+
+#WpProps has two modes of operation:
+ - %WP_PROPS_MODE_CACHE: In this mode, this object caches properties that are
+ actually stored and discovered from the associated proxy object.
+ When setting a property, the property is first set on the proxy and the
+ cache is updated asynchronously (so wp_props_get() will not immediately
+ return the value that was set with wp_props_set()).
+ - %WP_PROPS_MODE_STORE: In this mode, this object is the actual store of
+ properties. This is used by object implementations, such as #WpImplSession.
+ Before storing anything, properties need to be registered with
+ wp_props_register().</doc>
+ <source-position filename="../lib/wp/props.h" line="35"/>
+ <constructor name="new" c:identifier="wp_props_new">
+ <source-position filename="../lib/wp/props.h" line="38"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/props.c"
+ line="199">the newly created #WpProps object</doc>
+ <type name="Props" c:type="WpProps*"/>
+ </return-value>
+ <parameters>
+ <parameter name="mode" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/props.c"
+ line="195">the mode</doc>
+ <type name="PropsMode" c:type="WpPropsMode"/>
+ </parameter>
+ <parameter name="proxy"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/props.c"
+ line="196">the associated proxy; can be %NULL
+ if @mode is %WP_PROPS_MODE_STORE</doc>
+ <type name="Proxy" c:type="WpProxy*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="get" c:identifier="wp_props_get">
+ <source-position filename="../lib/wp/props.h" line="54"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/props.c"
+ line="340">a pod with the current value of the
+ property or %NULL if the property is not found</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/props.c"
+ line="337">the props</doc>
+ <type name="Props" c:type="WpProps*"/>
+ </instance-parameter>
+ <parameter name="name" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/props.c"
+ line="338">the name (registered spa type nick) of the property to get</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_all" c:identifier="wp_props_get_all">
+ <source-position filename="../lib/wp/props.h" line="51"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/props.c"
+ line="312">a pod object of type `SPA_TYPE_OBJECT_Props`
+ that contains all the properties, as they would appear on the PipeWire
+ object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/props.c"
+ line="310">the props</doc>
+ <type name="Props" c:type="WpProps*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="iterate_prop_info"
+ c:identifier="wp_props_iterate_prop_info">
+ <source-position filename="../lib/wp/props.h" line="48"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/props.c"
+ line="283">a #WpIterator that iterates over #WpSpaPod items
+ where each pod is an object of type `SPA_TYPE_OBJECT_PropInfo`, and thus
+ contains the id, the description and the type of each property.</doc>
+ <type name="Iterator" c:type="WpIterator*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/props.c"
+ line="281">the props</doc>
+ <type name="Props" c:type="WpProps*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="register" c:identifier="wp_props_register">
+ <doc xml:space="preserve"
+ filename="../lib/wp/props.c"
+ line="207">Registers a new property. This can only be used in %WP_PROPS_MODE_STORE mode.
+
+@name must be a valid spa type nickname, registered in the
+%WP_SPA_TYPE_TABLE_PROPS table.
+
+@pod can be a value (which is taken as the default value) or a choice
+(which defines the allowed values for this property)</doc>
+ <source-position filename="../lib/wp/props.h" line="41"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/props.c"
+ line="209">the props</doc>
+ <type name="Props" c:type="WpProps*"/>
+ </instance-parameter>
+ <parameter name="name" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/props.c"
+ line="210">the name (registered spa type nick) of the property</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="description" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/props.c"
+ line="211">the description of the property</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="pod" transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/props.c"
+ line="212">a pod that gives the type and the default value</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="register_from_info"
+ c:identifier="wp_props_register_from_info">
+ <doc xml:space="preserve"
+ filename="../lib/wp/props.c"
+ line="245">Registers a new property using the information of the provided PropInfo @pod</doc>
+ <source-position filename="../lib/wp/props.h" line="45"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/props.c"
+ line="247">the props</doc>
+ <type name="Props" c:type="WpProps*"/>
+ </instance-parameter>
+ <parameter name="pod" transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/props.c"
+ line="248">a `SPA_TYPE_OBJECT_PropInfo` pod</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set" c:identifier="wp_props_set">
+ <doc xml:space="preserve"
+ filename="../lib/wp/props.c"
+ line="421">Sets the property specified with @name to have the given @value.
+If the mode is %WP_PROPS_MODE_CACHE, this property will be set on the
+associated proxy first and will be updated asynchronously.
+
+If @name is %NULL, then @value must be an object of type
+`SPA_TYPE_OBJECT_Props`, which may contain multiple properties to set.
+
+If any value actually changes, the #WpProps::prop-changed signal will be
+emitted.</doc>
+ <source-position filename="../lib/wp/props.h" line="57"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/props.c"
+ line="423">the props</doc>
+ <type name="Props" c:type="WpProps*"/>
+ </instance-parameter>
+ <parameter name="name"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/props.c"
+ line="424">the name (registered spa type nick) of the property to set</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/props.c"
+ line="425">the value to set</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="store" c:identifier="wp_props_store">
+ <doc xml:space="preserve"
+ filename="../lib/wp/props.c"
+ line="458">Stores the given @value for the property specified with @name.
+This method always stores, even if the mode is %WP_PROPS_MODE_CACHE. This is
+useful for caching implementations only.
+
+If @name is %NULL, then @value must be an object of type
+`SPA_TYPE_OBJECT_Props`, which may contain multiple properties to set.
+
+If any value actually changes, the #WpProps::prop-changed signal will be
+emitted.</doc>
+ <source-position filename="../lib/wp/props.h" line="60"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/props.c"
+ line="460">the props</doc>
+ <type name="Props" c:type="WpProps*"/>
+ </instance-parameter>
+ <parameter name="name"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/props.c"
+ line="461">the name (registered spa type nick) of the property to set</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/props.c"
+ line="462">the value to set</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <property name="mode"
+ writable="1"
+ construct-only="1"
+ transfer-ownership="none">
+ <type name="PropsMode"/>
+ </property>
+ <property name="proxy"
+ writable="1"
+ construct-only="1"
+ transfer-ownership="none">
+ <type name="Proxy"/>
+ </property>
+ <glib:signal name="prop-changed" when="last">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/props.c"
+ line="164">the name of the property that changed</doc>
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </class>
+ <record name="PropsClass"
+ c:type="WpPropsClass"
+ glib:is-gtype-struct-for="Props">
+ <source-position filename="../lib/wp/props.h" line="35"/>
+ <field name="parent_class">
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+ </field>
+ </record>
+ <enumeration name="PropsMode"
+ glib:type-name="WpPropsMode"
+ glib:get-type="wp_props_mode_get_type"
+ c:type="WpPropsMode">
+ <member name="cache"
+ value="0"
+ c:identifier="WP_PROPS_MODE_CACHE"
+ glib:nick="cache">
+ <doc xml:space="preserve"
+ filename="../lib/wp/props.h"
+ line="20">props are stored on the proxy and cached here</doc>
+ </member>
+ <member name="store"
+ value="1"
+ c:identifier="WP_PROPS_MODE_STORE"
+ glib:nick="store">
+ <doc xml:space="preserve"
+ filename="../lib/wp/props.h"
+ line="21">props are stored here directly</doc>
+ </member>
+ </enumeration>
+ <class name="Proxy"
+ c:symbol-prefix="proxy"
+ c:type="WpProxy"
+ parent="GObject.Object"
+ glib:type-name="WpProxy"
+ glib:get-type="wp_proxy_get_type"
+ glib:type-struct="ProxyClass">
+ <source-position filename="../lib/wp/proxy.h" line="99"/>
+ <virtual-method name="augment">
+ <source-position filename="../lib/wp/proxy.h" line="81"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="Proxy" c:type="WpProxy*"/>
+ </instance-parameter>
+ <parameter name="features" transfer-ownership="none">
+ <type name="ProxyFeatures" c:type="WpProxyFeatures"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="bound">
+ <source-position filename="../lib/wp/proxy.h" line="97"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="Proxy" c:type="WpProxy*"/>
+ </instance-parameter>
+ <parameter name="id" transfer-ownership="none">
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="enum_params">
+ <source-position filename="../lib/wp/proxy.h" line="87"/>
+ <return-value transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="Proxy" c:type="WpProxy*"/>
+ </instance-parameter>
+ <parameter name="id" transfer-ownership="none">
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="start" transfer-ownership="none">
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="num" transfer-ownership="none">
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="filter" transfer-ownership="none">
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_info" invoker="get_info">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="694">Requires %WP_PROXY_FEATURE_INFO</doc>
+ <source-position filename="../lib/wp/proxy.h" line="83"/>
+ <return-value transfer-ownership="none" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="700">the pipewire info structure of this object
+ (pw_node_info, pw_port_info, etc...)</doc>
+ <type name="gpointer" c:type="gconstpointer"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="696">the proxy</doc>
+ <type name="Proxy" c:type="WpProxy*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_param_info">
+ <source-position filename="../lib/wp/proxy.h" line="85"/>
+ <return-value transfer-ownership="none" nullable="1">
+ <type name="gpointer" c:type="spa_param_info*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="Proxy" c:type="WpProxy*"/>
+ </instance-parameter>
+ <parameter name="n_params" transfer-ownership="none">
+ <type name="guint" c:type="guint*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_properties" invoker="get_properties">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="715">Requires %WP_PROXY_FEATURE_INFO</doc>
+ <source-position filename="../lib/wp/proxy.h" line="84"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="721">the pipewire properties of this object;
+ normally these are the properties that are part of the info structure</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="717">the proxy</doc>
+ <type name="Proxy" c:type="WpProxy*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="prop_changed">
+ <source-position filename="../lib/wp/proxy.h" line="98"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="Proxy" c:type="WpProxy*"/>
+ </instance-parameter>
+ <parameter name="prop_name" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="pw_proxy_created">
+ <source-position filename="../lib/wp/proxy.h" line="95"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="Proxy" c:type="WpProxy*"/>
+ </instance-parameter>
+ <parameter name="proxy"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <type name="gpointer" c:type="pw_proxy*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="pw_proxy_destroyed">
+ <source-position filename="../lib/wp/proxy.h" line="96"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="Proxy" c:type="WpProxy*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="set_param">
+ <source-position filename="../lib/wp/proxy.h" line="90"/>
+ <return-value transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="Proxy" c:type="WpProxy*"/>
+ </instance-parameter>
+ <parameter name="id" transfer-ownership="none">
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="flags" transfer-ownership="none">
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="param" transfer-ownership="none">
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="subscribe_params">
+ <source-position filename="../lib/wp/proxy.h" line="89"/>
+ <return-value transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="Proxy" c:type="WpProxy*"/>
+ </instance-parameter>
+ <parameter name="ids" transfer-ownership="none">
+ <type name="guint32" c:type="guint32*"/>
+ </parameter>
+ <parameter name="n_ids" transfer-ownership="none">
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="augment" c:identifier="wp_proxy_augment">
+ <source-position filename="../lib/wp/proxy.h" line="107"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="Proxy" c:type="WpProxy*"/>
+ </instance-parameter>
+ <parameter name="wanted_features" transfer-ownership="none">
+ <type name="ProxyFeatures" c:type="WpProxyFeatures"/>
+ </parameter>
+ <parameter name="cancellable"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="callback"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1"
+ scope="async"
+ closure="3">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="user_data"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="augment_finish"
+ c:identifier="wp_proxy_augment_finish"
+ throws="1">
+ <source-position filename="../lib/wp/proxy.h" line="112"/>
+ <return-value transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="Proxy" c:type="WpProxy*"/>
+ </instance-parameter>
+ <parameter name="res" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="enum_params" c:identifier="wp_proxy_enum_params">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="902">Enumerate object parameters. This will asynchronously return the result,
+or an error, by calling the given @callback. The result is going to
+be a #WpIterator containing #WpSpaPod objects, which can be retrieved
+with wp_proxy_enum_params_finish().</doc>
+ <source-position filename="../lib/wp/proxy.h" line="158"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="904">the proxy</doc>
+ <type name="Proxy" c:type="WpProxy*"/>
+ </instance-parameter>
+ <parameter name="id"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="905">the parameter id to enumerate or %NULL for all parameters</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="filter"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="906">a param filter or %NULL</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </parameter>
+ <parameter name="cancellable"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="907">a cancellable for the async operation</doc>
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="callback"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1"
+ scope="async"
+ closure="4">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="908">a callback to call with the result</doc>
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="user_data"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="909">data to pass to @callback</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="enum_params_finish"
+ c:identifier="wp_proxy_enum_params_finish"
+ throws="1">
+ <source-position filename="../lib/wp/proxy.h" line="163"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="965">an iterator to iterate over the
+ collected params, or %NULL if the operation resulted in error;
+ the items in the iterator are #WpSpaPod</doc>
+ <type name="Iterator" c:type="WpIterator*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="961">the proxy</doc>
+ <type name="Proxy" c:type="WpProxy*"/>
+ </instance-parameter>
+ <parameter name="res" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="962">the async result</doc>
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_bound_id" c:identifier="wp_proxy_get_bound_id">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="827">Returns the bound id, which is the id that this object has on the
+pipewire registry (a.k.a. the global id). The object must have the
+%WP_PROXY_FEATURE_BOUND feature before this method can be called.</doc>
+ <source-position filename="../lib/wp/proxy.h" line="153"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="835">the bound id of this object</doc>
+ <type name="guint32" c:type="guint32"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="829">the proxy</doc>
+ <type name="Proxy" c:type="WpProxy*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_core" c:identifier="wp_proxy_get_core">
+ <source-position filename="../lib/wp/proxy.h" line="121"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="641">the core that created this proxy</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="639">the proxy</doc>
+ <type name="Proxy" c:type="WpProxy*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_features" c:identifier="wp_proxy_get_features">
+ <source-position filename="../lib/wp/proxy.h" line="116"/>
+ <return-value transfer-ownership="none">
+ <type name="ProxyFeatures" c:type="WpProxyFeatures"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="Proxy" c:type="WpProxy*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_global_permissions"
+ c:identifier="wp_proxy_get_global_permissions">
+ <source-position filename="../lib/wp/proxy.h" line="126"/>
+ <return-value transfer-ownership="none">
+ <type name="guint32" c:type="guint32"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="Proxy" c:type="WpProxy*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_global_properties"
+ c:identifier="wp_proxy_get_global_properties">
+ <source-position filename="../lib/wp/proxy.h" line="129"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="668">the global properties of the proxy</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="Proxy" c:type="WpProxy*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_info" c:identifier="wp_proxy_get_info">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="694">Requires %WP_PROXY_FEATURE_INFO</doc>
+ <source-position filename="../lib/wp/proxy.h" line="139"/>
+ <return-value transfer-ownership="none" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="700">the pipewire info structure of this object
+ (pw_node_info, pw_port_info, etc...)</doc>
+ <type name="gpointer" c:type="gconstpointer"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="696">the proxy</doc>
+ <type name="Proxy" c:type="WpProxy*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_param_info" c:identifier="wp_proxy_get_param_info">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="764">Returns the available parameters of this proxy. The return value is
+a variant of type `a{ss}`, where the key of each map entry is a spa param
+type id (the same ids that you can pass in wp_proxy_enum_params())
+and the value is a string that can contain the following letters,
+each of them representing a flag:
+ - `r`: the param is readable (`SPA_PARAM_INFO_READ`)
+ - `w`: the param is writable (`SPA_PARAM_INFO_WRITE`)
+ - `s`: the param was updated (`SPA_PARAM_INFO_SERIAL`)
+
+For params that are readable, you can query them with wp_proxy_enum_params()
+
+Params that are writable can be set with wp_proxy_set_param()
+
+Requires %WP_PROXY_FEATURE_INFO</doc>
+ <source-position filename="../lib/wp/proxy.h" line="148"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="783">a variant of type `a{ss}` or %NULL
+ if the proxy does not support params at all</doc>
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="766">the proxy</doc>
+ <type name="Proxy" c:type="WpProxy*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_prop" c:identifier="wp_proxy_get_prop">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="1034">Requires %WP_PROXY_FEATURE_PROPS</doc>
+ <source-position filename="../lib/wp/proxy.h" line="175"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="1041">the spa pod containing the value
+ of this prop, or %NULL if @prop_name does not exist on this proxy</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="1036">the proxy</doc>
+ <type name="Proxy" c:type="WpProxy*"/>
+ </instance-parameter>
+ <parameter name="prop_name" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="1037">the prop name</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_properties" c:identifier="wp_proxy_get_properties">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="715">Requires %WP_PROXY_FEATURE_INFO</doc>
+ <source-position filename="../lib/wp/proxy.h" line="142"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="721">the pipewire properties of this object;
+ normally these are the properties that are part of the info structure</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="717">the proxy</doc>
+ <type name="Proxy" c:type="WpProxy*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_property" c:identifier="wp_proxy_get_property">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="736">Returns the value of a single pipewire property. This is the same as getting
+the whole properties structure with wp_proxy_get_properties() and accessing
+a single property with wp_properties_get(), but saves one call
+and having to clean up the #WpProperties reference count afterwards.
+
+The value is owned by the proxy, but it is guaranteed to stay alive
+until execution returns back to the event loop.
+
+Requires %WP_PROXY_FEATURE_INFO</doc>
+ <source-position filename="../lib/wp/proxy.h" line="145"/>
+ <return-value transfer-ownership="none" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="751">the value of the pipewire property @key
+ or %NULL if the property doesn't exist</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="738">the proxy</doc>
+ <type name="Proxy" c:type="WpProxy*"/>
+ </instance-parameter>
+ <parameter name="key" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="739">the property name</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_pw_proxy" c:identifier="wp_proxy_get_pw_proxy">
+ <source-position filename="../lib/wp/proxy.h" line="134"/>
+ <return-value transfer-ownership="none" nullable="1">
+ <type name="gpointer" c:type="pw_proxy*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="Proxy" c:type="WpProxy*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="iterate_prop_info"
+ c:identifier="wp_proxy_iterate_prop_info">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="1013">Requires %WP_PROXY_FEATURE_PROPS</doc>
+ <source-position filename="../lib/wp/proxy.h" line="172"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="1019">an iterator to iterate over the
+ `SPA_PARAM_PropInfo` params, or %NULL if the object has no props;
+ the items in the iterator are #WpSpaPod</doc>
+ <type name="Iterator" c:type="WpIterator*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="1015">the proxy</doc>
+ <type name="Proxy" c:type="WpProxy*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="request_destroy" c:identifier="wp_proxy_request_destroy">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="472">Requests the PipeWire server to destroy the object represented by this proxy.
+If the server allows it, the object will be destroyed and the
+WpProxy::pw-proxy-destroyed signal will be emitted. If the server does
+not allow it, nothing will happen.
+
+This is mostly useful for destroying #WpLink and #WpEndpointLink objects.</doc>
+ <source-position filename="../lib/wp/proxy.h" line="102"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="474">the proxy</doc>
+ <type name="Proxy" c:type="WpProxy*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="set_param" c:identifier="wp_proxy_set_param">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="983">Sets a parameter on the object.</doc>
+ <source-position filename="../lib/wp/proxy.h" line="167"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="985">the proxy</doc>
+ <type name="Proxy" c:type="WpProxy*"/>
+ </instance-parameter>
+ <parameter name="id" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="986">the parameter id to set</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="param" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="987">the parameter to set</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_prop" c:identifier="wp_proxy_set_prop">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="1055">Sets a single property in the `SPA_PARAM_Props` param of this object.</doc>
+ <source-position filename="../lib/wp/proxy.h" line="178"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="1057">the proxy</doc>
+ <type name="Proxy" c:type="WpProxy*"/>
+ </instance-parameter>
+ <parameter name="prop_name" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="1058">the prop name</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="1059">the new value for this prop, as a spa pod</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <property name="bound-id" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </property>
+ <property name="core"
+ writable="1"
+ construct-only="1"
+ transfer-ownership="none">
+ <type name="Core"/>
+ </property>
+ <property name="features" transfer-ownership="none">
+ <type name="ProxyFeatures"/>
+ </property>
+ <property name="global"
+ introspectable="0"
+ readable="0"
+ writable="1"
+ construct-only="1"
+ transfer-ownership="none">
+ <type/>
+ </property>
+ <property name="global-permissions" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </property>
+ <property name="global-properties" transfer-ownership="none">
+ <type name="Properties"/>
+ </property>
+ <property name="info" transfer-ownership="none">
+ <type name="gpointer" c:type="gpointer"/>
+ </property>
+ <property name="param-info" transfer-ownership="none">
+ <type name="GLib.Variant"/>
+ </property>
+ <property name="properties" transfer-ownership="none">
+ <type name="Properties"/>
+ </property>
+ <property name="pw-proxy"
+ writable="1"
+ construct-only="1"
+ transfer-ownership="none">
+ <type name="gpointer" c:type="gpointer"/>
+ </property>
+ <field name="parent_instance">
+ <type name="GObject.Object" c:type="GObject"/>
+ </field>
+ <glib:signal name="bound" when="first">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="prop-changed" when="last">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="pw-proxy-created" when="first">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="pw-proxy-destroyed" when="first">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </glib:signal>
+ </class>
+ <record name="ProxyClass"
+ c:type="WpProxyClass"
+ glib:is-gtype-struct-for="Proxy">
+ <source-position filename="../lib/wp/proxy.h" line="99"/>
+ <field name="parent_class">
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+ </field>
+ <field name="pw_iface_type">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.h"
+ line="69">the PipeWire type of the interface that is being proxied by
+ this class (ex. `PW_TYPE_INTERFACE_Node` for #WpNode)</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </field>
+ <field name="pw_iface_version">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.h"
+ line="71">the PipeWire version of the interface that is being
+ proxied by this class</doc>
+ <type name="guint32" c:type="guint32"/>
+ </field>
+ <field name="augment">
+ <callback name="augment">
+ <source-position filename="../lib/wp/proxy.h" line="81"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Proxy" c:type="WpProxy*"/>
+ </parameter>
+ <parameter name="features" transfer-ownership="none">
+ <type name="ProxyFeatures" c:type="WpProxyFeatures"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_info">
+ <callback name="get_info">
+ <source-position filename="../lib/wp/proxy.h" line="83"/>
+ <return-value transfer-ownership="none" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="700">the pipewire info structure of this object
+ (pw_node_info, pw_port_info, etc...)</doc>
+ <type name="gpointer" c:type="gconstpointer"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="696">the proxy</doc>
+ <type name="Proxy" c:type="WpProxy*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_properties">
+ <callback name="get_properties">
+ <source-position filename="../lib/wp/proxy.h" line="84"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="721">the pipewire properties of this object;
+ normally these are the properties that are part of the info structure</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.c"
+ line="717">the proxy</doc>
+ <type name="Proxy" c:type="WpProxy*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_param_info">
+ <callback name="get_param_info">
+ <source-position filename="../lib/wp/proxy.h" line="85"/>
+ <return-value transfer-ownership="none" nullable="1">
+ <type name="gpointer" c:type="spa_param_info*"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Proxy" c:type="WpProxy*"/>
+ </parameter>
+ <parameter name="n_params" transfer-ownership="none">
+ <type name="guint" c:type="guint*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="enum_params">
+ <callback name="enum_params">
+ <source-position filename="../lib/wp/proxy.h" line="87"/>
+ <return-value transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Proxy" c:type="WpProxy*"/>
+ </parameter>
+ <parameter name="id" transfer-ownership="none">
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="start" transfer-ownership="none">
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="num" transfer-ownership="none">
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="filter" transfer-ownership="none">
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="subscribe_params">
+ <callback name="subscribe_params">
+ <source-position filename="../lib/wp/proxy.h" line="89"/>
+ <return-value transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Proxy" c:type="WpProxy*"/>
+ </parameter>
+ <parameter name="ids" transfer-ownership="none">
+ <type name="guint32" c:type="guint32*"/>
+ </parameter>
+ <parameter name="n_ids" transfer-ownership="none">
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="set_param">
+ <callback name="set_param">
+ <source-position filename="../lib/wp/proxy.h" line="90"/>
+ <return-value transfer-ownership="none">
+ <type name="gint" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Proxy" c:type="WpProxy*"/>
+ </parameter>
+ <parameter name="id" transfer-ownership="none">
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="flags" transfer-ownership="none">
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="param" transfer-ownership="none">
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="pw_proxy_created">
+ <callback name="pw_proxy_created">
+ <source-position filename="../lib/wp/proxy.h" line="95"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Proxy" c:type="WpProxy*"/>
+ </parameter>
+ <parameter name="proxy"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <type name="gpointer" c:type="pw_proxy*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="pw_proxy_destroyed">
+ <callback name="pw_proxy_destroyed">
+ <source-position filename="../lib/wp/proxy.h" line="96"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Proxy" c:type="WpProxy*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="bound">
+ <callback name="bound">
+ <source-position filename="../lib/wp/proxy.h" line="97"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Proxy" c:type="WpProxy*"/>
+ </parameter>
+ <parameter name="id" transfer-ownership="none">
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="prop_changed">
+ <callback name="prop_changed">
+ <source-position filename="../lib/wp/proxy.h" line="98"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="Proxy" c:type="WpProxy*"/>
+ </parameter>
+ <parameter name="prop_name" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ </record>
+ <bitfield name="ProxyFeatures"
+ glib:type-name="WpProxyFeatures"
+ glib:get-type="wp_proxy_features_get_type"
+ c:type="WpProxyFeatures">
+ <doc xml:space="preserve"
+ filename="../lib/wp/proxy.h"
+ line="24">Flags that specify functionality that is available on this class.
+Use wp_proxy_augment() to enable more features and wp_proxy_get_features()
+to find out which features are already enabled.
+
+Subclasses may also specify additional features that can be ORed with these
+ones and they can also be enabled with wp_proxy_augment().</doc>
+ <member name="pw_proxy"
+ value="1"
+ c:identifier="WP_PROXY_FEATURE_PW_PROXY"
+ glib:nick="pw-proxy">
+ </member>
+ <member name="info"
+ value="2"
+ c:identifier="WP_PROXY_FEATURE_INFO"
+ glib:nick="info">
+ </member>
+ <member name="bound"
+ value="4"
+ c:identifier="WP_PROXY_FEATURE_BOUND"
+ glib:nick="bound">
+ </member>
+ <member name="props"
+ value="8"
+ c:identifier="WP_PROXY_FEATURE_PROPS"
+ glib:nick="props">
+ </member>
+ </bitfield>
+ <constant name="SESSION_FEATURES_STANDARD"
+ value="196616"
+ c:type="WP_SESSION_FEATURES_STANDARD">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.h"
+ line="34">A constant set of features that contains the standard features that are
+available in the #WpSession class.</doc>
+ <source-position filename="../lib/wp/session.h" line="40"/>
+ <type name="gint" c:type="gint"/>
+ </constant>
+ <constant name="SI_FLAGS_MASK_OPERATION_IN_PROGRESS"
+ value="17"
+ c:type="WP_SI_FLAGS_MASK_OPERATION_IN_PROGRESS">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.h"
+ line="58">A #WpSiFlags mask that can be used to test if an async operation
+(activate or export) is currently in progress.</doc>
+ <source-position filename="../lib/wp/session-item.h" line="64"/>
+ <type name="gint" c:type="gint"/>
+ </constant>
+ <class name="Session"
+ c:symbol-prefix="session"
+ c:type="WpSession"
+ parent="Proxy"
+ glib:type-name="WpSession"
+ glib:get-type="wp_session_get_type"
+ glib:type-struct="SessionClass">
+ <source-position filename="../lib/wp/session.h" line="58"/>
+ <method name="get_default_endpoint"
+ c:identifier="wp_session_get_default_endpoint">
+ <source-position filename="../lib/wp/session.h" line="64"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="396">the bound id of the default endpoint of this @direction</doc>
+ <type name="guint32" c:type="guint32"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="393">the session</doc>
+ <type name="Session" c:type="WpSession*"/>
+ </instance-parameter>
+ <parameter name="direction" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="394">the endpoint direction</doc>
+ <type name="Direction" c:type="WpDirection"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_n_endpoints" c:identifier="wp_session_get_n_endpoints">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="457">Requires %WP_SESSION_FEATURE_ENDPOINTS</doc>
+ <source-position filename="../lib/wp/session.h" line="74"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="463">the number of endpoints of this session</doc>
+ <type name="guint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="459">the session</doc>
+ <type name="Session" c:type="WpSession*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_n_links" c:identifier="wp_session_get_n_links">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="588">Requires %WP_SESSION_FEATURE_LINKS</doc>
+ <source-position filename="../lib/wp/session.h" line="98"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="594">the number of endpoint links of this session</doc>
+ <type name="guint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="590">the session</doc>
+ <type name="Session" c:type="WpSession*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_name" c:identifier="wp_session_get_name">
+ <source-position filename="../lib/wp/session.h" line="61"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="378">the (unique) name of the session</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="376">the session</doc>
+ <type name="Session" c:type="WpSession*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="iterate_endpoints"
+ c:identifier="wp_session_iterate_endpoints">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="476">Requires %WP_SESSION_FEATURE_ENDPOINTS</doc>
+ <source-position filename="../lib/wp/session.h" line="77"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="482">a #WpIterator that iterates over all
+ the endpoints that belong to this session</doc>
+ <type name="Iterator" c:type="WpIterator*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="478">the session</doc>
+ <type name="Session" c:type="WpSession*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="iterate_endpoints_filtered"
+ c:identifier="wp_session_iterate_endpoints_filtered"
+ shadowed-by="iterate_endpoints_filtered_full"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="496">Requires %WP_SESSION_FEATURE_ENDPOINTS
+
+The constraints specified in the variable arguments must follow the rules
+documented in wp_object_interest_new().</doc>
+ <source-position filename="../lib/wp/session.h" line="80"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="506">a #WpIterator that iterates over all
+ the endpoints that belong to this session and match the constraints</doc>
+ <type name="Iterator" c:type="WpIterator*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="498">the session</doc>
+ <type name="Session" c:type="WpSession*"/>
+ </instance-parameter>
+ <parameter name="..." transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="499">a list of constraints, terminated by %NULL</doc>
+ <varargs/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="iterate_endpoints_filtered_full"
+ c:identifier="wp_session_iterate_endpoints_filtered_full"
+ shadows="iterate_endpoints_filtered">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="520">Requires %WP_SESSION_FEATURE_ENDPOINTS</doc>
+ <source-position filename="../lib/wp/session.h" line="84"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="527">a #WpIterator that iterates over all
+ the endpoints that belong to this session and match the @interest</doc>
+ <type name="Iterator" c:type="WpIterator*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="522">the session</doc>
+ <type name="Session" c:type="WpSession*"/>
+ </instance-parameter>
+ <parameter name="interest" transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="523">the interest</doc>
+ <type name="ObjectInterest" c:type="WpObjectInterest*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="iterate_links" c:identifier="wp_session_iterate_links">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="607">Requires %WP_SESSION_FEATURE_LINKS</doc>
+ <source-position filename="../lib/wp/session.h" line="101"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="613">a #WpIterator that iterates over all
+ the endpoint links that belong to this session</doc>
+ <type name="Iterator" c:type="WpIterator*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="609">the session</doc>
+ <type name="Session" c:type="WpSession*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="iterate_links_filtered"
+ c:identifier="wp_session_iterate_links_filtered"
+ shadowed-by="iterate_links_filtered_full"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="627">Requires %WP_SESSION_FEATURE_LINKS
+
+The constraints specified in the variable arguments must follow the rules
+documented in wp_object_interest_new().</doc>
+ <source-position filename="../lib/wp/session.h" line="104"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="637">a #WpIterator that iterates over all
+ the links that belong to this session and match the constraints</doc>
+ <type name="Iterator" c:type="WpIterator*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="629">the session</doc>
+ <type name="Session" c:type="WpSession*"/>
+ </instance-parameter>
+ <parameter name="..." transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="630">a list of constraints, terminated by %NULL</doc>
+ <varargs/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="iterate_links_filtered_full"
+ c:identifier="wp_session_iterate_links_filtered_full"
+ shadows="iterate_links_filtered">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="651">Requires %WP_SESSION_FEATURE_LINKS</doc>
+ <source-position filename="../lib/wp/session.h" line="108"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="658">a #WpIterator that iterates over all
+ the links that belong to this session and match the @interest</doc>
+ <type name="Iterator" c:type="WpIterator*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="653">the session</doc>
+ <type name="Session" c:type="WpSession*"/>
+ </instance-parameter>
+ <parameter name="interest" transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="654">the interest</doc>
+ <type name="ObjectInterest" c:type="WpObjectInterest*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="lookup_endpoint"
+ c:identifier="wp_session_lookup_endpoint"
+ shadowed-by="lookup_endpoint_full"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="542">Requires %WP_SESSION_FEATURE_ENDPOINTS
+
+The constraints specified in the variable arguments must follow the rules
+documented in wp_object_interest_new().</doc>
+ <source-position filename="../lib/wp/session.h" line="88"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="552">the first endpoint that matches the
+ constraints, or %NULL if there is no such endpoint</doc>
+ <type name="Endpoint" c:type="WpEndpoint*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="544">the session</doc>
+ <type name="Session" c:type="WpSession*"/>
+ </instance-parameter>
+ <parameter name="..." transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="545">a list of constraints, terminated by %NULL</doc>
+ <varargs/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="lookup_endpoint_full"
+ c:identifier="wp_session_lookup_endpoint_full"
+ shadows="lookup_endpoint">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="566">Requires %WP_SESSION_FEATURE_ENDPOINTS</doc>
+ <source-position filename="../lib/wp/session.h" line="92"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="573">the first endpoint that matches the
+ @interest, or %NULL if there is no such endpoint</doc>
+ <type name="Endpoint" c:type="WpEndpoint*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="568">the session</doc>
+ <type name="Session" c:type="WpSession*"/>
+ </instance-parameter>
+ <parameter name="interest" transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="569">the interest</doc>
+ <type name="ObjectInterest" c:type="WpObjectInterest*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="lookup_link"
+ c:identifier="wp_session_lookup_link"
+ shadowed-by="lookup_link_full"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="673">Requires %WP_SESSION_FEATURE_LINKS
+
+The constraints specified in the variable arguments must follow the rules
+documented in wp_object_interest_new().</doc>
+ <source-position filename="../lib/wp/session.h" line="112"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="683">the first link that matches the
+ constraints, or %NULL if there is no such link</doc>
+ <type name="EndpointLink" c:type="WpEndpointLink*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="675">the session</doc>
+ <type name="Session" c:type="WpSession*"/>
+ </instance-parameter>
+ <parameter name="..." transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="676">a list of constraints, terminated by %NULL</doc>
+ <varargs/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="lookup_link_full"
+ c:identifier="wp_session_lookup_link_full"
+ shadows="lookup_link">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="697">Requires %WP_SESSION_FEATURE_LINKS</doc>
+ <source-position filename="../lib/wp/session.h" line="116"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="704">the first link that matches the
+ @interest, or %NULL if there is no such link</doc>
+ <type name="EndpointLink" c:type="WpEndpointLink*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="699">the session</doc>
+ <type name="Session" c:type="WpSession*"/>
+ </instance-parameter>
+ <parameter name="interest" transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="700">the interest</doc>
+ <type name="ObjectInterest" c:type="WpObjectInterest*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_default_endpoint"
+ c:identifier="wp_session_set_default_endpoint">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="425">Sets the default endpoint for this @direction to be the one identified
+with @id</doc>
+ <source-position filename="../lib/wp/session.h" line="68"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="427">the session</doc>
+ <type name="Session" c:type="WpSession*"/>
+ </instance-parameter>
+ <parameter name="direction" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="428">the endpoint direction</doc>
+ <type name="Direction" c:type="WpDirection"/>
+ </parameter>
+ <parameter name="id" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="429">the bound id of the endpoint to set as the default for this @direction</doc>
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </method>
+ <field name="parent_instance">
+ <type name="Proxy" c:type="WpProxy"/>
+ </field>
+ <glib:signal name="default-endpoint-changed" when="last">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="336">Emitted when the default endpoint of a specific direction changes.
+The passed @id is the bound id (wp_proxy_get_bound_id()) of the new
+default endpoint.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="direction" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="339">the endpoint direction</doc>
+ <type name="Direction"/>
+ </parameter>
+ <parameter name="id" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="340">the endpoint's bound id</doc>
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="endpoints-changed" when="last">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="351">Emitted when the sessions's endpoints change. This is only emitted
+when %WP_SESSION_FEATURE_ENDPOINTS is enabled.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </glib:signal>
+ <glib:signal name="links-changed" when="last">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.c"
+ line="362">Emitted when the session's links change. This is only emitted
+when %WP_SESSION_FEATURE_LINKS is enabled.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </glib:signal>
+ </class>
+ <class name="SessionBin"
+ c:symbol-prefix="session_bin"
+ c:type="WpSessionBin"
+ parent="SessionItem"
+ abstract="1"
+ glib:type-name="WpSessionBin"
+ glib:get-type="wp_session_bin_get_type"
+ glib:type-struct="SessionBinClass">
+ <source-position filename="../lib/wp/session-bin.h" line="34"/>
+ <constructor name="new" c:identifier="wp_session_bin_new">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-bin.c"
+ line="70">Creates a new session bin.</doc>
+ <source-position filename="../lib/wp/session-bin.h" line="37"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-bin.c"
+ line="74">TRUE if the item was added into the session bin, FALSE otherwise</doc>
+ <type name="SessionBin" c:type="WpSessionBin*"/>
+ </return-value>
+ </constructor>
+ <method name="add" c:identifier="wp_session_bin_add">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-bin.c"
+ line="82">Adds a session item into a session bin.</doc>
+ <source-position filename="../lib/wp/session-bin.h" line="40"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-bin.c"
+ line="89">TRUE if the item was added into the session bin, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-bin.c"
+ line="84">the session bin
+@item (transfer full): the session item to be added</doc>
+ <type name="SessionBin" c:type="WpSessionBin*"/>
+ </instance-parameter>
+ <parameter name="item" transfer-ownership="none">
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_n_children"
+ c:identifier="wp_session_bin_get_n_children">
+ <source-position filename="../lib/wp/session-bin.h" line="46"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-bin.c"
+ line="126">the number of child items in the bin</doc>
+ <type name="guint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-bin.c"
+ line="124">the session bin</doc>
+ <type name="SessionBin" c:type="WpSessionBin*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="iterate" c:identifier="wp_session_bin_iterate">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-bin.c"
+ line="173">Gets an iterator to iterate throught all session items.
+
+Returns (transfer full): The session bin iterator.</doc>
+ <source-position filename="../lib/wp/session-bin.h" line="49"/>
+ <return-value transfer-ownership="full">
+ <type name="Iterator" c:type="WpIterator*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-bin.c"
+ line="175">the session bin
+@item (transfer none): the session item to be removed</doc>
+ <type name="SessionBin" c:type="WpSessionBin*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="remove" c:identifier="wp_session_bin_remove">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-bin.c"
+ line="105">Removes a session item from a session bin.</doc>
+ <source-position filename="../lib/wp/session-bin.h" line="43"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-bin.c"
+ line="112">TRUE if the item was removed from the session bin, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-bin.c"
+ line="107">the session bin
+@item (transfer none): the session item to be removed</doc>
+ <type name="SessionBin" c:type="WpSessionBin*"/>
+ </instance-parameter>
+ <parameter name="item" transfer-ownership="none">
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <field name="parent_instance">
+ <type name="SessionItem" c:type="WpSessionItem"/>
+ </field>
+ </class>
+ <record name="SessionBinClass"
+ c:type="WpSessionBinClass"
+ glib:is-gtype-struct-for="SessionBin">
+ <source-position filename="../lib/wp/session-bin.h" line="34"/>
+ <field name="parent_class">
+ <type name="SessionItemClass" c:type="WpSessionItemClass"/>
+ </field>
+ </record>
+ <record name="SessionClass"
+ c:type="WpSessionClass"
+ glib:is-gtype-struct-for="Session">
+ <source-position filename="../lib/wp/session.h" line="58"/>
+ <field name="parent_class">
+ <type name="ProxyClass" c:type="WpProxyClass"/>
+ </field>
+ </record>
+ <bitfield name="SessionFeatures"
+ glib:type-name="WpSessionFeatures"
+ glib:get-type="wp_session_features_get_type"
+ c:type="WpSessionFeatures">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.h"
+ line="18">An extension of #WpProxyFeatures</doc>
+ <member name="endpoints"
+ value="65536"
+ c:identifier="WP_SESSION_FEATURE_ENDPOINTS"
+ glib:nick="endpoints">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.h"
+ line="20">caches information about endpoints, enabling
+ the use of wp_session_get_n_endpoints(), wp_session_lookup_endpoint(),
+ wp_session_iterate_endpoints() and related methods</doc>
+ </member>
+ <member name="links"
+ value="131072"
+ c:identifier="WP_SESSION_FEATURE_LINKS"
+ glib:nick="links">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session.h"
+ line="23">caches information about endpoint links, enabling
+ the use of wp_session_get_n_links(), wp_session_lookup_link(),
+ wp_session_iterate_links() and related methods</doc>
+ </member>
+ </bitfield>
+ <class name="SessionItem"
+ c:symbol-prefix="session_item"
+ c:type="WpSessionItem"
+ parent="GObject.Object"
+ abstract="1"
+ glib:type-name="WpSessionItem"
+ glib:get-type="wp_session_item_get_type"
+ glib:type-struct="SessionItemClass">
+ <source-position filename="../lib/wp/session-item.h" line="118"/>
+ <function name="make" c:identifier="wp_session_item_make">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="210">Finds the factory associated with the given @name from the @core and
+uses it to construct a new #WpSessionItem.</doc>
+ <source-position filename="../lib/wp/si-factory.h" line="54"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="218">the new session item</doc>
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </return-value>
+ <parameters>
+ <parameter name="core" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="212">the #WpCore</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </parameter>
+ <parameter name="factory_name" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="213">the name of the factory to be used for constructing the object</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <virtual-method name="activate_execute_step">
+ <source-position filename="../lib/wp/session-item.h" line="109"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </instance-parameter>
+ <parameter name="transition" transfer-ownership="none">
+ <type name="Transition" c:type="WpTransition*"/>
+ </parameter>
+ <parameter name="step" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="activate_get_next_step">
+ <source-position filename="../lib/wp/session-item.h" line="107"/>
+ <return-value transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </instance-parameter>
+ <parameter name="transition" transfer-ownership="none">
+ <type name="Transition" c:type="WpTransition*"/>
+ </parameter>
+ <parameter name="step" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="activate_rollback">
+ <source-position filename="../lib/wp/session-item.h" line="111"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="configure" invoker="configure">
+ <source-position filename="../lib/wp/session-item.h" line="104"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="593">%TRUE on success, %FALSE if the options could not be set</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="589">the session item</doc>
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </instance-parameter>
+ <parameter name="args" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="590">the configuration options to set
+ (`a{sv}` dictionary, mapping option names to values)</doc>
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="export_execute_step">
+ <source-position filename="../lib/wp/session-item.h" line="115"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </instance-parameter>
+ <parameter name="transition" transfer-ownership="none">
+ <type name="Transition" c:type="WpTransition*"/>
+ </parameter>
+ <parameter name="step" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="export_get_next_step">
+ <source-position filename="../lib/wp/session-item.h" line="113"/>
+ <return-value transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </instance-parameter>
+ <parameter name="transition" transfer-ownership="none">
+ <type name="Transition" c:type="WpTransition*"/>
+ </parameter>
+ <parameter name="step" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="export_rollback">
+ <source-position filename="../lib/wp/session-item.h" line="117"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_associated_proxy"
+ invoker="get_associated_proxy">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="537">An associated proxy is a #WpProxy subclass instance that is somehow related
+to this item. For example:
+ - An exported #WpSiEndpoint should have at least:
+ - an associated #WpEndpoint
+ - an associated #WpSession
+ - An exported #WpSiStream should have at least:
+ - an associated #WpEndpointStream
+ - an associated #WpEndpoint
+ - In cases where the item wraps a single PipeWire node, it should also
+ have an associated #WpNode</doc>
+ <source-position filename="../lib/wp/session-item.h" line="102"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="553">the associated proxy
+ of the specified @proxy_type, or %NULL if there is no association to
+ such a proxy</doc>
+ <type name="Proxy" c:type="gpointer"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="539">the session item</doc>
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </instance-parameter>
+ <parameter name="proxy_type" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="540">a #WpProxy subclass #GType</doc>
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_configuration" invoker="get_configuration">
+ <source-position filename="../lib/wp/session-item.h" line="105"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="613">the active configuration, as a `a{sv}` dictionary</doc>
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="611">the session item</doc>
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="reset" invoker="reset">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="414">Resets the state of the item, deactivating it, unexporting it and
+resetting configuration options as well.</doc>
+ <source-position filename="../lib/wp/session-item.h" line="100"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="416">the session item</doc>
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <method name="activate" c:identifier="wp_session_item_activate">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="651">Activates the item asynchronously.
+You can use wp_session_item_activate_finish() in the @callback to get
+the result of this operation.
+
+This internally starts a #WpTransition that calls into
+#WpSessionItemClass.activate_get_next_step() and
+#WpSessionItemClass.activate_execute_step() to advance.
+If the transition fails, #WpSessionItemClass.activate_rollback() is called
+to reverse previous actions.
+
+The default implementation of the above virtual functions activates the
+item successfully without doing anything. In order to implement a meaningful
+session item, you should override all 3 of them.
+
+When this method is called, the %WP_SI_FLAG_ACTIVATING flag is set. When
+the operation finishes successfully, that flag is cleared and replaced with
+either %WP_SI_FLAG_ACTIVE or %WP_SI_FLAG_ACTIVATE_ERROR, depending on the
+success outcome of the operation. In order to clear
+%WP_SI_FLAG_ACTIVATE_ERROR, you can either call wp_session_item_deactivate()
+or wp_session_item_activate() to try activating again.
+
+This method cannot be called if another operation (activation or export) is
+in progress (%WP_SI_FLAGS_MASK_OPERATION_IN_PROGRESS) or if the item is
+already activated.</doc>
+ <source-position filename="../lib/wp/session-item.h" line="158"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="653">the session item</doc>
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </instance-parameter>
+ <parameter name="callback"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1"
+ scope="async"
+ closure="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="654">a callback to call when activation is finished</doc>
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="callback_data"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="655">data passed to @callback</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="activate_finish"
+ c:identifier="wp_session_item_activate_finish"
+ throws="1">
+ <source-position filename="../lib/wp/session-item.h" line="162"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="728">%TRUE if the item is now activateed, %FALSE if there was an error</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="724">the session item</doc>
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </instance-parameter>
+ <parameter name="res" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="725">the async operation result</doc>
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="clear_flag" c:identifier="wp_session_item_clear_flag">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="511">Clears the specified @flag from this item.
+
+Note that bits 1-8 cannot be cleared using this function, they can only
+be changed internally.</doc>
+ <source-position filename="../lib/wp/session-item.h" line="135"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="513">the session item</doc>
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </instance-parameter>
+ <parameter name="flag" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="514">the flag to clear</doc>
+ <type name="SiFlags" c:type="WpSiFlags"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="configure" c:identifier="wp_session_item_configure">
+ <source-position filename="../lib/wp/session-item.h" line="150"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="593">%TRUE on success, %FALSE if the options could not be set</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="589">the session item</doc>
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </instance-parameter>
+ <parameter name="args" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="590">the configuration options to set
+ (`a{sv}` dictionary, mapping option names to values)</doc>
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="deactivate" c:identifier="wp_session_item_deactivate">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="740">De-activates the item and/or cancels any ongoing activation operation.
+
+If the item was not activated, this method does nothing.</doc>
+ <source-position filename="../lib/wp/session-item.h" line="166"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="742">the session item</doc>
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="export" c:identifier="wp_session_item_export">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="792">Exports this item asynchronously on PipeWire, making it part of the
+specified @session. You can use wp_session_item_export_finish() in the
+@callback to get the result of this operation.
+
+This internally starts a #WpTransition that calls into
+#WpSessionItemClass.export_get_next_step() and
+#WpSessionItemClass.export_execute_step() to advance.
+If the transition fails, #WpSessionItemClass.export_rollback() is called
+to reverse previous actions.
+
+Exporting is internally implemented for endpoints (items that implement
+#WpSiEndpoint) and endpoint links (items that implement #WpSiLink). On other
+items the default implementation will immediately call the @callback,
+reporting error. You can extend this to export custom interfaces by
+overriding the virtual functions mentioned above.
+
+When this method is called, the %WP_SI_FLAG_EXPORTING flag is set. When
+the operation finishes successfully, that flag is cleared and replaced with
+either %WP_SI_FLAG_EXPORTED or %WP_SI_FLAG_EXPORT_ERROR, depending on the
+success outcome of the operation. In order to clear
+%WP_SI_FLAG_EXPORT_ERROR, you can either call wp_session_item_unexport()
+or wp_session_item_export() to try exporting again.
+
+This method cannot be called if another operation (activation or export) is
+in progress (%WP_SI_FLAGS_MASK_OPERATION_IN_PROGRESS) or if the item is
+already exported.</doc>
+ <source-position filename="../lib/wp/session-item.h" line="171"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="794">the session item</doc>
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </instance-parameter>
+ <parameter name="session" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="795">the session on which to export this item</doc>
+ <type name="Session" c:type="WpSession*"/>
+ </parameter>
+ <parameter name="callback"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1"
+ scope="async"
+ closure="2">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="796">a callback to call when exporting is finished</doc>
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="callback_data"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="797">data passed to @callback</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="export_finish"
+ c:identifier="wp_session_item_export_finish"
+ throws="1">
+ <source-position filename="../lib/wp/session-item.h" line="175"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="875">%TRUE if the item is now exported, %FALSE if there was an error</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="871">the session item</doc>
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </instance-parameter>
+ <parameter name="res" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="872">the async operation result</doc>
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_associated_proxy"
+ c:identifier="wp_session_item_get_associated_proxy">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="537">An associated proxy is a #WpProxy subclass instance that is somehow related
+to this item. For example:
+ - An exported #WpSiEndpoint should have at least:
+ - an associated #WpEndpoint
+ - an associated #WpSession
+ - An exported #WpSiStream should have at least:
+ - an associated #WpEndpointStream
+ - an associated #WpEndpoint
+ - In cases where the item wraps a single PipeWire node, it should also
+ have an associated #WpNode</doc>
+ <source-position filename="../lib/wp/session-item.h" line="140"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="553">the associated proxy
+ of the specified @proxy_type, or %NULL if there is no association to
+ such a proxy</doc>
+ <type name="Proxy" c:type="gpointer"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="539">the session item</doc>
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </instance-parameter>
+ <parameter name="proxy_type" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="540">a #WpProxy subclass #GType</doc>
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_associated_proxy_id"
+ c:identifier="wp_session_item_get_associated_proxy_id">
+ <source-position filename="../lib/wp/session-item.h" line="144"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="573">the bound id of the associated proxy of the specified @proxy_type,
+ or `SPA_ID_INVALID` if there is no association to such a proxy</doc>
+ <type name="guint32" c:type="guint32"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="570">the session item</doc>
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </instance-parameter>
+ <parameter name="proxy_type" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="571">a #WpProxy subclass #GType</doc>
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_configuration"
+ c:identifier="wp_session_item_get_configuration">
+ <source-position filename="../lib/wp/session-item.h" line="153"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="613">the active configuration, as a `a{sv}` dictionary</doc>
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="611">the session item</doc>
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_flags" c:identifier="wp_session_item_get_flags">
+ <source-position filename="../lib/wp/session-item.h" line="129"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="473">the item's flags</doc>
+ <type name="SiFlags" c:type="WpSiFlags"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="471">the session item</doc>
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_parent" c:identifier="wp_session_item_get_parent">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="430">Gets the item's parent, which is the #WpSessionBin this item has been added
+to, or NULL if the item does not belong to a session bin.</doc>
+ <source-position filename="../lib/wp/session-item.h" line="124"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="437">the item's parent.</doc>
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="432">the session item</doc>
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="reset" c:identifier="wp_session_item_reset">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="414">Resets the state of the item, deactivating it, unexporting it and
+resetting configuration options as well.</doc>
+ <source-position filename="../lib/wp/session-item.h" line="121"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="416">the session item</doc>
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="set_flag" c:identifier="wp_session_item_set_flag">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="485">Sets the specified @flag on this item.
+
+Note that bits 1-8 cannot be set using this function, they can only
+be changed internally.</doc>
+ <source-position filename="../lib/wp/session-item.h" line="132"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="487">the session item</doc>
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </instance-parameter>
+ <parameter name="flag" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="488">the flag to set</doc>
+ <type name="SiFlags" c:type="WpSiFlags"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="unexport" c:identifier="wp_session_item_unexport">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="887">Reverses the effects of a previous call to wp_session_item_export().
+This means that after this method is called:
+ - The item is no longer exported on PipeWire
+ - The item is no longer associated with a session
+ - If an export operation was in progress, it is cancelled.
+
+If the item was not exported, this method does nothing.</doc>
+ <source-position filename="../lib/wp/session-item.h" line="179"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="889">the session item</doc>
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <field name="parent_instance">
+ <type name="GObject.Object" c:type="GObject"/>
+ </field>
+ <glib:signal name="flags-changed" when="last">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="flags" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="406">the current flags</doc>
+ <type name="SiFlags"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </class>
+ <record name="SessionItemClass"
+ c:type="WpSessionItemClass"
+ glib:is-gtype-struct-for="SessionItem">
+ <source-position filename="../lib/wp/session-item.h" line="118"/>
+ <field name="parent_class">
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+ </field>
+ <field name="reset">
+ <callback name="reset">
+ <source-position filename="../lib/wp/session-item.h" line="100"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="416">the session item</doc>
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_associated_proxy">
+ <callback name="get_associated_proxy">
+ <source-position filename="../lib/wp/session-item.h" line="102"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="553">the associated proxy
+ of the specified @proxy_type, or %NULL if there is no association to
+ such a proxy</doc>
+ <type name="Proxy" c:type="gpointer"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="539">the session item</doc>
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </parameter>
+ <parameter name="proxy_type" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="540">a #WpProxy subclass #GType</doc>
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="configure">
+ <callback name="configure">
+ <source-position filename="../lib/wp/session-item.h" line="104"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="593">%TRUE on success, %FALSE if the options could not be set</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="589">the session item</doc>
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </parameter>
+ <parameter name="args" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="590">the configuration options to set
+ (`a{sv}` dictionary, mapping option names to values)</doc>
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_configuration">
+ <callback name="get_configuration">
+ <source-position filename="../lib/wp/session-item.h" line="105"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="613">the active configuration, as a `a{sv}` dictionary</doc>
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.c"
+ line="611">the session item</doc>
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="activate_get_next_step">
+ <callback name="activate_get_next_step">
+ <source-position filename="../lib/wp/session-item.h" line="107"/>
+ <return-value transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </parameter>
+ <parameter name="transition" transfer-ownership="none">
+ <type name="Transition" c:type="WpTransition*"/>
+ </parameter>
+ <parameter name="step" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="activate_execute_step">
+ <callback name="activate_execute_step">
+ <source-position filename="../lib/wp/session-item.h" line="109"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </parameter>
+ <parameter name="transition" transfer-ownership="none">
+ <type name="Transition" c:type="WpTransition*"/>
+ </parameter>
+ <parameter name="step" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="activate_rollback">
+ <callback name="activate_rollback">
+ <source-position filename="../lib/wp/session-item.h" line="111"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="export_get_next_step">
+ <callback name="export_get_next_step">
+ <source-position filename="../lib/wp/session-item.h" line="113"/>
+ <return-value transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </parameter>
+ <parameter name="transition" transfer-ownership="none">
+ <type name="Transition" c:type="WpTransition*"/>
+ </parameter>
+ <parameter name="step" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="export_execute_step">
+ <callback name="export_execute_step">
+ <source-position filename="../lib/wp/session-item.h" line="115"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </parameter>
+ <parameter name="transition" transfer-ownership="none">
+ <type name="Transition" c:type="WpTransition*"/>
+ </parameter>
+ <parameter name="step" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="export_rollback">
+ <callback name="export_rollback">
+ <source-position filename="../lib/wp/session-item.h" line="117"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ </record>
+ <bitfield name="SiConfigOptionFlags"
+ glib:type-name="WpSiConfigOptionFlags"
+ glib:get-type="wp_si_config_option_flags_get_type"
+ c:type="WpSiConfigOptionFlags">
+ <member name="writeable"
+ value="1"
+ c:identifier="WP_SI_CONFIG_OPTION_WRITEABLE"
+ glib:nick="writeable">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.h"
+ line="69">the option can be set externally</doc>
+ </member>
+ <member name="required"
+ value="2"
+ c:identifier="WP_SI_CONFIG_OPTION_REQUIRED"
+ glib:nick="required">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.h"
+ line="70">the option is required to activate the item</doc>
+ </member>
+ </bitfield>
+ <interface name="SiEndpoint"
+ c:symbol-prefix="si_endpoint"
+ c:type="WpSiEndpoint"
+ glib:type-name="WpSiEndpoint"
+ glib:get-type="wp_si_endpoint_get_type"
+ glib:type-struct="SiEndpointInterface">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="19">An interface for session items that implement a PipeWire endpoint.</doc>
+ <source-position filename="../lib/wp/si-interfaces.h" line="43"/>
+ <prerequisite name="SessionItem"/>
+ <virtual-method name="get_n_streams" invoker="get_n_streams">
+ <source-position filename="../lib/wp/si-interfaces.h" line="39"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="92">the number of streams in the endpoint</doc>
+ <type name="guint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="90">the session item</doc>
+ <type name="SiEndpoint" c:type="WpSiEndpoint*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_properties" invoker="get_properties">
+ <source-position filename="../lib/wp/si-interfaces.h" line="37"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="77">the properties of the endpoint</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="75">the session item</doc>
+ <type name="SiEndpoint" c:type="WpSiEndpoint*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_registration_info"
+ invoker="get_registration_info">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="51">This should return information that is used for registering the endpoint,
+as a GVariant tuple of type (ssya{ss}) that contains, in order:
+ - s: the endpoint's name
+ - s: the media class
+ - y: the direction
+ - a{ss}: additional properties to be added to the list of global properties</doc>
+ <source-position filename="../lib/wp/si-interfaces.h" line="36"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="62">registration info for the endpoint</doc>
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="53">the session item</doc>
+ <type name="SiEndpoint" c:type="WpSiEndpoint*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_stream" invoker="get_stream">
+ <source-position filename="../lib/wp/si-interfaces.h" line="40"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="109">the stream at @index</doc>
+ <type name="SiStream" c:type="WpSiStream*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="105">the session item</doc>
+ <type name="SiEndpoint" c:type="WpSiEndpoint*"/>
+ </instance-parameter>
+ <parameter name="index" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="106">the stream index, from 0 up to and excluding
+ wp_si_endpoint_get_n_streams()</doc>
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_stream_acquisition"
+ invoker="get_stream_acquisition">
+ <source-position filename="../lib/wp/si-interfaces.h" line="42"/>
+ <return-value transfer-ownership="none" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="124">the stream acquisition interface
+ associated with this endpoint, or %NULL if this endpoint does not require
+ acquiring streams before linking them</doc>
+ <type name="SiStreamAcquisition" c:type="WpSiStreamAcquisition*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="122">the session item</doc>
+ <type name="SiEndpoint" c:type="WpSiEndpoint*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <method name="get_n_streams" c:identifier="wp_si_endpoint_get_n_streams">
+ <source-position filename="../lib/wp/si-interfaces.h" line="52"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="92">the number of streams in the endpoint</doc>
+ <type name="guint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="90">the session item</doc>
+ <type name="SiEndpoint" c:type="WpSiEndpoint*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_properties"
+ c:identifier="wp_si_endpoint_get_properties">
+ <source-position filename="../lib/wp/si-interfaces.h" line="49"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="77">the properties of the endpoint</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="75">the session item</doc>
+ <type name="SiEndpoint" c:type="WpSiEndpoint*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_registration_info"
+ c:identifier="wp_si_endpoint_get_registration_info">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="51">This should return information that is used for registering the endpoint,
+as a GVariant tuple of type (ssya{ss}) that contains, in order:
+ - s: the endpoint's name
+ - s: the media class
+ - y: the direction
+ - a{ss}: additional properties to be added to the list of global properties</doc>
+ <source-position filename="../lib/wp/si-interfaces.h" line="46"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="62">registration info for the endpoint</doc>
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="53">the session item</doc>
+ <type name="SiEndpoint" c:type="WpSiEndpoint*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_stream" c:identifier="wp_si_endpoint_get_stream">
+ <source-position filename="../lib/wp/si-interfaces.h" line="55"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="109">the stream at @index</doc>
+ <type name="SiStream" c:type="WpSiStream*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="105">the session item</doc>
+ <type name="SiEndpoint" c:type="WpSiEndpoint*"/>
+ </instance-parameter>
+ <parameter name="index" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="106">the stream index, from 0 up to and excluding
+ wp_si_endpoint_get_n_streams()</doc>
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_stream_acquisition"
+ c:identifier="wp_si_endpoint_get_stream_acquisition">
+ <source-position filename="../lib/wp/si-interfaces.h" line="58"/>
+ <return-value transfer-ownership="none" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="124">the stream acquisition interface
+ associated with this endpoint, or %NULL if this endpoint does not require
+ acquiring streams before linking them</doc>
+ <type name="SiStreamAcquisition" c:type="WpSiStreamAcquisition*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="122">the session item</doc>
+ <type name="SiEndpoint" c:type="WpSiEndpoint*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <glib:signal name="endpoint-properties-changed" when="last">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </glib:signal>
+ <glib:signal name="endpoint-streams-changed" when="last">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </glib:signal>
+ </interface>
+ <record name="SiEndpointInterface"
+ c:type="WpSiEndpointInterface"
+ glib:is-gtype-struct-for="SiEndpoint">
+ <source-position filename="../lib/wp/si-interfaces.h" line="43"/>
+ <field name="interface">
+ <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+ </field>
+ <field name="get_registration_info">
+ <callback name="get_registration_info">
+ <source-position filename="../lib/wp/si-interfaces.h" line="36"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="62">registration info for the endpoint</doc>
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="53">the session item</doc>
+ <type name="SiEndpoint" c:type="WpSiEndpoint*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_properties">
+ <callback name="get_properties">
+ <source-position filename="../lib/wp/si-interfaces.h" line="37"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="77">the properties of the endpoint</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="75">the session item</doc>
+ <type name="SiEndpoint" c:type="WpSiEndpoint*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_n_streams">
+ <callback name="get_n_streams">
+ <source-position filename="../lib/wp/si-interfaces.h" line="39"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="92">the number of streams in the endpoint</doc>
+ <type name="guint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="90">the session item</doc>
+ <type name="SiEndpoint" c:type="WpSiEndpoint*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_stream">
+ <callback name="get_stream">
+ <source-position filename="../lib/wp/si-interfaces.h" line="40"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="109">the stream at @index</doc>
+ <type name="SiStream" c:type="WpSiStream*"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="105">the session item</doc>
+ <type name="SiEndpoint" c:type="WpSiEndpoint*"/>
+ </parameter>
+ <parameter name="index" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="106">the stream index, from 0 up to and excluding
+ wp_si_endpoint_get_n_streams()</doc>
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_stream_acquisition">
+ <callback name="get_stream_acquisition">
+ <source-position filename="../lib/wp/si-interfaces.h" line="42"/>
+ <return-value transfer-ownership="none" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="124">the stream acquisition interface
+ associated with this endpoint, or %NULL if this endpoint does not require
+ acquiring streams before linking them</doc>
+ <type name="SiStreamAcquisition" c:type="WpSiStreamAcquisition*"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="122">the session item</doc>
+ <type name="SiEndpoint" c:type="WpSiEndpoint*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ </record>
+ <class name="SiFactory"
+ c:symbol-prefix="si_factory"
+ c:type="WpSiFactory"
+ parent="GObject.Object"
+ abstract="1"
+ glib:type-name="WpSiFactory"
+ glib:get-type="wp_si_factory_get_type"
+ glib:type-struct="SiFactoryClass">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="30">A factory for session items.
+
+The most simple way to register a new item implementation would be:
+|[
+GVariantBuilder b = G_VARIANT_BUILDER_INIT ("a(ssymv)");
+g_variant_builder_add (&b, ...);
+wp_si_factory_register (core, wp_si_factory_new_simple (
+ "foobar", FOO_TYPE_BAR, g_variant_builder_end (&b)));
+]|
+
+And the most simple way to construct an item from a registered factory:
+|[
+item = wp_session_item_make (core, "foobar");
+]|</doc>
+ <source-position filename="../lib/wp/si-factory.h" line="32"/>
+ <constructor name="new_simple" c:identifier="wp_si_factory_new_simple">
+ <source-position filename="../lib/wp/si-factory.h" line="35"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="285">the new factory</doc>
+ <type name="SiFactory" c:type="WpSiFactory*"/>
+ </return-value>
+ <parameters>
+ <parameter name="factory_name" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="279">the factory name; must be a static string!</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="si_type" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="280">the #WpSessionItem subclass type to instantiate for
+ constructing items</doc>
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ <parameter name="config_spec" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="282">the config spec that will be returned
+ by wp_si_factory_get_config_spec()</doc>
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <function name="find" c:identifier="wp_si_factory_find">
+ <source-position filename="../lib/wp/si-factory.h" line="51"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="195">the factory matching the lookup name</doc>
+ <type name="SiFactory" c:type="WpSiFactory*"/>
+ </return-value>
+ <parameters>
+ <parameter name="core" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="192">the core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </parameter>
+ <parameter name="factory_name" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="193">the lookup name</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="register" c:identifier="wp_si_factory_register">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="163">Registers the @factory on the @core.</doc>
+ <source-position filename="../lib/wp/si-factory.h" line="48"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="core" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="165">the core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </parameter>
+ <parameter name="factory" transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="166">the factory to register</doc>
+ <type name="SiFactory" c:type="WpSiFactory*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <virtual-method name="construct" invoker="construct">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="117">Creates a new instance of the session item that is constructed
+by this factory</doc>
+ <source-position filename="../lib/wp/si-factory.h" line="30"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="124">a new session item instance</doc>
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="119">the factory</doc>
+ <type name="SiFactory" c:type="WpSiFactory*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_config_spec" invoker="get_config_spec">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="135">Returns a description of all the configuration options that the constructed
+items of this factory have. Configuration options are a way for items to
+accept input from external sources that affects their behavior, or to
+provide output for other items to consume as their configuration.
+
+The returned GVariant has the a(ssymv) type. This is an array of tuples,
+where each tuple has the following values, in order:
+ * s (string): the name of the option
+ * s (string): a GVariant type string, describing the type of the data
+ * y (byte): a combination of #WpSiConfigOptionFlags
+ * mv (optional variant): optionally, an additional variant
+ This is provided to allow extensions.</doc>
+ <source-position filename="../lib/wp/si-factory.h" line="31"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="152">the configuration description</doc>
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="137">the factory</doc>
+ <type name="SiFactory" c:type="WpSiFactory*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <method name="construct" c:identifier="wp_si_factory_construct">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="117">Creates a new instance of the session item that is constructed
+by this factory</doc>
+ <source-position filename="../lib/wp/si-factory.h" line="42"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="124">a new session item instance</doc>
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="119">the factory</doc>
+ <type name="SiFactory" c:type="WpSiFactory*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_config_spec"
+ c:identifier="wp_si_factory_get_config_spec">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="135">Returns a description of all the configuration options that the constructed
+items of this factory have. Configuration options are a way for items to
+accept input from external sources that affects their behavior, or to
+provide output for other items to consume as their configuration.
+
+The returned GVariant has the a(ssymv) type. This is an array of tuples,
+where each tuple has the following values, in order:
+ * s (string): the name of the option
+ * s (string): a GVariant type string, describing the type of the data
+ * y (byte): a combination of #WpSiConfigOptionFlags
+ * mv (optional variant): optionally, an additional variant
+ This is provided to allow extensions.</doc>
+ <source-position filename="../lib/wp/si-factory.h" line="45"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="152">the configuration description</doc>
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="137">the factory</doc>
+ <type name="SiFactory" c:type="WpSiFactory*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_name" c:identifier="wp_si_factory_get_name">
+ <source-position filename="../lib/wp/si-factory.h" line="39"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="106">the factory name</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="104">the factory</doc>
+ <type name="SiFactory" c:type="WpSiFactory*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <property name="name"
+ writable="1"
+ construct-only="1"
+ transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </property>
+ <field name="parent_instance">
+ <type name="GObject.Object" c:type="GObject"/>
+ </field>
+ </class>
+ <record name="SiFactoryClass"
+ c:type="WpSiFactoryClass"
+ glib:is-gtype-struct-for="SiFactory">
+ <source-position filename="../lib/wp/si-factory.h" line="32"/>
+ <field name="parent_class">
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+ </field>
+ <field name="construct">
+ <callback name="construct">
+ <source-position filename="../lib/wp/si-factory.h" line="30"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="124">a new session item instance</doc>
+ <type name="SessionItem" c:type="WpSessionItem*"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="119">the factory</doc>
+ <type name="SiFactory" c:type="WpSiFactory*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_config_spec">
+ <callback name="get_config_spec">
+ <source-position filename="../lib/wp/si-factory.h" line="31"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="152">the configuration description</doc>
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-factory.c"
+ line="137">the factory</doc>
+ <type name="SiFactory" c:type="WpSiFactory*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ </record>
+ <bitfield name="SiFlags"
+ glib:type-name="WpSiFlags"
+ glib:get-type="wp_si_flags_get_type"
+ c:type="WpSiFlags">
+ <member name="activating"
+ value="1"
+ c:identifier="WP_SI_FLAG_ACTIVATING"
+ glib:nick="activating">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.h"
+ line="29">set when an activation transition is in progress</doc>
+ </member>
+ <member name="active"
+ value="2"
+ c:identifier="WP_SI_FLAG_ACTIVE"
+ glib:nick="active">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.h"
+ line="30">set when an activation transition completes successfully</doc>
+ </member>
+ <member name="activate_error"
+ value="4"
+ c:identifier="WP_SI_FLAG_ACTIVATE_ERROR"
+ glib:nick="activate-error">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.h"
+ line="31">set when there was an error in the activation
+ process; to clear, call wp_session_item_deactivate()</doc>
+ </member>
+ <member name="exporting"
+ value="16"
+ c:identifier="WP_SI_FLAG_EXPORTING"
+ glib:nick="exporting">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.h"
+ line="33">set when an export operation is in progress</doc>
+ </member>
+ <member name="exported"
+ value="32"
+ c:identifier="WP_SI_FLAG_EXPORTED"
+ glib:nick="exported">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.h"
+ line="34">set when the item has exported all necessary objects
+ to PipeWire</doc>
+ </member>
+ <member name="export_error"
+ value="64"
+ c:identifier="WP_SI_FLAG_EXPORT_ERROR"
+ glib:nick="export-error">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.h"
+ line="36">set when there was an error in the export
+ process; to clear, call wp_session_item_unexport()</doc>
+ </member>
+ <member name="configured"
+ value="256"
+ c:identifier="WP_SI_FLAG_CONFIGURED"
+ glib:nick="configured">
+ <doc xml:space="preserve"
+ filename="../lib/wp/session-item.h"
+ line="38">must be set by subclasses when all the required
+ (%WP_SI_CONFIG_OPTION_REQUIRED) configuration options have been set</doc>
+ </member>
+ <member name="custom_start"
+ value="65536"
+ c:identifier="WP_SI_FLAG_CUSTOM_START"
+ glib:nick="custom-start">
+ </member>
+ </bitfield>
+ <interface name="SiLink"
+ c:symbol-prefix="si_link"
+ c:type="WpSiLink"
+ glib:type-name="WpSiLink"
+ glib:get-type="wp_si_link_get_type"
+ glib:type-struct="SiLinkInterface">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="210">An interface for session items that provide a PipeWire endpoint link.</doc>
+ <source-position filename="../lib/wp/si-interfaces.h" line="108"/>
+ <prerequisite name="SessionItem"/>
+ <virtual-method name="get_in_stream" invoker="get_in_stream">
+ <source-position filename="../lib/wp/si-interfaces.h" line="107"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="285">the input stream that is linked by this link</doc>
+ <type name="SiStream" c:type="WpSiStream*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="283">the session item</doc>
+ <type name="SiLink" c:type="WpSiLink*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_out_stream" invoker="get_out_stream">
+ <source-position filename="../lib/wp/si-interfaces.h" line="106"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="270">the output stream that is linked by this link</doc>
+ <type name="SiStream" c:type="WpSiStream*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="268">the session item</doc>
+ <type name="SiLink" c:type="WpSiLink*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_properties" invoker="get_properties">
+ <source-position filename="../lib/wp/si-interfaces.h" line="104"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="255">the properties of the link</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="253">the session item</doc>
+ <type name="SiLink" c:type="WpSiLink*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_registration_info"
+ invoker="get_registration_info">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="232">This should return information that is used for registering the link,
+as a GVariant of type a{ss} that contains additional properties to be
+added to the list of global properties</doc>
+ <source-position filename="../lib/wp/si-interfaces.h" line="103"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="240">registration info for the link</doc>
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="234">the session item</doc>
+ <type name="SiLink" c:type="WpSiLink*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <method name="get_in_stream" c:identifier="wp_si_link_get_in_stream">
+ <source-position filename="../lib/wp/si-interfaces.h" line="120"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="285">the input stream that is linked by this link</doc>
+ <type name="SiStream" c:type="WpSiStream*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="283">the session item</doc>
+ <type name="SiLink" c:type="WpSiLink*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_out_stream" c:identifier="wp_si_link_get_out_stream">
+ <source-position filename="../lib/wp/si-interfaces.h" line="117"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="270">the output stream that is linked by this link</doc>
+ <type name="SiStream" c:type="WpSiStream*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="268">the session item</doc>
+ <type name="SiLink" c:type="WpSiLink*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_properties" c:identifier="wp_si_link_get_properties">
+ <source-position filename="../lib/wp/si-interfaces.h" line="114"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="255">the properties of the link</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="253">the session item</doc>
+ <type name="SiLink" c:type="WpSiLink*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_registration_info"
+ c:identifier="wp_si_link_get_registration_info">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="232">This should return information that is used for registering the link,
+as a GVariant of type a{ss} that contains additional properties to be
+added to the list of global properties</doc>
+ <source-position filename="../lib/wp/si-interfaces.h" line="111"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="240">registration info for the link</doc>
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="234">the session item</doc>
+ <type name="SiLink" c:type="WpSiLink*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <glib:signal name="link-properties-changed" when="last">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </glib:signal>
+ </interface>
+ <record name="SiLinkInterface"
+ c:type="WpSiLinkInterface"
+ glib:is-gtype-struct-for="SiLink">
+ <source-position filename="../lib/wp/si-interfaces.h" line="108"/>
+ <field name="interface">
+ <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+ </field>
+ <field name="get_registration_info">
+ <callback name="get_registration_info">
+ <source-position filename="../lib/wp/si-interfaces.h" line="103"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="240">registration info for the link</doc>
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="234">the session item</doc>
+ <type name="SiLink" c:type="WpSiLink*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_properties">
+ <callback name="get_properties">
+ <source-position filename="../lib/wp/si-interfaces.h" line="104"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="255">the properties of the link</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="253">the session item</doc>
+ <type name="SiLink" c:type="WpSiLink*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_out_stream">
+ <callback name="get_out_stream">
+ <source-position filename="../lib/wp/si-interfaces.h" line="106"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="270">the output stream that is linked by this link</doc>
+ <type name="SiStream" c:type="WpSiStream*"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="268">the session item</doc>
+ <type name="SiLink" c:type="WpSiLink*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_in_stream">
+ <callback name="get_in_stream">
+ <source-position filename="../lib/wp/si-interfaces.h" line="107"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="285">the input stream that is linked by this link</doc>
+ <type name="SiStream" c:type="WpSiStream*"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="283">the session item</doc>
+ <type name="SiLink" c:type="WpSiLink*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ </record>
+ <interface name="SiPortInfo"
+ c:symbol-prefix="si_port_info"
+ c:type="WpSiPortInfo"
+ glib:type-name="WpSiPortInfo"
+ glib:get-type="wp_si_port_info_get_type"
+ glib:type-struct="SiPortInfoInterface">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="296">An interface for retrieving PipeWire port information from a session item.
+This information is used to create links in the nodes graph.
+
+This is normally implemented by the same session items that implement
+#WpSiStream. The standard link implementation expects to be able to cast
+a #WpSiStream into a #WpSiPortInfo.</doc>
+ <source-position filename="../lib/wp/si-interfaces.h" line="137"/>
+ <prerequisite name="SessionItem"/>
+ <virtual-method name="get_ports" invoker="get_ports">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="313">This method returns a variant of type "a(uuu)", where each tuple in the
+array contains the following information:
+ - u: (guint32) node id
+ - u: (guint32) port id (the port must belong on the node specified above)
+ - u: (guint32) the audio channel (enum spa_audio_channel) that this port
+ makes available, or 0 for non-audio content
+
+The order in which ports appear in this array is important when no channel
+information is available. The link implementation should link the ports
+in the order they appear. This is normally a good enough substitute for
+channel matching.
+
+The @context argument can be used to get different sets of ports from
+the item. The following well-known contexts are defined:
+ - %NULL: get the standard ports to be linked
+ - "monitor": get the monitor ports
+ - "control": get the control port
+ - "reverse": get the reverse direction ports, if this item controls a
+ filter node, which would have ports on both directions
+
+Contexts other than %NULL may only be used internally to ease the
+implementation of more complex endpoint relationships. For example, a
+#WpSessionItem that is in control of an input (sink) adapter node may
+implement #WpSiStream and #WpSiPortInfo where the %NULL context will return
+the standard input ports and the "monitor" context will return the adapter's
+monitor ports. When linking this stream to another stream, the %NULL context
+will always be used, but the item may internally spawn a secondary
+#WpSessionItem that implements the "monitor" endpoint & stream. That
+secondary stream may implement #WpSiPortInfo, chaining calls to the
+#WpSiPortInfo of the original item using the "monitor" context. This way,
+the monitor #WpSessionItem does not need to share control of the underlying
+node; it only proxies calls to satisfy the API.</doc>
+ <source-position filename="../lib/wp/si-interfaces.h" line="136"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="351">a #GVariant containing information about the
+ ports of this item</doc>
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="315">the session item</doc>
+ <type name="SiPortInfo" c:type="WpSiPortInfo*"/>
+ </instance-parameter>
+ <parameter name="context"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="316">an optional context for the ports</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="get_ports" c:identifier="wp_si_port_info_get_ports">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="313">This method returns a variant of type "a(uuu)", where each tuple in the
+array contains the following information:
+ - u: (guint32) node id
+ - u: (guint32) port id (the port must belong on the node specified above)
+ - u: (guint32) the audio channel (enum spa_audio_channel) that this port
+ makes available, or 0 for non-audio content
+
+The order in which ports appear in this array is important when no channel
+information is available. The link implementation should link the ports
+in the order they appear. This is normally a good enough substitute for
+channel matching.
+
+The @context argument can be used to get different sets of ports from
+the item. The following well-known contexts are defined:
+ - %NULL: get the standard ports to be linked
+ - "monitor": get the monitor ports
+ - "control": get the control port
+ - "reverse": get the reverse direction ports, if this item controls a
+ filter node, which would have ports on both directions
+
+Contexts other than %NULL may only be used internally to ease the
+implementation of more complex endpoint relationships. For example, a
+#WpSessionItem that is in control of an input (sink) adapter node may
+implement #WpSiStream and #WpSiPortInfo where the %NULL context will return
+the standard input ports and the "monitor" context will return the adapter's
+monitor ports. When linking this stream to another stream, the %NULL context
+will always be used, but the item may internally spawn a secondary
+#WpSessionItem that implements the "monitor" endpoint & stream. That
+secondary stream may implement #WpSiPortInfo, chaining calls to the
+#WpSiPortInfo of the original item using the "monitor" context. This way,
+the monitor #WpSessionItem does not need to share control of the underlying
+node; it only proxies calls to satisfy the API.</doc>
+ <source-position filename="../lib/wp/si-interfaces.h" line="140"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="351">a #GVariant containing information about the
+ ports of this item</doc>
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="315">the session item</doc>
+ <type name="SiPortInfo" c:type="WpSiPortInfo*"/>
+ </instance-parameter>
+ <parameter name="context"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="316">an optional context for the ports</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ </interface>
+ <record name="SiPortInfoInterface"
+ c:type="WpSiPortInfoInterface"
+ glib:is-gtype-struct-for="SiPortInfo">
+ <source-position filename="../lib/wp/si-interfaces.h" line="137"/>
+ <field name="interface">
+ <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+ </field>
+ <field name="get_ports">
+ <callback name="get_ports">
+ <source-position filename="../lib/wp/si-interfaces.h" line="136"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="351">a #GVariant containing information about the
+ ports of this item</doc>
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="315">the session item</doc>
+ <type name="SiPortInfo" c:type="WpSiPortInfo*"/>
+ </parameter>
+ <parameter name="context"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="316">an optional context for the ports</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ </record>
+ <interface name="SiStream"
+ c:symbol-prefix="si_stream"
+ c:type="WpSiStream"
+ glib:type-name="WpSiStream"
+ glib:get-type="wp_si_stream_get_type"
+ glib:type-struct="SiStreamInterface">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="138">An interface for session items that provide a PipeWire endpoint stream.</doc>
+ <source-position filename="../lib/wp/si-interfaces.h" line="78"/>
+ <prerequisite name="SessionItem"/>
+ <virtual-method name="get_parent_endpoint" invoker="get_parent_endpoint">
+ <source-position filename="../lib/wp/si-interfaces.h" line="77"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="199">the endpoint that this stream belongs to</doc>
+ <type name="SiEndpoint" c:type="WpSiEndpoint*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="197">the session item</doc>
+ <type name="SiStream" c:type="WpSiStream*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_properties" invoker="get_properties">
+ <source-position filename="../lib/wp/si-interfaces.h" line="75"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="184">the properties of the stream</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="182">the session item</doc>
+ <type name="SiStream" c:type="WpSiStream*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_registration_info"
+ invoker="get_registration_info">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="160">This should return information that is used for registering the stream,
+as a GVariant tuple of type (sa{ss}) that contains, in order:
+ - s: the stream's name
+ - a{ss}: additional properties to be added to the list of global properties</doc>
+ <source-position filename="../lib/wp/si-interfaces.h" line="74"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="169">registration info for the stream</doc>
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="162">the session item</doc>
+ <type name="SiStream" c:type="WpSiStream*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <method name="get_parent_endpoint"
+ c:identifier="wp_si_stream_get_parent_endpoint">
+ <source-position filename="../lib/wp/si-interfaces.h" line="87"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="199">the endpoint that this stream belongs to</doc>
+ <type name="SiEndpoint" c:type="WpSiEndpoint*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="197">the session item</doc>
+ <type name="SiStream" c:type="WpSiStream*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_properties" c:identifier="wp_si_stream_get_properties">
+ <source-position filename="../lib/wp/si-interfaces.h" line="84"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="184">the properties of the stream</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="182">the session item</doc>
+ <type name="SiStream" c:type="WpSiStream*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_registration_info"
+ c:identifier="wp_si_stream_get_registration_info">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="160">This should return information that is used for registering the stream,
+as a GVariant tuple of type (sa{ss}) that contains, in order:
+ - s: the stream's name
+ - a{ss}: additional properties to be added to the list of global properties</doc>
+ <source-position filename="../lib/wp/si-interfaces.h" line="81"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="169">registration info for the stream</doc>
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="162">the session item</doc>
+ <type name="SiStream" c:type="WpSiStream*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <glib:signal name="stream-properties-changed" when="last">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </glib:signal>
+ </interface>
+ <interface name="SiStreamAcquisition"
+ c:symbol-prefix="si_stream_acquisition"
+ c:type="WpSiStreamAcquisition"
+ glib:type-name="WpSiStreamAcquisition"
+ glib:get-type="wp_si_stream_acquisition_get_type"
+ glib:type-struct="SiStreamAcquisitionInterface">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="363">This interface provides a way to request a stream for linking before doing
+so. This allows endpoint implementations to apply internal policy rules
+(such as, streams that can only be linked once or mutually exclusive streams).
+
+A #WpSiStreamAcquisition is associated directly with a #WpSiEndpoint via
+wp_si_endpoint_get_stream_acquisition(). In order to allow switching policies,
+it is recommended that endpoint implementations use a separate session item
+to implement this interface and allow replacing it.</doc>
+ <source-position filename="../lib/wp/si-interfaces.h" line="164"/>
+ <prerequisite name="SessionItem"/>
+ <virtual-method name="acquire" invoker="acquire">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="383">Acquires the @stream for linking by @acquisitor.
+
+When a link is not allowed by policy, this operation should return
+an error.
+
+When a link needs to be delayed for a short amount of time (ex. to apply
+a fade out effect on another stream), this operation should finish with a
+delay. It is safe to assume that after this operation completes,
+the stream will be linked immediately.</doc>
+ <source-position filename="../lib/wp/si-interfaces.h" line="157"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="385">the session item</doc>
+ <type name="SiStreamAcquisition" c:type="WpSiStreamAcquisition*"/>
+ </instance-parameter>
+ <parameter name="acquisitor" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="386">the link that is trying to acquire a stream</doc>
+ <type name="SiLink" c:type="WpSiLink*"/>
+ </parameter>
+ <parameter name="stream" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="387">the stream that is being acquired</doc>
+ <type name="SiStream" c:type="WpSiStream*"/>
+ </parameter>
+ <parameter name="callback"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1"
+ scope="async"
+ closure="3">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="388">the callback to call when the operation is done</doc>
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="data"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="389">user data for @callback</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="acquire_finish"
+ invoker="acquire_finish"
+ throws="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="413">Finishes the operation started by wp_si_stream_acquisition_acquire().
+This is meant to be called in the callback that was passed to that method.</doc>
+ <source-position filename="../lib/wp/si-interfaces.h" line="159"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="422">%TRUE on success, %FALSE if there was an error</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="415">the session item</doc>
+ <type name="SiStreamAcquisition" c:type="WpSiStreamAcquisition*"/>
+ </instance-parameter>
+ <parameter name="res" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="416">the async result</doc>
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="release" invoker="release">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="436">Releases the @stream, which means that it is being unlinked.</doc>
+ <source-position filename="../lib/wp/si-interfaces.h" line="162"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="438">the session item</doc>
+ <type name="SiStreamAcquisition" c:type="WpSiStreamAcquisition*"/>
+ </instance-parameter>
+ <parameter name="acquisitor" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="439">the link that had previously acquired the stream</doc>
+ <type name="SiLink" c:type="WpSiLink*"/>
+ </parameter>
+ <parameter name="stream" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="440">the stream that is being released</doc>
+ <type name="SiStream" c:type="WpSiStream*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="acquire" c:identifier="wp_si_stream_acquisition_acquire">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="383">Acquires the @stream for linking by @acquisitor.
+
+When a link is not allowed by policy, this operation should return
+an error.
+
+When a link needs to be delayed for a short amount of time (ex. to apply
+a fade out effect on another stream), this operation should finish with a
+delay. It is safe to assume that after this operation completes,
+the stream will be linked immediately.</doc>
+ <source-position filename="../lib/wp/si-interfaces.h" line="167"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="385">the session item</doc>
+ <type name="SiStreamAcquisition" c:type="WpSiStreamAcquisition*"/>
+ </instance-parameter>
+ <parameter name="acquisitor" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="386">the link that is trying to acquire a stream</doc>
+ <type name="SiLink" c:type="WpSiLink*"/>
+ </parameter>
+ <parameter name="stream" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="387">the stream that is being acquired</doc>
+ <type name="SiStream" c:type="WpSiStream*"/>
+ </parameter>
+ <parameter name="callback"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1"
+ scope="async"
+ closure="3">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="388">the callback to call when the operation is done</doc>
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="data"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="389">user data for @callback</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="acquire_finish"
+ c:identifier="wp_si_stream_acquisition_acquire_finish"
+ throws="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="413">Finishes the operation started by wp_si_stream_acquisition_acquire().
+This is meant to be called in the callback that was passed to that method.</doc>
+ <source-position filename="../lib/wp/si-interfaces.h" line="172"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="422">%TRUE on success, %FALSE if there was an error</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="415">the session item</doc>
+ <type name="SiStreamAcquisition" c:type="WpSiStreamAcquisition*"/>
+ </instance-parameter>
+ <parameter name="res" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="416">the async result</doc>
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="release" c:identifier="wp_si_stream_acquisition_release">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="436">Releases the @stream, which means that it is being unlinked.</doc>
+ <source-position filename="../lib/wp/si-interfaces.h" line="176"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="438">the session item</doc>
+ <type name="SiStreamAcquisition" c:type="WpSiStreamAcquisition*"/>
+ </instance-parameter>
+ <parameter name="acquisitor" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="439">the link that had previously acquired the stream</doc>
+ <type name="SiLink" c:type="WpSiLink*"/>
+ </parameter>
+ <parameter name="stream" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="440">the stream that is being released</doc>
+ <type name="SiStream" c:type="WpSiStream*"/>
+ </parameter>
+ </parameters>
+ </method>
+ </interface>
+ <record name="SiStreamAcquisitionInterface"
+ c:type="WpSiStreamAcquisitionInterface"
+ glib:is-gtype-struct-for="SiStreamAcquisition">
+ <source-position filename="../lib/wp/si-interfaces.h" line="164"/>
+ <field name="interface">
+ <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+ </field>
+ <field name="acquire">
+ <callback name="acquire">
+ <source-position filename="../lib/wp/si-interfaces.h" line="157"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="385">the session item</doc>
+ <type name="SiStreamAcquisition"
+ c:type="WpSiStreamAcquisition*"/>
+ </parameter>
+ <parameter name="acquisitor" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="386">the link that is trying to acquire a stream</doc>
+ <type name="SiLink" c:type="WpSiLink*"/>
+ </parameter>
+ <parameter name="stream" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="387">the stream that is being acquired</doc>
+ <type name="SiStream" c:type="WpSiStream*"/>
+ </parameter>
+ <parameter name="callback"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1"
+ scope="async"
+ closure="4">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="388">the callback to call when the operation is done</doc>
+ <type name="Gio.AsyncReadyCallback"
+ c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="data"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="389">user data for @callback</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="acquire_finish">
+ <callback name="acquire_finish" throws="1">
+ <source-position filename="../lib/wp/si-interfaces.h" line="159"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="422">%TRUE on success, %FALSE if there was an error</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="415">the session item</doc>
+ <type name="SiStreamAcquisition"
+ c:type="WpSiStreamAcquisition*"/>
+ </parameter>
+ <parameter name="res" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="416">the async result</doc>
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="release">
+ <callback name="release">
+ <source-position filename="../lib/wp/si-interfaces.h" line="162"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="438">the session item</doc>
+ <type name="SiStreamAcquisition"
+ c:type="WpSiStreamAcquisition*"/>
+ </parameter>
+ <parameter name="acquisitor" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="439">the link that had previously acquired the stream</doc>
+ <type name="SiLink" c:type="WpSiLink*"/>
+ </parameter>
+ <parameter name="stream" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="440">the stream that is being released</doc>
+ <type name="SiStream" c:type="WpSiStream*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ </record>
+ <record name="SiStreamInterface"
+ c:type="WpSiStreamInterface"
+ glib:is-gtype-struct-for="SiStream">
+ <source-position filename="../lib/wp/si-interfaces.h" line="78"/>
+ <field name="interface">
+ <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+ </field>
+ <field name="get_registration_info">
+ <callback name="get_registration_info">
+ <source-position filename="../lib/wp/si-interfaces.h" line="74"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="169">registration info for the stream</doc>
+ <type name="GLib.Variant" c:type="GVariant*"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="162">the session item</doc>
+ <type name="SiStream" c:type="WpSiStream*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_properties">
+ <callback name="get_properties">
+ <source-position filename="../lib/wp/si-interfaces.h" line="75"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="184">the properties of the stream</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="182">the session item</doc>
+ <type name="SiStream" c:type="WpSiStream*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_parent_endpoint">
+ <callback name="get_parent_endpoint">
+ <source-position filename="../lib/wp/si-interfaces.h" line="77"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="199">the endpoint that this stream belongs to</doc>
+ <type name="SiEndpoint" c:type="WpSiEndpoint*"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/si-interfaces.c"
+ line="197">the session item</doc>
+ <type name="SiStream" c:type="WpSiStream*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ </record>
+ <class name="SpaDevice"
+ c:symbol-prefix="spa_device"
+ c:type="WpSpaDevice"
+ parent="GObject.Object"
+ glib:type-name="WpSpaDevice"
+ glib:get-type="wp_spa_device_get_type"
+ glib:type-struct="SpaDeviceClass">
+ <source-position filename="../lib/wp/device.h" line="40"/>
+ <constructor name="new_from_spa_factory"
+ c:identifier="wp_spa_device_new_from_spa_factory">
+ <doc xml:space="preserve"
+ filename="../lib/wp/device.c"
+ line="446">Constructs a `SPA_TYPE_INTERFACE_Device` by loading the given SPA
+@factory_name.
+
+To export this device to the PipeWire server, you need to call
+wp_proxy_augment() requesting %WP_PROXY_FEATURE_BOUND and
+wait for the operation to complete.</doc>
+ <source-position filename="../lib/wp/device.h" line="47"/>
+ <return-value transfer-ownership="full" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/device.c"
+ line="460">A new #WpSpaDevice wrapping the
+ device that was constructed by the factory, or %NULL if the factory
+ does not exist or was unable to construct the device</doc>
+ <type name="SpaDevice" c:type="WpSpaDevice*"/>
+ </return-value>
+ <parameters>
+ <parameter name="core" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/device.c"
+ line="448">the wireplumber core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </parameter>
+ <parameter name="factory_name" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/device.c"
+ line="449">the name of the SPA factory</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="properties"
+ transfer-ownership="full"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/device.c"
+ line="450">properties to be passed to device
+ constructor</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_wrap" c:identifier="wp_spa_device_new_wrap">
+ <source-position filename="../lib/wp/device.h" line="43"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/device.c"
+ line="432">A new #WpSpaDevice</doc>
+ <type name="SpaDevice" c:type="WpSpaDevice*"/>
+ </return-value>
+ <parameters>
+ <parameter name="core" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/device.c"
+ line="428">the wireplumber core</doc>
+ <type name="Core" c:type="WpCore*"/>
+ </parameter>
+ <parameter name="spa_device_handle"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/device.c"
+ line="429">the spa device handle</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ <parameter name="properties"
+ transfer-ownership="full"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/device.c"
+ line="430">additional properties of the device</doc>
+ <type name="Properties" c:type="WpProperties*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="activate" c:identifier="wp_spa_device_activate">
+ <source-position filename="../lib/wp/device.h" line="62"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="SpaDevice" c:type="WpSpaDevice*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="export" c:identifier="wp_spa_device_export">
+ <source-position filename="../lib/wp/device.h" line="54"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="SpaDevice" c:type="WpSpaDevice*"/>
+ </instance-parameter>
+ <parameter name="cancellable"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="callback"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1"
+ scope="async"
+ closure="2">
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="user_data"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="export_finish"
+ c:identifier="wp_spa_device_export_finish"
+ throws="1">
+ <source-position filename="../lib/wp/device.h" line="58"/>
+ <return-value transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="SpaDevice" c:type="WpSpaDevice*"/>
+ </instance-parameter>
+ <parameter name="res" transfer-ownership="none">
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_bound_id" c:identifier="wp_spa_device_get_bound_id">
+ <source-position filename="../lib/wp/device.h" line="51"/>
+ <return-value transfer-ownership="none">
+ <type name="guint32" c:type="guint32"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="SpaDevice" c:type="WpSpaDevice*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <property name="core"
+ writable="1"
+ construct-only="1"
+ transfer-ownership="none">
+ <type name="Core"/>
+ </property>
+ <property name="properties"
+ writable="1"
+ construct-only="1"
+ transfer-ownership="none">
+ <type name="Properties"/>
+ </property>
+ <property name="spa-device-handle"
+ writable="1"
+ construct-only="1"
+ transfer-ownership="none">
+ <type name="gpointer" c:type="gpointer"/>
+ </property>
+ <glib:signal name="object-info" when="first">
+ <doc xml:space="preserve"
+ filename="../lib/wp/device.c"
+ line="395">This signal is emitted when the device is creating or destroying a managed
+object. The handler is expected to actually construct or destroy the
+object using the requested SPA @factory and with the given @properties.
+
+The handler may also use @parent_props to enrich the properties set
+that will be assigned on the object. @parent_props contains all the
+properties that this device object has.
+
+When the object is being created, @type can either be %WP_TYPE_DEVICE
+or %WP_TYPE_NODE. The handler is free to create a substitute of those,
+like %WP_TYPE_SPA_DEVICE instead of %WP_TYPE_DEVICE, depending on the
+use case.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="id" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/device.c"
+ line="398">the id of the managed object</doc>
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="type" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/device.c"
+ line="399">the #WpProxy subclass type that the managed object should have,
+ or %G_TYPE_NONE if the object is being destroyed</doc>
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ <parameter name="factory"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/device.c"
+ line="401">the name of the SPA factory to use to construct
+ the managed object, or %NULL if the object is being destroyed</doc>
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="properties"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/device.c"
+ line="403">additional properties that the managed object
+ should have, or %NULL if the object is being destroyed</doc>
+ <type name="Properties"/>
+ </parameter>
+ <parameter name="parent_props" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/device.c"
+ line="405">the properties of the device itself</doc>
+ <type name="Properties"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </class>
+ <record name="SpaDeviceClass"
+ c:type="WpSpaDeviceClass"
+ glib:is-gtype-struct-for="SpaDevice">
+ <source-position filename="../lib/wp/device.h" line="40"/>
+ <field name="parent_class">
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+ </field>
+ </record>
+ <record name="SpaPod"
+ c:type="WpSpaPod"
+ glib:type-name="WpSpaPod"
+ glib:get-type="wp_spa_pod_get_type"
+ c:symbol-prefix="spa_pod">
+ <source-position filename="../lib/wp/spa-pod.h" line="28"/>
+ <constructor name="new_boolean" c:identifier="wp_spa_pod_new_boolean">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="411">Creates a spa pod of type boolean</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="58"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="417">The new spa pod</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="413">the boolean value</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_bytes" c:identifier="wp_spa_pod_new_bytes">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="553">Creates a spa pod of type bytes</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="79"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="560">The new spa pod</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </return-value>
+ <parameters>
+ <parameter name="value"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="555">the bytes value</doc>
+ <type name="gpointer" c:type="gconstpointer"/>
+ </parameter>
+ <parameter name="len" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="556">the length of the bytes value</doc>
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_choice"
+ c:identifier="wp_spa_pod_new_choice"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="665">Creates a spa pod of type choice</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="94"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="672">The new spa pod</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </return-value>
+ <parameters>
+ <parameter name="type_name" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="667">the type name of the choice type</doc>
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ <parameter name="..." transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="668">a list of choice values, followed by %NULL</doc>
+ <varargs/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_choice_valist"
+ c:identifier="wp_spa_pod_new_choice_valist"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="687">This is the `va_list` version of wp_spa_pod_new_choice()</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="98"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="694">The new spa pod</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </return-value>
+ <parameters>
+ <parameter name="type_name" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="689">the type name of the choice type</doc>
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ <parameter name="args" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="690">the variable arguments passed to wp_spa_pod_new_choice()</doc>
+ <type name="va_list" c:type="va_list"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_double" c:identifier="wp_spa_pod_new_double">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="506">Creates a spa pod of type double</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="73"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="512">The new spa pod</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="508">the double value</doc>
+ <type name="gdouble" c:type="double"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_fd" c:identifier="wp_spa_pod_new_fd">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="604">Creates a spa pod of type Fd</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="85"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="610">The new spa pod</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="606">the Fd value</doc>
+ <type name="gint64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_float" c:identifier="wp_spa_pod_new_float">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="487">Creates a spa pod of type float</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="70"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="493">The new spa pod</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="489">the float value</doc>
+ <type name="gfloat" c:type="float"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_fraction" c:identifier="wp_spa_pod_new_fraction">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="644">Creates a spa pod of type fraction</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="91"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="651">The new spa pod</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </return-value>
+ <parameters>
+ <parameter name="num" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="646">the numerator value of the fraction</doc>
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="denom" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="647">the denominator value of the fraction</doc>
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_id" c:identifier="wp_spa_pod_new_id">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="430">Creates a spa pod of type Id</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="61"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="436">The new spa pod</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="432">the Id value</doc>
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_int" c:identifier="wp_spa_pod_new_int">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="449">Creates a spa pod of type int</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="64"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="455">The new spa pod</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="451">the int value</doc>
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_long" c:identifier="wp_spa_pod_new_long">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="468">Creates a spa pod of type long</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="67"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="474">The new spa pod</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="470">the long value</doc>
+ <type name="glong" c:type="glong"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_none" c:identifier="wp_spa_pod_new_none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="393">Creates a spa pod of type None</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="55"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="398">The new spa pod</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </return-value>
+ </constructor>
+ <constructor name="new_object"
+ c:identifier="wp_spa_pod_new_object"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="704">Creates a spa pod of type object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="101"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="712">The new spa pod</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </return-value>
+ <parameters>
+ <parameter name="type_name" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="706">the type name of the object type</doc>
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ <parameter name="id_name" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="707">the id name of the object</doc>
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ <parameter name="..." transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="708">a list of object properties with their values, followed by %NULL</doc>
+ <varargs/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_object_valist"
+ c:identifier="wp_spa_pod_new_object_valist"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="727">This is the `va_list` version of wp_spa_pod_new_object()</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="105"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="735">The new spa pod</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </return-value>
+ <parameters>
+ <parameter name="type_name" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="729">the type name of the object type</doc>
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ <parameter name="id_name" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="730">the id name of the object</doc>
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ <parameter name="args" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="731">the variable arguments passed to wp_spa_pod_new_object()</doc>
+ <type name="va_list" c:type="va_list"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_pointer" c:identifier="wp_spa_pod_new_pointer">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="580">Creates a spa pod of type pointer</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="82"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="587">The new spa pod</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </return-value>
+ <parameters>
+ <parameter name="type_name" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="582">the type name the pointer points to</doc>
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ <parameter name="value"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="583">the pointer value</doc>
+ <type name="gpointer" c:type="gconstpointer"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_rectangle"
+ c:identifier="wp_spa_pod_new_rectangle">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="623">Creates a spa pod of type rectangle</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="88"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="630">The new spa pod</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </return-value>
+ <parameters>
+ <parameter name="width" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="625">the width value of the rectangle</doc>
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="height" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="626">the height value of the rectangle</doc>
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_sequence"
+ c:identifier="wp_spa_pod_new_sequence"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="747">Creates a spa pod of type sequence</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="109"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="754">The new spa pod</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </return-value>
+ <parameters>
+ <parameter name="unit" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="749">the unit of the sequence</doc>
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="..." transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="750">a list of sequence controls with their values, followed by %NULL</doc>
+ <varargs/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_sequence_valist"
+ c:identifier="wp_spa_pod_new_sequence_valist"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="769">This is the `va_list` version of wp_spa_pod_new_sequence()</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="112"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="776">The new spa pod</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </return-value>
+ <parameters>
+ <parameter name="unit" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="771">the unit of the sequence</doc>
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="args" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="772">the variable arguments passed to wp_spa_pod_new_sequence()</doc>
+ <type name="va_list" c:type="va_list"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_string" c:identifier="wp_spa_pod_new_string">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="525">Creates a spa pod of type string</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="76"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="531">The new spa pod</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="527">the string value</doc>
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="copy" c:identifier="wp_spa_pod_copy">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="325">Copies a spa pod object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="46"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="331">The newly copied spa pod</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="other" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="327">a spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="ensure_unique_owner"
+ c:identifier="wp_spa_pod_ensure_unique_owner">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="369">@self (transfer full): a spa pod object
+If @self is not uniquely owned already, then it is unrefed and a copy of
+it is returned instead. You should always consider @self as unsafe to use
+after this call and you should use the returned object instead.</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="52"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="377">the uniquely owned spa pod object which may or may
+not be the same as @self.</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="equal" c:identifier="wp_spa_pod_equal">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1577">Checks whether two spa pod objects have the same value or not</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="249"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1584">TRUE if both spa pod objects have the same values, FALSE othewrise.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1579">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ <parameter name="pod" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1580">the pod with the value to be compared with</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_array_child" c:identifier="wp_spa_pod_get_array_child">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1826">Gets the child of a spa pod array object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="277"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1832">the child of the spa pod array object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1828">a spa pod choice object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_boolean" c:identifier="wp_spa_pod_get_boolean">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1067">Gets the boolean value of a spa pod object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="175"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1074">TRUE if the value was obtained, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1069">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ <parameter name="value"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1070">the boolean value</doc>
+ <type name="gboolean" c:type="gboolean*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_bytes" c:identifier="wp_spa_pod_get_bytes">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1192">Gets the bytes value and its len of a spa pod object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="196"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1200">TRUE if the value was obtained, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1194">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ <parameter name="value"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1195">the bytes value</doc>
+ <type name="gpointer" c:type="gconstpointer*"/>
+ </parameter>
+ <parameter name="len"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1196">the length of the bytes value</doc>
+ <type name="guint32" c:type="guint32*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_choice_child"
+ c:identifier="wp_spa_pod_get_choice_child">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1811">Gets the child of a spa pod choice object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="274"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1817">the child of the spa pod choice object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1813">a spa pod choice object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_choice_type_name"
+ c:identifier="wp_spa_pod_get_choice_type_name">
+ <source-position filename="../lib/wp/spa-pod.h" line="40"/>
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="const char*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_control" c:identifier="wp_spa_pod_get_control">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1782">Gets the offset, type name and spa pod value of a spa pod control</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="270"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1791">TRUE if the value was obtained, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1784">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ <parameter name="offset"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1785">the offset of the control</doc>
+ <type name="guint32" c:type="guint32*"/>
+ </parameter>
+ <parameter name="type_name"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1786">the type name of the control</doc>
+ <type name="utf8" c:type="const char**"/>
+ </parameter>
+ <parameter name="value"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1787">the spa pod value of the control</doc>
+ <type name="SpaPod" c:type="WpSpaPod**"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_double" c:identifier="wp_spa_pod_get_double">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1158">Gets the double value of a spa pod object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="190"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1165">TRUE if the value was obtained, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1160">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ <parameter name="value"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1161">the double value</doc>
+ <type name="gdouble" c:type="double*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_fd" c:identifier="wp_spa_pod_get_fd">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1239">Gets the Fd value of a spa pod object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="204"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1246">TRUE if the value was obtained, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1241">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ <parameter name="value"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1242">the Fd value</doc>
+ <type name="gint64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_float" c:identifier="wp_spa_pod_get_float">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1141">Gets the float value of a spa pod object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="187"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1148">TRUE if the value was obtained, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1143">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ <parameter name="value"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1144">the float value</doc>
+ <type name="gfloat" c:type="float*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_fraction" c:identifier="wp_spa_pod_get_fraction">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1279">Gets the fractions's numerator and denominator value of a spa pod object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="211"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1287">TRUE if the value was obtained, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1281">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ <parameter name="num"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1282">the fractions's numerator value</doc>
+ <type name="guint32" c:type="guint32*"/>
+ </parameter>
+ <parameter name="denom"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1283">the fractions's denominator value</doc>
+ <type name="guint32" c:type="guint32*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_id" c:identifier="wp_spa_pod_get_id">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1087">Gets the Id value of a spa pod object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="178"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1094">TRUE if the value was obtained, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1089">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ <parameter name="value"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1090">the Id value</doc>
+ <type name="guint32" c:type="guint32*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_int" c:identifier="wp_spa_pod_get_int">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1107">Gets the int value of a spa pod object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="181"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1114">TRUE if the value was obtained, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1109">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ <parameter name="value"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1110">the int value</doc>
+ <type name="gint" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_long" c:identifier="wp_spa_pod_get_long">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1124">Gets the long value of a spa pod object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="184"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1131">TRUE if the value was obtained, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1126">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ <parameter name="value"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1127">the long value</doc>
+ <type name="glong" c:type="glong*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_object"
+ c:identifier="wp_spa_pod_get_object"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1669">Gets the object properties values of a spa pod object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="252"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1678">TRUE if the object properties values were obtained, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1671">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ <parameter name="type_name" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1672">the type name of the object type</doc>
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ <parameter name="id_name"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1673">the id name of the object</doc>
+ <type name="utf8" c:type="const char**"/>
+ </parameter>
+ <parameter name="..."
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1674">the list of the object properties values, followed by %NULL</doc>
+ <varargs/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_object_type_name"
+ c:identifier="wp_spa_pod_get_object_type_name">
+ <source-position filename="../lib/wp/spa-pod.h" line="43"/>
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="const char*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_object_valist"
+ c:identifier="wp_spa_pod_get_object_valist"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1692">This is the `va_list` version of wp_spa_pod_get_object()</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="256"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1701">TRUE if the object properties values were obtained, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1694">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ <parameter name="type_name" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1695">the type name of the object type</doc>
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ <parameter name="id_name"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1696">the id name of the object</doc>
+ <type name="utf8" c:type="const char**"/>
+ </parameter>
+ <parameter name="args"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1697">the variable arguments passed to wp_spa_pod_get_object()</doc>
+ <type name="va_list" c:type="va_list"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_pointer" c:identifier="wp_spa_pod_get_pointer">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1211">Gets the pointer value and its type name of a spa pod object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="200"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1219">TRUE if the value was obtained, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1213">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ <parameter name="type_name"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1214">the type name of the pointer value</doc>
+ <type name="utf8" c:type="const char**"/>
+ </parameter>
+ <parameter name="value"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1215">the pointer value</doc>
+ <type name="gpointer" c:type="gconstpointer*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_property" c:identifier="wp_spa_pod_get_property">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1756">Gets the name, flags and spa pod value of a spa pod property</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="266"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1764">TRUE if the value was obtained, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1758">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ <parameter name="key"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1759">the name of the property</doc>
+ <type name="utf8" c:type="const char**"/>
+ </parameter>
+ <parameter name="value"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1760">the spa pod value of the property</doc>
+ <type name="SpaPod" c:type="WpSpaPod**"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_rectangle" c:identifier="wp_spa_pod_get_rectangle">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1256">Gets the rectangle's width and height value of a spa pod object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="207"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1264">TRUE if the value was obtained, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1258">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ <parameter name="width"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1259">the rectangle's width value</doc>
+ <type name="guint32" c:type="guint32*"/>
+ </parameter>
+ <parameter name="height"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1260">the rectangle's height value</doc>
+ <type name="guint32" c:type="guint32*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_string" c:identifier="wp_spa_pod_get_string">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1175">Gets the string value of a spa pod object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="193"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1182">TRUE if the value was obtained, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1177">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ <parameter name="value"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1178">the string value</doc>
+ <type name="utf8" c:type="const char**"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_struct"
+ c:identifier="wp_spa_pod_get_struct"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1716">Gets the struct's values of a spa pod object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="260"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1723">TRUE if the struct values were obtained, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1718">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ <parameter name="..."
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1719">the list of the struct values, followed by %NULL</doc>
+ <varargs/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_struct_valist"
+ c:identifier="wp_spa_pod_get_struct_valist"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1736">This is the `va_list` version of wp_spa_pod_get_struct()</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="263"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1743">TRUE if the struct values were obtained, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1738">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ <parameter name="args"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1739">the variable arguments passed to wp_spa_pod_get_struct()</doc>
+ <type name="va_list" c:type="va_list"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_type_name" c:identifier="wp_spa_pod_get_type_name">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="283">Gets the type name of the spa pod object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="37"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="289">the type name of the spa pod object</doc>
+ <type name="utf8" c:type="const char*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="285">a spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="is_array" c:identifier="wp_spa_pod_is_array">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="969">Checks wether the spa pod is of type array or not</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="154"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="975">TRUE if it is of type array, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="971">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="is_boolean" c:identifier="wp_spa_pod_is_boolean">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="800">Checks wether the spa pod is of type boolean or not</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="118"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="806">TRUE if it is of type boolean, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="802">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="is_bytes" c:identifier="wp_spa_pod_is_bytes">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="899">Checks wether the spa pod is of type bytes or not</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="139"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="905">TRUE if it is of type bytes, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="901">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="is_choice" c:identifier="wp_spa_pod_is_choice">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="983">Checks wether the spa pod is of type choice or not</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="157"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="989">TRUE if it is of type choice, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="985">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="is_control" c:identifier="wp_spa_pod_is_control">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1053">Checks wether the spa pod is of type control or not</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="172"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1059">TRUE if it is of type control, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1055">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="is_double" c:identifier="wp_spa_pod_is_double">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="871">Checks wether the spa pod is of type double or not</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="133"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="877">TRUE if it is of type double, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="873">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="is_fd" c:identifier="wp_spa_pod_is_fd">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="927">Checks wether the spa pod is of type Fd or not</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="145"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="933">TRUE if it is of type Fd, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="929">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="is_float" c:identifier="wp_spa_pod_is_float">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="857">Checks wether the spa pod is of type float or not</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="130"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="863">TRUE if it is of type float, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="859">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="is_fraction" c:identifier="wp_spa_pod_is_fraction">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="955">Checks wether the spa pod is of type fraction or not</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="151"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="961">TRUE if it is of type fraction, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="957">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="is_id" c:identifier="wp_spa_pod_is_id">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="815">Checks wether the spa pod is of type Id or not</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="121"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="821">TRUE if it is of type Id, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="817">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="is_int" c:identifier="wp_spa_pod_is_int">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="829">Checks wether the spa pod is of type int or not</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="124"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="835">TRUE if it is of type int, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="831">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="is_long" c:identifier="wp_spa_pod_is_long">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="843">Checks wether the spa pod is of type long or not</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="127"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="849">TRUE if it is of type long, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="845">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="is_none" c:identifier="wp_spa_pod_is_none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="786">Checks wether the spa pod is of type none or not</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="115"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="792">TRUE if it is of type none, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="788">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="is_object" c:identifier="wp_spa_pod_is_object">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="997">Checks wether the spa pod is of type object or not</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="160"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1003">TRUE if it is of type object, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="999">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="is_pointer" c:identifier="wp_spa_pod_is_pointer">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="913">Checks wether the spa pod is of type pointer or not</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="142"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="919">TRUE if it is of type pointer, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="915">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="is_property" c:identifier="wp_spa_pod_is_property">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1039">Checks wether the spa pod is of type property or not</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="169"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1045">TRUE if it is of type property, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1041">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="is_rectangle" c:identifier="wp_spa_pod_is_rectangle">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="941">Checks wether the spa pod is of type rectangle or not</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="148"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="947">TRUE if it is of type rectangle, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="943">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="is_sequence" c:identifier="wp_spa_pod_is_sequence">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1025">Checks wether the spa pod is of type sequence or not</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="166"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1031">TRUE if it is of type sequence, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1027">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="is_string" c:identifier="wp_spa_pod_is_string">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="885">Checks wether the spa pod is of type string or not</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="136"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="891">TRUE if it is of type string, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="887">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="is_struct" c:identifier="wp_spa_pod_is_struct">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1011">Checks wether the spa pod is of type struct or not</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="163"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1017">TRUE if it is of type struct, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1013">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="is_unique_owner" c:identifier="wp_spa_pod_is_unique_owner">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="354">Checks if the pod is the unique owner of its data or not</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="49"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="360">TRUE if the pod owns the data, FALSE otherwise.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="356">a spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="iterate" c:identifier="wp_spa_pod_iterate">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="3059">Creates a new iterator for a spa pod object.</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="280"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="3065">the new spa pod iterator</doc>
+ <type name="Iterator" c:type="WpIterator*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="pod" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="3061">a spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="ref" c:identifier="wp_spa_pod_ref">
+ <source-position filename="../lib/wp/spa-pod.h" line="31"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="133">@self with an additional reference count on it</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="131">a spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="set_boolean" c:identifier="wp_spa_pod_set_boolean">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1302">Sets a boolean value in the spa pod object.</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="214"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1309">TRUE if the value could be set, FALSE othewrise.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1304">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ <parameter name="value" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1305">the boolean value</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_double" c:identifier="wp_spa_pod_set_double">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1392">Sets a double value in the spa pod object.</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="229"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1399">TRUE if the value could be set, FALSE othewrise.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1394">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ <parameter name="value" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1395">the double value</doc>
+ <type name="gdouble" c:type="double"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_fd" c:identifier="wp_spa_pod_set_fd">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1438">Sets a Fd value in the spa pod object.</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="236"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1445">TRUE if the value could be set, FALSE othewrise.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1440">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ <parameter name="value" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1441">the Fd value</doc>
+ <type name="gint64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_float" c:identifier="wp_spa_pod_set_float">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1374">Sets a float value in the spa pod object.</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="226"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1381">TRUE if the value could be set, FALSE othewrise.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1376">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ <parameter name="value" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1377">the float value</doc>
+ <type name="gfloat" c:type="float"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_fraction" c:identifier="wp_spa_pod_set_fraction">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1476">Sets the numerator and denominator values of a fraction in the spa pod object.</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="243"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1484">TRUE if the value could be set, FALSE othewrise.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1478">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ <parameter name="num" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1479">the numerator value of the farction</doc>
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="denom" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1480">the denominator value of the fraction</doc>
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_id" c:identifier="wp_spa_pod_set_id">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1320">Sets an Id value in the spa pod object.</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="217"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1327">TRUE if the value could be set, FALSE othewrise.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1322">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ <parameter name="value" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1323">the Id value</doc>
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_int" c:identifier="wp_spa_pod_set_int">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1338">Sets an int value in the spa pod object.</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="220"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1345">TRUE if the value could be set, FALSE othewrise.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1340">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ <parameter name="value" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1341">the int value</doc>
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_long" c:identifier="wp_spa_pod_set_long">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1356">Sets a long value in the spa pod object.</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="223"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1363">TRUE if the value could be set, FALSE othewrise.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1358">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ <parameter name="value" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1359">the long value</doc>
+ <type name="glong" c:type="glong"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_pod" c:identifier="wp_spa_pod_set_pod">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1496">Sets the value of a spa pod object in the current spa pod object. THe spa pod
+objects must be of the same value.</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="246"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1504">TRUE if the value could be set, FALSE othewrise.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1498">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ <parameter name="pod" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1499">the pod with the value to be set</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_pointer" c:identifier="wp_spa_pod_set_pointer">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1410">Sets a pointer value with its type name in the spa pod object.</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="232"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1418">TRUE if the value could be set, FALSE othewrise.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1412">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ <parameter name="type_name" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1413">the type name the pointer points to</doc>
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ <parameter name="value"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1414">the pointer value</doc>
+ <type name="gpointer" c:type="gconstpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_rectangle" c:identifier="wp_spa_pod_set_rectangle">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1456">Sets the width and height values of a rectangle in the spa pod object.</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="239"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1464">TRUE if the value could be set, FALSE othewrise.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1458">the spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ <parameter name="width" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1459">the width value of the rectangle</doc>
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="height" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1460">the height value of the rectangle</doc>
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="unref" c:identifier="wp_spa_pod_unref">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="150">Decreases the reference count on @self and frees it when the ref count
+reaches zero.</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="34"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="152">a spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ </record>
+ <record name="SpaPodBuilder"
+ c:type="WpSpaPodBuilder"
+ glib:type-name="WpSpaPodBuilder"
+ glib:get-type="wp_spa_pod_builder_get_type"
+ c:symbol-prefix="spa_pod_builder">
+ <source-position filename="../lib/wp/spa-pod.h" line="294"/>
+ <constructor name="new_array"
+ c:identifier="wp_spa_pod_builder_new_array">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1872">Creates a spa pod builder of type array</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="303"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1877">the new spa pod builder</doc>
+ <type name="SpaPodBuilder" c:type="WpSpaPodBuilder*"/>
+ </return-value>
+ </constructor>
+ <constructor name="new_choice"
+ c:identifier="wp_spa_pod_builder_new_choice">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1888">Creates a spa pod builder of type choice</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="306"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1894">the new spa pod builder</doc>
+ <type name="SpaPodBuilder" c:type="WpSpaPodBuilder*"/>
+ </return-value>
+ <parameters>
+ <parameter name="type_name" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1890">the type name of the choice type</doc>
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_object"
+ c:identifier="wp_spa_pod_builder_new_object">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1918">Creates a spa pod builder of type object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="309"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1925">the new spa pod builder</doc>
+ <type name="SpaPodBuilder" c:type="WpSpaPodBuilder*"/>
+ </return-value>
+ <parameters>
+ <parameter name="type_name" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1920">the type name of the object type</doc>
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ <parameter name="id_name" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1921">the Id name of the object</doc>
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_sequence"
+ c:identifier="wp_spa_pod_builder_new_sequence">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1971">Creates a spa pod builder of type sequence</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="316"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1976">the new spa pod builder</doc>
+ <type name="SpaPodBuilder" c:type="WpSpaPodBuilder*"/>
+ </return-value>
+ <parameters>
+ <parameter name="unit" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_struct"
+ c:identifier="wp_spa_pod_builder_new_struct">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1954">Creates a spa pod builder of type struct</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="313"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1959">the new spa pod builder</doc>
+ <type name="SpaPodBuilder" c:type="WpSpaPodBuilder*"/>
+ </return-value>
+ </constructor>
+ <method name="add"
+ c:identifier="wp_spa_pod_builder_add"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2229">Adds a list of values into the builder</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="375"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2231">the spa pod builder object</doc>
+ <type name="SpaPodBuilder" c:type="WpSpaPodBuilder*"/>
+ </instance-parameter>
+ <parameter name="..." transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2232">a list of additional values, followed by %NULL</doc>
+ <varargs/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_boolean" c:identifier="wp_spa_pod_builder_add_boolean">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2000">Adds a boolean value into the builder</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="322"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2002">the spa pod builder object</doc>
+ <type name="SpaPodBuilder" c:type="WpSpaPodBuilder*"/>
+ </instance-parameter>
+ <parameter name="value" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2003">the boolean value</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_bytes" c:identifier="wp_spa_pod_builder_add_bytes">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2091">Adds a bytes value with its length into the builder</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="343"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2093">the spa pod builder object</doc>
+ <type name="SpaPodBuilder" c:type="WpSpaPodBuilder*"/>
+ </instance-parameter>
+ <parameter name="value"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2094">the bytes value</doc>
+ <type name="gpointer" c:type="gconstpointer"/>
+ </parameter>
+ <parameter name="len" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2095">the length of the bytes value</doc>
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_control" c:identifier="wp_spa_pod_builder_add_control">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2210">Adds a control into the builder</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="371"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2212">the spa pod builder object</doc>
+ <type name="SpaPodBuilder" c:type="WpSpaPodBuilder*"/>
+ </instance-parameter>
+ <parameter name="offset" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2213">the offset of the control</doc>
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="type_name" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2214">the type name of the control</doc>
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_double" c:identifier="wp_spa_pod_builder_add_double">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2065">Adds a double value into the builder</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="337"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2067">the spa pod builder object</doc>
+ <type name="SpaPodBuilder" c:type="WpSpaPodBuilder*"/>
+ </instance-parameter>
+ <parameter name="value" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2068">the double value</doc>
+ <type name="gdouble" c:type="double"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_fd" c:identifier="wp_spa_pod_builder_add_fd">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2125">Adds a Fd value into the builder</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="351"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2127">the spa pod builder object</doc>
+ <type name="SpaPodBuilder" c:type="WpSpaPodBuilder*"/>
+ </instance-parameter>
+ <parameter name="value" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2128">the Fd value</doc>
+ <type name="gint64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_float" c:identifier="wp_spa_pod_builder_add_float">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2052">Adds a float value into the builder</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="334"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2054">the spa pod builder object</doc>
+ <type name="SpaPodBuilder" c:type="WpSpaPodBuilder*"/>
+ </instance-parameter>
+ <parameter name="value" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2055">the float value</doc>
+ <type name="gfloat" c:type="float"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_fraction"
+ c:identifier="wp_spa_pod_builder_add_fraction">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2153">Adds the numerator and denominator values of a fraction into the builder</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="358"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2155">the spa pod builder object</doc>
+ <type name="SpaPodBuilder" c:type="WpSpaPodBuilder*"/>
+ </instance-parameter>
+ <parameter name="num" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2156">the numerator value of the fraction</doc>
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="denom" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2157">the denominator value of the fraction</doc>
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_id" c:identifier="wp_spa_pod_builder_add_id">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2013">Adds a Id value into the builder</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="325"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2015">the spa pod builder object</doc>
+ <type name="SpaPodBuilder" c:type="WpSpaPodBuilder*"/>
+ </instance-parameter>
+ <parameter name="value" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2016">the Id value</doc>
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_int" c:identifier="wp_spa_pod_builder_add_int">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2026">Adds a int value into the builder</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="328"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2028">the spa pod builder object</doc>
+ <type name="SpaPodBuilder" c:type="WpSpaPodBuilder*"/>
+ </instance-parameter>
+ <parameter name="value" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2029">the int value</doc>
+ <type name="gint" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_long" c:identifier="wp_spa_pod_builder_add_long">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2039">Adds a long value into the builder</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="331"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2041">the spa pod builder object</doc>
+ <type name="SpaPodBuilder" c:type="WpSpaPodBuilder*"/>
+ </instance-parameter>
+ <parameter name="value" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2042">the long value</doc>
+ <type name="glong" c:type="glong"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_none" c:identifier="wp_spa_pod_builder_add_none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1988">Adds a none value into the builder</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="319"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1990">the spa pod builder object</doc>
+ <type name="SpaPodBuilder" c:type="WpSpaPodBuilder*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="add_pod" c:identifier="wp_spa_pod_builder_add_pod">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2168">Adds a pod value into the builder</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="362"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2170">the spa pod builder object</doc>
+ <type name="SpaPodBuilder" c:type="WpSpaPodBuilder*"/>
+ </instance-parameter>
+ <parameter name="pod" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2171">the pod value</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_pointer" c:identifier="wp_spa_pod_builder_add_pointer">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2106">Adds a pointer value with its type name into the builder</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="347"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2108">the spa pod builder object</doc>
+ <type name="SpaPodBuilder" c:type="WpSpaPodBuilder*"/>
+ </instance-parameter>
+ <parameter name="type_name" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2109">the type name that the pointer points to</doc>
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ <parameter name="value"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2110">the pointer vaue</doc>
+ <type name="gpointer" c:type="gconstpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_property"
+ c:identifier="wp_spa_pod_builder_add_property">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2181">Adds a property into the builder</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="365"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2183">the spa pod builder object</doc>
+ <type name="SpaPodBuilder" c:type="WpSpaPodBuilder*"/>
+ </instance-parameter>
+ <parameter name="key" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2184">the name of the property</doc>
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_property_id"
+ c:identifier="wp_spa_pod_builder_add_property_id">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2197">Adds a property into the builder</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="368"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2199">the spa pod builder object</doc>
+ <type name="SpaPodBuilder" c:type="WpSpaPodBuilder*"/>
+ </instance-parameter>
+ <parameter name="id" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2200">the id of the property</doc>
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_rectangle"
+ c:identifier="wp_spa_pod_builder_add_rectangle">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2138">Adds the width and height values of a rectangle into the builder</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="354"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2140">the spa pod builder object</doc>
+ <type name="SpaPodBuilder" c:type="WpSpaPodBuilder*"/>
+ </instance-parameter>
+ <parameter name="width" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2141">the width value of the rectangle</doc>
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="height" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2142">the height value of the rectangle</doc>
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_string" c:identifier="wp_spa_pod_builder_add_string">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2078">Adds a string value into the builder</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="340"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2080">the spa pod builder object</doc>
+ <type name="SpaPodBuilder" c:type="WpSpaPodBuilder*"/>
+ </instance-parameter>
+ <parameter name="value" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2081">the string value</doc>
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_valist"
+ c:identifier="wp_spa_pod_builder_add_valist"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2245">Adds a list of values into the builder</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="378"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2247">the spa pod builder object</doc>
+ <type name="SpaPodBuilder" c:type="WpSpaPodBuilder*"/>
+ </instance-parameter>
+ <parameter name="args" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2248">the variable arguments passed to wp_spa_pod_builder_add()</doc>
+ <type name="va_list" c:type="va_list"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="end" c:identifier="wp_spa_pod_builder_end">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2329">Ends the builder process and returns the constructed spa pod object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="381"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2335">the constructed spa pod object</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2331">the spa pod builder object</doc>
+ <type name="SpaPodBuilder" c:type="WpSpaPodBuilder*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="ref" c:identifier="wp_spa_pod_builder_ref">
+ <source-position filename="../lib/wp/spa-pod.h" line="297"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1845">@self with an additional reference count on it</doc>
+ <type name="SpaPodBuilder" c:type="WpSpaPodBuilder*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1843">a spa pod builder object</doc>
+ <type name="SpaPodBuilder" c:type="WpSpaPodBuilder*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="unref" c:identifier="wp_spa_pod_builder_unref">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1859">Decreases the reference count on @self and frees it when the ref count
+reaches zero.</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="300"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="1861">a spa pod builder object</doc>
+ <type name="SpaPodBuilder" c:type="WpSpaPodBuilder*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ </record>
+ <record name="SpaPodParser"
+ c:type="WpSpaPodParser"
+ glib:type-name="WpSpaPodParser"
+ glib:get-type="wp_spa_pod_parser_get_type"
+ c:symbol-prefix="spa_pod_parser">
+ <source-position filename="../lib/wp/spa-pod.h" line="395"/>
+ <constructor name="new_object"
+ c:identifier="wp_spa_pod_parser_new_object">
+ <source-position filename="../lib/wp/spa-pod.h" line="404"/>
+ <return-value transfer-ownership="full">
+ <type name="SpaPodParser" c:type="WpSpaPodParser*"/>
+ </return-value>
+ <parameters>
+ <parameter name="pod" transfer-ownership="none">
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </parameter>
+ <parameter name="type_name" transfer-ownership="none">
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ <parameter name="id_name" transfer-ownership="none">
+ <type name="utf8" c:type="const char**"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_struct"
+ c:identifier="wp_spa_pod_parser_new_struct">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2428">Creates an struct spa pod parser. The @pod object must be valid for the
+entire life-cycle of the returned parser.</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="408"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2435">The new spa pod parser</doc>
+ <type name="SpaPodParser" c:type="WpSpaPodParser*"/>
+ </return-value>
+ <parameters>
+ <parameter name="pod" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2430">the struct spa pod to parse</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="end" c:identifier="wp_spa_pod_parser_end">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2785">Ends the parser process</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="462"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2787">the spa pod parser object</doc>
+ <type name="SpaPodParser" c:type="WpSpaPodParser*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get"
+ c:identifier="wp_spa_pod_parser_get"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2691">Gets a list of values from a spa pod parser object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="455"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2698">TRUE if the values were obtained, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2693">the spa pod parser object</doc>
+ <type name="SpaPodParser" c:type="WpSpaPodParser*"/>
+ </instance-parameter>
+ <parameter name="..."
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2694">a list of values to get, followed by %NULL</doc>
+ <varargs/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_boolean" c:identifier="wp_spa_pod_parser_get_boolean">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2449">Gets the boolean value from a spa pod parser</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="411"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2456">TRUE if the value was obtained, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2451">the spa pod parser object</doc>
+ <type name="SpaPodParser" c:type="WpSpaPodParser*"/>
+ </instance-parameter>
+ <parameter name="value"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2452">the boolean value</doc>
+ <type name="gboolean" c:type="gboolean*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_bytes" c:identifier="wp_spa_pod_parser_get_bytes">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2564">Gets the bytes value and its length from a spa pod parser object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="433"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2572">TRUE if the value was obtained, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2566">the spa pod parser object</doc>
+ <type name="SpaPodParser" c:type="WpSpaPodParser*"/>
+ </instance-parameter>
+ <parameter name="value"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2567">the bytes value</doc>
+ <type name="gpointer" c:type="gconstpointer*"/>
+ </parameter>
+ <parameter name="len"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2568">the length of the bytes value</doc>
+ <type name="guint32" c:type="guint32*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_double" c:identifier="wp_spa_pod_parser_get_double">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2532">Gets the double value from a spa pod parser object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="426"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2539">TRUE if the value was obtained, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2534">the spa pod parser object</doc>
+ <type name="SpaPodParser" c:type="WpSpaPodParser*"/>
+ </instance-parameter>
+ <parameter name="value"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2535">the double value</doc>
+ <type name="gdouble" c:type="double*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_fd" c:identifier="wp_spa_pod_parser_get_fd">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2608">Gets the Fd value from a spa pod parser object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="441"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2615">TRUE if the value was obtained, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2610">the spa pod parser object</doc>
+ <type name="SpaPodParser" c:type="WpSpaPodParser*"/>
+ </instance-parameter>
+ <parameter name="value"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2611">the Fd value</doc>
+ <type name="gint64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_float" c:identifier="wp_spa_pod_parser_get_float">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2516">Gets the float value from a spa pod parser object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="423"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2523">TRUE if the value was obtained, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2518">the spa pod parser object</doc>
+ <type name="SpaPodParser" c:type="WpSpaPodParser*"/>
+ </instance-parameter>
+ <parameter name="value"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2519">the float value</doc>
+ <type name="gfloat" c:type="float*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_fraction"
+ c:identifier="wp_spa_pod_parser_get_fraction">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2647">Gets the fractions's numerator and denominator value from a spa pod parser
+object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="448"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2656">TRUE if the value was obtained, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2649">the spa pod parser object</doc>
+ <type name="SpaPodParser" c:type="WpSpaPodParser*"/>
+ </instance-parameter>
+ <parameter name="num"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2650">the fractions's numerator value</doc>
+ <type name="guint32" c:type="guint32*"/>
+ </parameter>
+ <parameter name="denom"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2651">the fractions's denominator value</doc>
+ <type name="guint32" c:type="guint32*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_id" c:identifier="wp_spa_pod_parser_get_id">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2468">Gets the Id value from a spa pod parser object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="414"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2475">TRUE if the value was obtained, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2470">the spa pod parser object</doc>
+ <type name="SpaPodParser" c:type="WpSpaPodParser*"/>
+ </instance-parameter>
+ <parameter name="value"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2471">the Id value</doc>
+ <type name="guint32" c:type="guint32*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_int" c:identifier="wp_spa_pod_parser_get_int">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2484">Gets the int value from a spa pod parser object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="417"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2491">TRUE if the value was obtained, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2486">the spa pod parser object</doc>
+ <type name="SpaPodParser" c:type="WpSpaPodParser*"/>
+ </instance-parameter>
+ <parameter name="value"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2487">the int value</doc>
+ <type name="gint" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_long" c:identifier="wp_spa_pod_parser_get_long">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2500">Gets the long value from a spa pod parser object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="420"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2507">TRUE if the value was obtained, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2502">the spa pod parser object</doc>
+ <type name="SpaPodParser" c:type="WpSpaPodParser*"/>
+ </instance-parameter>
+ <parameter name="value"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2503">the long value</doc>
+ <type name="glong" c:type="glong*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_pod" c:identifier="wp_spa_pod_parser_get_pod">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2671">Gets the spa pod value from a spa pod parser object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="452"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2677">The spa pod value or NULL if it could not be
+obtained</doc>
+ <type name="SpaPod" c:type="WpSpaPod*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2673">the spa pod parser object</doc>
+ <type name="SpaPodParser" c:type="WpSpaPodParser*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_pointer" c:identifier="wp_spa_pod_parser_get_pointer">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2581">Gets the pointer value and its type name from a spa pod parser object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="437"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2589">TRUE if the value was obtained, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2583">the spa pod parser object</doc>
+ <type name="SpaPodParser" c:type="WpSpaPodParser*"/>
+ </instance-parameter>
+ <parameter name="type_name"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2584">the type name of the pointer value</doc>
+ <type name="utf8" c:type="const char**"/>
+ </parameter>
+ <parameter name="value"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2585">the pointer value</doc>
+ <type name="gpointer" c:type="gconstpointer*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_rectangle"
+ c:identifier="wp_spa_pod_parser_get_rectangle">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2624">Gets the rectangle's width and height value from a spa pod parser object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="444"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2632">TRUE if the value was obtained, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2626">the spa pod parser object</doc>
+ <type name="SpaPodParser" c:type="WpSpaPodParser*"/>
+ </instance-parameter>
+ <parameter name="width"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2627">the rectangle's width value</doc>
+ <type name="guint32" c:type="guint32*"/>
+ </parameter>
+ <parameter name="height"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2628">the rectangle's height value</doc>
+ <type name="guint32" c:type="guint32*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_string" c:identifier="wp_spa_pod_parser_get_string">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2548">Gets the string value from a spa pod parser object</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="429"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2555">TRUE if the value was obtained, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2550">the spa pod parser object</doc>
+ <type name="SpaPodParser" c:type="WpSpaPodParser*"/>
+ </instance-parameter>
+ <parameter name="value"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2551">the string value</doc>
+ <type name="utf8" c:type="const char**"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_valist"
+ c:identifier="wp_spa_pod_parser_get_valist"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2713">This is the `va_list` version of wp_spa_pod_parser_get()</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="458"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2720">TRUE if the values were obtained, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2715">the spa pod parser object</doc>
+ <type name="SpaPodParser" c:type="WpSpaPodParser*"/>
+ </instance-parameter>
+ <parameter name="args" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2716">the variable arguments passed to wp_spa_pod_parser_get()</doc>
+ <type name="va_list" c:type="va_list"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="ref" c:identifier="wp_spa_pod_parser_ref">
+ <source-position filename="../lib/wp/spa-pod.h" line="398"/>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2360">@self with an additional reference count on it</doc>
+ <type name="SpaPodParser" c:type="WpSpaPodParser*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2358">a spa pod sparser object</doc>
+ <type name="SpaPodParser" c:type="WpSpaPodParser*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="unref" c:identifier="wp_spa_pod_parser_unref">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2374">Decreases the reference count on @self and frees it when the ref count
+reaches zero.</doc>
+ <source-position filename="../lib/wp/spa-pod.h" line="401"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-pod.c"
+ line="2376">a spa pod parser object</doc>
+ <type name="SpaPodParser" c:type="WpSpaPodParser*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ </record>
+ <enumeration name="SpaTypeTable"
+ glib:type-name="WpSpaTypeTable"
+ glib:get-type="wp_spa_type_table_get_type"
+ c:type="WpSpaTypeTable">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.h"
+ line="17">The diferent tables (namespaces) the registry has.</doc>
+ <member name="basic"
+ value="0"
+ c:identifier="WP_SPA_TYPE_TABLE_BASIC"
+ glib:nick="basic">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.h"
+ line="19">The basic type table</doc>
+ </member>
+ <member name="param"
+ value="1"
+ c:identifier="WP_SPA_TYPE_TABLE_PARAM"
+ glib:nick="param">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.h"
+ line="20">The param type table (used as object id)</doc>
+ </member>
+ <member name="props"
+ value="2"
+ c:identifier="WP_SPA_TYPE_TABLE_PROPS"
+ glib:nick="props">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.h"
+ line="21">The object properties type table</doc>
+ </member>
+ <member name="prop_info"
+ value="3"
+ c:identifier="WP_SPA_TYPE_TABLE_PROP_INFO"
+ glib:nick="prop-info">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.h"
+ line="22">The object property info type table</doc>
+ </member>
+ <member name="control"
+ value="4"
+ c:identifier="WP_SPA_TYPE_TABLE_CONTROL"
+ glib:nick="control">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.h"
+ line="23">The sequence control type table</doc>
+ </member>
+ <member name="choice"
+ value="5"
+ c:identifier="WP_SPA_TYPE_TABLE_CHOICE"
+ glib:nick="choice">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.h"
+ line="24">The choice type table</doc>
+ </member>
+ <member name="format"
+ value="6"
+ c:identifier="WP_SPA_TYPE_TABLE_FORMAT"
+ glib:nick="format">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.h"
+ line="25">The object format type table</doc>
+ </member>
+ <member name="param_port_config"
+ value="7"
+ c:identifier="WP_SPA_TYPE_TABLE_PARAM_PORT_CONFIG"
+ glib:nick="param-port-config">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.h"
+ line="26">The object param port config type table</doc>
+ </member>
+ <member name="param_profile"
+ value="8"
+ c:identifier="WP_SPA_TYPE_TABLE_PARAM_PROFILE"
+ glib:nick="param-profile">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.h"
+ line="27">The sequence control type table</doc>
+ </member>
+ <member name="audio_channel"
+ value="9"
+ c:identifier="WP_SPA_TYPE_TABLE_AUDIO_CHANNEL"
+ glib:nick="audio-channel">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.h"
+ line="28">The audio channel type table</doc>
+ </member>
+ <member name="last"
+ value="10"
+ c:identifier="WP_SPA_TYPE_TABLE_LAST"
+ glib:nick="last">
+ </member>
+ </enumeration>
+ <class name="Transition"
+ c:symbol-prefix="transition"
+ c:type="WpTransition"
+ parent="GObject.Object"
+ abstract="1"
+ glib:type-name="WpTransition"
+ glib:get-type="wp_transition_get_type"
+ glib:type-struct="TransitionClass">
+ <source-position filename="../lib/wp/transition.h" line="51"/>
+ <implements name="Gio.AsyncResult"/>
+ <constructor name="new" c:identifier="wp_transition_new">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="152">Creates a #WpTransition acting on @source_object. When the transition is
+done, @callback will be invoked.
+
+The transition does not automatically start executing steps. You must
+call wp_transition_advance() after creating it in order to start it.
+
+Note that the transition is automatically unref'ed after the @callback
+has been executed. If you wish to keep an additional reference on it,
+you need to ref it explicitly.</doc>
+ <source-position filename="../lib/wp/transition.h" line="54"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="171">the new transition</doc>
+ <type name="Transition" c:type="WpTransition*"/>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="154">the #GType of the #WpTransition subclass to instantiate</doc>
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ <parameter name="source_object"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="155">the #GObject that owns this task,
+ or %NULL</doc>
+ <type name="GObject.Object" c:type="gpointer"/>
+ </parameter>
+ <parameter name="cancellable"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="157">optional #GCancellable</doc>
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="callback"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1"
+ scope="async"
+ closure="4">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="158">a #GAsyncReadyCallback</doc>
+ <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+ </parameter>
+ <parameter name="callback_data"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="159">user data passed to @callback</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_closure" c:identifier="wp_transition_new_closure">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="182">Creates a #WpTransition acting on @source_object. When the transition is
+done, @closure will be invoked.
+
+The transition does not automatically start executing steps. You must
+call wp_transition_advance() after creating it in order to start it.
+
+Note that the transition is automatically unref'ed after the @closure
+has been executed. If you wish to keep an additional reference on it,
+you need to ref it explicitly.</doc>
+ <source-position filename="../lib/wp/transition.h" line="59"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="200">the new transition</doc>
+ <type name="Transition" c:type="WpTransition*"/>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="184">the #GType of the #WpTransition subclass to instantiate</doc>
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ <parameter name="source_object"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="185">the #GObject that owns this task,
+ or %NULL</doc>
+ <type name="GObject.Object" c:type="gpointer"/>
+ </parameter>
+ <parameter name="cancellable"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="187">optional #GCancellable</doc>
+ <type name="Gio.Cancellable" c:type="GCancellable*"/>
+ </parameter>
+ <parameter name="closure"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="188">a #GAsyncReadyCallback wrapped in a #GClosure</doc>
+ <type name="GObject.Closure" c:type="GClosure*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <function name="finish" c:identifier="wp_transition_finish" throws="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="490">This is meant to be called from within the #GAsyncReadyCallback that was
+specified in wp_transition_new(). It returns the final return status
+of the transition and its error, if there was one.</doc>
+ <source-position filename="../lib/wp/transition.h" line="104"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="499">%TRUE if the transition completed successfully, %FALSE if there
+ was an error</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="res" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="492">a transition, as a #GAsyncResult</doc>
+ <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <virtual-method name="execute_step">
+ <source-position filename="../lib/wp/transition.h" line="50"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="transition" transfer-ownership="none">
+ <type name="Transition" c:type="WpTransition*"/>
+ </instance-parameter>
+ <parameter name="step" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_next_step">
+ <source-position filename="../lib/wp/transition.h" line="49"/>
+ <return-value transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="transition" transfer-ownership="none">
+ <type name="Transition" c:type="WpTransition*"/>
+ </instance-parameter>
+ <parameter name="step" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="advance" c:identifier="wp_transition_advance">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="390">Advances the transition to the next step.
+
+This initially calls #WpTransitionClass.get_next_step() in order to determine
+what the next step is. If #WpTransitionClass.get_next_step() returns a step
+different than the previous one, it calls #WpTransitionClass.execute_step()
+to execute it.
+
+The very first time that #WpTransitionClass.get_next_step() is called, its
+@step parameter equals %WP_TRANSITION_STEP_NONE.
+
+When #WpTransitionClass.get_next_step() returns %WP_TRANSITION_STEP_NONE,
+this function completes the transition, calling the transition's callback
+and then unref-ing the transition.
+
+When #WpTransitionClass.get_next_step() returns %WP_TRANSITION_STEP_ERROR,
+this function calls wp_transition_return_error(), unless it has already been
+called directly by #WpTransitionClass.get_next_step().
+
+In error conditions, #WpTransitionClass.execute_step() is called once with
+@step being %WP_TRANSITION_STEP_ERROR, allowing the implementation to
+rollback any changes or cancel underlying jobs, if necessary.</doc>
+ <source-position filename="../lib/wp/transition.h" line="96"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="392">the transition</doc>
+ <type name="Transition" c:type="WpTransition*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_completed" c:identifier="wp_transition_get_completed">
+ <source-position filename="../lib/wp/transition.h" line="90"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="342">%TRUE if the transition has completed (with or without an error),
+ %FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="340">the transition</doc>
+ <type name="Transition" c:type="WpTransition*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_data" c:identifier="wp_transition_get_data">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="299">Gets @self 's data. See wp_transition_set_data().</doc>
+ <source-position filename="../lib/wp/transition.h" line="81"/>
+ <return-value transfer-ownership="none" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="305">the transition's data</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="301">the transition</doc>
+ <type name="Transition" c:type="WpTransition*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_source_object"
+ c:identifier="wp_transition_get_source_object">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="225">Gets the source object from the transition.
+Like g_async_result_get_source_object(), but does not ref the object.</doc>
+ <source-position filename="../lib/wp/transition.h" line="65"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="232">the source object</doc>
+ <type name="GObject.Object" c:type="gpointer"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="227">the transition</doc>
+ <type name="Transition" c:type="WpTransition*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_source_tag"
+ c:identifier="wp_transition_get_source_tag">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="262">Gets @self 's source tag. See wp_transition_set_source_tag().</doc>
+ <source-position filename="../lib/wp/transition.h" line="73"/>
+ <return-value transfer-ownership="none" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="268">the transition's source tag</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="264">the transition</doc>
+ <type name="Transition" c:type="WpTransition*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="had_error" c:identifier="wp_transition_had_error">
+ <source-position filename="../lib/wp/transition.h" line="93"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="359">%TRUE if the transition completed with an error, %FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="357">the transition</doc>
+ <type name="Transition" c:type="WpTransition*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="is_tagged" c:identifier="wp_transition_is_tagged">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="243">Checks if @self has the given @tag (generally a function pointer
+indicating the function @self was created by).</doc>
+ <source-position filename="../lib/wp/transition.h" line="70"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="251">TRUE if @self has the indicated @tag , FALSE if not.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="245">the transition</doc>
+ <type name="Transition" c:type="WpTransition*"/>
+ </instance-parameter>
+ <parameter name="tag"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="246">a tag</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="return_error" c:identifier="wp_transition_return_error">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="456">Completes the transition with an error. This can be called anytime
+from within any virtual function or an async job handler.
+
+Note that in most cases this will also unref the transition, so it is
+not safe to access it after this function has been called.</doc>
+ <source-position filename="../lib/wp/transition.h" line="99"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="458">the transition</doc>
+ <type name="Transition" c:type="WpTransition*"/>
+ </instance-parameter>
+ <parameter name="error" transfer-ownership="full">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="459">a #GError</doc>
+ <type name="GLib.Error" c:type="GError*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_data" c:identifier="wp_transition_set_data">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="316">Sets @self 's data (freeing the existing data, if any). This can be an
+arbitrary user structure that holds data associated with this transition.</doc>
+ <source-position filename="../lib/wp/transition.h" line="84"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="318">the transition</doc>
+ <type name="Transition" c:type="WpTransition*"/>
+ </instance-parameter>
+ <parameter name="data"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="319">transition-specific user data</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ <parameter name="data_destroy"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1"
+ scope="async">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="320">#GDestroyNotify for @data</doc>
+ <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_source_tag"
+ c:identifier="wp_transition_set_source_tag">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="279">Sets @self 's source tag. You can use this to tag a transition's return
+value with a particular pointer (usually a pointer to the function doing
+the tagging) and then later check it using wp_transition_get_source_tag()
+(or g_async_result_is_tagged()) in the transition's "finish" function,
+to figure out if the response came from a particular place.</doc>
+ <source-position filename="../lib/wp/transition.h" line="76"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="281">the transition</doc>
+ <type name="Transition" c:type="WpTransition*"/>
+ </instance-parameter>
+ <parameter name="tag"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.c"
+ line="282">an opaque pointer indicating the source of this transition</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <property name="completed" transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean"/>
+ </property>
+ <field name="parent_instance">
+ <type name="GObject.Object" c:type="GObject"/>
+ </field>
+ </class>
+ <record name="TransitionClass"
+ c:type="WpTransitionClass"
+ glib:is-gtype-struct-for="Transition">
+ <source-position filename="../lib/wp/transition.h" line="51"/>
+ <field name="parent_class">
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+ </field>
+ <field name="get_next_step">
+ <callback name="get_next_step">
+ <source-position filename="../lib/wp/transition.h" line="49"/>
+ <return-value transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="transition" transfer-ownership="none">
+ <type name="Transition" c:type="WpTransition*"/>
+ </parameter>
+ <parameter name="step" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="execute_step">
+ <callback name="execute_step">
+ <source-position filename="../lib/wp/transition.h" line="50"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="transition" transfer-ownership="none">
+ <type name="Transition" c:type="WpTransition*"/>
+ </parameter>
+ <parameter name="step" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ </record>
+ <enumeration name="TransitionStep"
+ glib:type-name="WpTransitionStep"
+ glib:get-type="wp_transition_step_get_type"
+ c:type="WpTransitionStep">
+ <member name="none"
+ value="0"
+ c:identifier="WP_TRANSITION_STEP_NONE"
+ glib:nick="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.h"
+ line="28">the initial and final step of the transition</doc>
+ </member>
+ <member name="error"
+ value="1"
+ c:identifier="WP_TRANSITION_STEP_ERROR"
+ glib:nick="error">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.h"
+ line="29">returned by #WpTransitionClass.get_next_step() in
+ case of an error</doc>
+ </member>
+ <member name="custom_start"
+ value="16"
+ c:identifier="WP_TRANSITION_STEP_CUSTOM_START"
+ glib:nick="custom-start">
+ <doc xml:space="preserve"
+ filename="../lib/wp/transition.h"
+ line="31">starting value for steps defined in
+ subclasses</doc>
+ </member>
+ </enumeration>
+ <function name="domain_library_quark"
+ c:identifier="wp_domain_library_quark">
+ <source-position filename="../lib/wp/error.h" line="25"/>
+ <return-value transfer-ownership="none">
+ <type name="GLib.Quark" c:type="GQuark"/>
+ </return-value>
+ </function>
+ <function name="init" c:identifier="wp_init">
+ <doc xml:space="preserve"
+ filename="../lib/wp/wp.c"
+ line="34">Initializes WirePlumber and PipeWire underneath. @flags can modify
+which parts are initialized, in cases where you want to handle part
+of this initialization externally.</doc>
+ <source-position filename="../lib/wp/wp.h" line="54"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="flags" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/wp.c"
+ line="36">initialization flags</doc>
+ <type name="InitFlags" c:type="WpInitFlags"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="log_level_is_enabled"
+ c:identifier="wp_log_level_is_enabled">
+ <doc xml:space="preserve"
+ filename="../lib/wp/debug.c"
+ line="267">Use this to figure out if a debug message is going to be printed or not,
+so that you can avoid allocating resources just for debug logging purposes</doc>
+ <source-position filename="../lib/wp/debug.h" line="24"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/debug.c"
+ line="274">whether the log level is currently enabled</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="log_level" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/debug.c"
+ line="269">a log level</doc>
+ <type name="GLib.LogLevelFlags" c:type="GLogLevelFlags"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="log_structured_standard"
+ c:identifier="wp_log_structured_standard"
+ introspectable="0">
+ <doc xml:space="preserve"
+ filename="../lib/wp/debug.c"
+ line="353">Used internally by the debug logging macros. Avoid using it directly.</doc>
+ <source-position filename="../lib/wp/debug.h" line="31"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="log_domain" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="log_level" transfer-ownership="none">
+ <type name="GLib.LogLevelFlags" c:type="GLogLevelFlags"/>
+ </parameter>
+ <parameter name="file" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="line" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="func" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="object_type" transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ <parameter name="object"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <type name="gpointer" c:type="gconstpointer"/>
+ </parameter>
+ <parameter name="message_format" transfer-ownership="none">
+ <type name="utf8" c:type="const gchar*"/>
+ </parameter>
+ <parameter name="..." transfer-ownership="none">
+ <varargs/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="log_writer_default" c:identifier="wp_log_writer_default">
+ <doc xml:space="preserve"
+ filename="../lib/wp/debug.c"
+ line="283">WirePlumber's #GLogWriterFunc
+
+This is installed automatically when you call wp_init() with
+%WP_INIT_SET_GLIB_LOG set in the flags</doc>
+ <source-position filename="../lib/wp/debug.h" line="27"/>
+ <return-value transfer-ownership="none">
+ <type name="GLib.LogWriterOutput" c:type="GLogWriterOutput"/>
+ </return-value>
+ <parameters>
+ <parameter name="log_level" transfer-ownership="none">
+ <type name="GLib.LogLevelFlags" c:type="GLogLevelFlags"/>
+ </parameter>
+ <parameter name="fields" transfer-ownership="none">
+ <type name="GLib.LogField" c:type="const GLogField*"/>
+ </parameter>
+ <parameter name="n_fields" transfer-ownership="none">
+ <type name="gsize" c:type="gsize"/>
+ </parameter>
+ <parameter name="user_data"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="properties_iterator_item_get_key"
+ c:identifier="wp_properties_iterator_item_get_key"
+ moved-to="Properties.iterator_item_get_key">
+ <source-position filename="../lib/wp/properties.h" line="142"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="825">the property key of the @item</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="item" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="822">a #GValue that was returned from the #WpIterator of
+ wp_properties_iterate()</doc>
+ <type name="GObject.Value" c:type="const GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="properties_iterator_item_get_value"
+ c:identifier="wp_properties_iterator_item_get_value"
+ moved-to="Properties.iterator_item_get_value">
+ <source-position filename="../lib/wp/properties.h" line="145"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="840">the property value of the @item</doc>
+ <type name="utf8" c:type="const gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="item" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/properties.c"
+ line="837">a #GValue that was returned from the #WpIterator of
+ wp_properties_iterate()</doc>
+ <type name="GObject.Value" c:type="const GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="spa_log_get_instance"
+ c:identifier="wp_spa_log_get_instance">
+ <source-position filename="../lib/wp/debug.h" line="85"/>
+ <return-value transfer-ownership="none" nullable="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/debug.c"
+ line="467">WirePlumber's instance of `spa_log`, which can be used to redirect
+ PipeWire's log messages to the currently installed #GLogWriterFunc.
+ This is installed automatically when you call wp_init() with
+ %WP_INIT_SET_PW_LOG set in the flags</doc>
+ <type name="gpointer" c:type="spa_log*"/>
+ </return-value>
+ </function>
+ <function name="spa_type_deinit" c:identifier="wp_spa_type_deinit">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.c"
+ line="145">Deinitializes the spa type registry</doc>
+ <source-position filename="../lib/wp/spa-type.h" line="50"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </function>
+ <function name="spa_type_get_by_id" c:identifier="wp_spa_type_get_by_id">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.c"
+ line="305">Gets the name and nick name of the registered type given its id</doc>
+ <source-position filename="../lib/wp/spa-type.h" line="67"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.c"
+ line="315">TRUE if the type was found, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="table" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.c"
+ line="307">the table</doc>
+ <type name="SpaTypeTable" c:type="WpSpaTypeTable"/>
+ </parameter>
+ <parameter name="id" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.c"
+ line="308">the id of the type</doc>
+ <type name="guint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="name"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.c"
+ line="309">the name of the type</doc>
+ <type name="utf8" c:type="const char**"/>
+ </parameter>
+ <parameter name="nick"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.c"
+ line="310">the nick name of the type</doc>
+ <type name="utf8" c:type="const char**"/>
+ </parameter>
+ <parameter name="values_table"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.c"
+ line="311">the values table of the type</doc>
+ <type name="SpaTypeTable" c:type="WpSpaTypeTable*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="spa_type_get_by_nick"
+ c:identifier="wp_spa_type_get_by_nick">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.c"
+ line="263">Gets the id and name of the registered type given its nick name</doc>
+ <source-position filename="../lib/wp/spa-type.h" line="63"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.c"
+ line="273">TRUE if the type was found, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="table" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.c"
+ line="265">the table</doc>
+ <type name="SpaTypeTable" c:type="WpSpaTypeTable"/>
+ </parameter>
+ <parameter name="nick" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.c"
+ line="266">the nick name of the type</doc>
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ <parameter name="id"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.c"
+ line="267">the id of the type</doc>
+ <type name="guint32" c:type="guint32*"/>
+ </parameter>
+ <parameter name="name"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.c"
+ line="268">the name of the type</doc>
+ <type name="utf8" c:type="const char**"/>
+ </parameter>
+ <parameter name="values_table"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full"
+ optional="1"
+ allow-none="1">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.c"
+ line="269">the values table of the type</doc>
+ <type name="SpaTypeTable" c:type="WpSpaTypeTable*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="spa_type_get_table_size"
+ c:identifier="wp_spa_type_get_table_size">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.c"
+ line="161">Gets the number of registered types in a given table</doc>
+ <source-position filename="../lib/wp/spa-type.h" line="53"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.c"
+ line="167">The number of registered types</doc>
+ <type name="gsize" c:type="size_t"/>
+ </return-value>
+ <parameters>
+ <parameter name="table" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.c"
+ line="163">the table</doc>
+ <type name="SpaTypeTable" c:type="WpSpaTypeTable"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="spa_type_init" c:identifier="wp_spa_type_init">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.c"
+ line="108">Initializes the spa type registry</doc>
+ <source-position filename="../lib/wp/spa-type.h" line="47"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="register_spa" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.c"
+ line="110">whether spa types will be registered or not</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="spa_type_register" c:identifier="wp_spa_type_register">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.c"
+ line="182">Registers a type name with a nickname in the registry</doc>
+ <source-position filename="../lib/wp/spa-type.h" line="56"/>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.c"
+ line="190">TRUE if the type could be registered, FALSE otherwise</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="table" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.c"
+ line="184">the table</doc>
+ <type name="SpaTypeTable" c:type="WpSpaTypeTable"/>
+ </parameter>
+ <parameter name="name" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.c"
+ line="185">the name of the type</doc>
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ <parameter name="nick" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.c"
+ line="186">the nick name of the type</doc>
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="spa_type_unregister" c:identifier="wp_spa_type_unregister">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.c"
+ line="227">Unregisters a type given its nick name</doc>
+ <source-position filename="../lib/wp/spa-type.h" line="60"/>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="table" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.c"
+ line="229">the table</doc>
+ <type name="SpaTypeTable" c:type="WpSpaTypeTable"/>
+ </parameter>
+ <parameter name="nick" transfer-ownership="none">
+ <doc xml:space="preserve"
+ filename="../lib/wp/spa-type.c"
+ line="230">the nick name of the type</doc>
+ <type name="utf8" c:type="const char*"/>
+ </parameter>
+ </parameters>
+ </function>
+ </namespace>
+</repository>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]