summaryrefslogtreecommitdiff
path: root/build/doc/html/protocol_8h.html
diff options
context:
space:
mode:
Diffstat (limited to 'build/doc/html/protocol_8h.html')
-rw-r--r--build/doc/html/protocol_8h.html762
1 files changed, 762 insertions, 0 deletions
diff --git a/build/doc/html/protocol_8h.html b/build/doc/html/protocol_8h.html
new file mode 100644
index 00000000..79a52ab5
--- /dev/null
+++ b/build/doc/html/protocol_8h.html
@@ -0,0 +1,762 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.15"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>PipeWire: protocol.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+ $(document).ready(initResizable);
+/* @license-end */</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">PipeWire
+ &#160;<span id="projectnumber">0.2.9</span>
+ </div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.15 -->
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+ initMenu('',false,false,'search.php','Search');
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(document).ready(function(){initNavTree('protocol_8h.html','');});
+/* @license-end */
+</script>
+<div id="doc-content">
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#define-members">Macros</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">protocol.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><div class="dynheader">
+Include dependency graph for protocol.h:</div>
+<div class="dyncontent">
+<div class="center"><img src="protocol_8h__incl.png" border="0" usemap="#protocol_8h" alt=""/></div>
+<map name="protocol_8h" id="protocol_8h">
+<area shape="rect" title=" " alt="" coords="536,5,623,32"/>
+<area shape="rect" title=" " alt="" coords="99,80,212,107"/>
+<area shape="rect" href="core_8h.html" title=" " alt="" coords="671,80,794,107"/>
+<area shape="rect" href="properties_8h.html" title=" " alt="" coords="947,379,1107,405"/>
+<area shape="rect" href="utils_8h.html" title=" " alt="" coords="237,80,359,107"/>
+<area shape="rect" title=" " alt="" coords="464,379,585,405"/>
+<area shape="rect" title=" " alt="" coords="270,379,395,405"/>
+<area shape="rect" href="client_8h.html" title=" " alt="" coords="549,229,679,256"/>
+<area shape="rect" href="global_8h.html" title=" " alt="" coords="960,304,1095,331"/>
+<area shape="rect" href="introspect_8h.html" title=" " alt="" coords="675,304,833,331"/>
+<area shape="rect" href="loop_8h.html" title=" " alt="" coords="962,155,1085,181"/>
+<area shape="rect" href="factory_8h.html" title=" " alt="" coords="663,155,802,181"/>
+<area shape="rect" href="resource_8h.html" title=" " alt="" coords="257,304,408,331"/>
+<area shape="rect" href="permission_8h.html" title=" " alt="" coords="484,304,651,331"/>
+<area shape="rect" title=" " alt="" coords="969,453,1086,480"/>
+<area shape="rect" title=" " alt="" coords="679,379,829,405"/>
+<area shape="rect" title=" " alt="" coords="952,229,1095,256"/>
+<area shape="rect" title=" " alt="" coords="5,155,119,181"/>
+</map>
+</div>
+</div><div class="textblock"><div class="dynheader">
+This graph shows which files directly or indirectly include this file:</div>
+<div class="dyncontent">
+<div class="center"><img src="protocol_8h__dep__incl.png" border="0" usemap="#protocol_8hdep" alt=""/></div>
+<map name="protocol_8hdep" id="protocol_8hdep">
+<area shape="rect" title=" " alt="" coords="1276,5,1363,32"/>
+<area shape="rect" href="proxy_8h.html" title=" " alt="" coords="351,80,421,107"/>
+<area shape="rect" href="core_8c.html" title=" " alt="" coords="1149,379,1210,405"/>
+<area shape="rect" href="resource_8c.html" title=" " alt="" coords="1217,229,1307,256"/>
+<area shape="rect" href="protocol_8c.html" title=" " alt="" coords="1383,80,1469,107"/>
+<area shape="rect" href="interfaces_8h.html" title=" " alt="" coords="761,155,859,181"/>
+<area shape="rect" href="pipewire_8h.html" title=" " alt="" coords="198,304,289,331"/>
+<area shape="rect" href="proxy_8c.html" title=" " alt="" coords="348,229,416,256"/>
+<area shape="rect" href="remote_8h.html" title=" " alt="" coords="267,155,348,181"/>
+<area shape="rect" href="device_8c.html" title=" " alt="" coords="592,379,668,405"/>
+<area shape="rect" href="port_8c.html" title=" " alt="" coords="765,379,823,405"/>
+<area shape="rect" href="client_8c.html" title=" " alt="" coords="974,229,1043,256"/>
+<area shape="rect" href="global_8c.html" title=" " alt="" coords="1068,229,1141,256"/>
+<area shape="rect" href="link_8c.html" title=" " alt="" coords="492,229,549,256"/>
+<area shape="rect" href="module_8c.html" title=" " alt="" coords="574,229,657,256"/>
+<area shape="rect" href="node_8c.html" title=" " alt="" coords="681,229,747,256"/>
+<area shape="rect" href="factory_8c.html" title=" " alt="" coords="771,229,849,256"/>
+<area shape="rect" href="introspect_8c.html" title=" " alt="" coords="413,379,511,405"/>
+<area shape="rect" href="loop_8c.html" title=" " alt="" coords="213,379,274,405"/>
+<area shape="rect" href="pipewire_8c.html" title=" " alt="" coords="299,379,388,405"/>
+<area shape="rect" href="remote_8c.html" title=" " alt="" coords="109,379,189,405"/>
+<area shape="rect" href="stream_8c.html" title=" " alt="" coords="5,379,84,405"/>
+<area shape="rect" href="stream_8h.html" title=" " alt="" coords="142,229,222,256"/>
+</map>
+</div>
+</div>
+<p><a href="protocol_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpw__protocol__client.html">pw_protocol_client</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpw__protocol__server.html">pw_protocol_server</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpw__protocol__marshal.html">pw_protocol_marshal</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpw__protocol__implementaton.html">pw_protocol_implementaton</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structpw__protocol__events.html">pw_protocol_events</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a910bf17e4410db6f10055da489451604"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a910bf17e4410db6f10055da489451604">PW_TYPE_INFO_Protocol</a>&#160;&#160;&#160;&quot;PipeWire:Protocol&quot;</td></tr>
+<tr class="separator:a910bf17e4410db6f10055da489451604"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af2da98ab0dabd83d281ac8e4495d43d8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#af2da98ab0dabd83d281ac8e4495d43d8">PW_TYPE_INFO_PROTOCOL_BASE</a>&#160;&#160;&#160;<a class="el" href="protocol_8h.html#a910bf17e4410db6f10055da489451604">PW_TYPE_INFO_Protocol</a> &quot;:&quot;</td></tr>
+<tr class="separator:af2da98ab0dabd83d281ac8e4495d43d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3f16b337d5388520f01a55d36ecb760"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#af3f16b337d5388520f01a55d36ecb760">pw_protocol_client_connect</a>(c, cb, d)&#160;&#160;&#160;((c)-&gt;connect(c,cb,d))</td></tr>
+<tr class="separator:af3f16b337d5388520f01a55d36ecb760"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a56a619809f144fb3e27ac9e0644e3830"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a56a619809f144fb3e27ac9e0644e3830">pw_protocol_client_connect_fd</a>(c, fd, cl)&#160;&#160;&#160;((c)-&gt;connect_fd(c,fd,cl))</td></tr>
+<tr class="separator:a56a619809f144fb3e27ac9e0644e3830"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeae48475b735761c22837afd53e2ce9e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#aeae48475b735761c22837afd53e2ce9e">pw_protocol_client_steal_fd</a>(c)&#160;&#160;&#160;((c)-&gt;steal_fd(c))</td></tr>
+<tr class="separator:aeae48475b735761c22837afd53e2ce9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6673120bfc643d6cbeea97535873b4f0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a6673120bfc643d6cbeea97535873b4f0">pw_protocol_client_disconnect</a>(c)&#160;&#160;&#160;((c)-&gt;disconnect(c))</td></tr>
+<tr class="separator:a6673120bfc643d6cbeea97535873b4f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad3a30029abadec4f4b76ae2cb28a4585"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ad3a30029abadec4f4b76ae2cb28a4585">pw_protocol_client_destroy</a>(c)&#160;&#160;&#160;((c)-&gt;destroy(c))</td></tr>
+<tr class="separator:ad3a30029abadec4f4b76ae2cb28a4585"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6c57711ce8eee785b967ed0487a2fe3b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a6c57711ce8eee785b967ed0487a2fe3b">pw_protocol_server_destroy</a>(l)&#160;&#160;&#160;((l)-&gt;destroy(l))</td></tr>
+<tr class="separator:a6c57711ce8eee785b967ed0487a2fe3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d8f6852ba390ba826744d18b58c4021"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a4d8f6852ba390ba826744d18b58c4021">PW_VERSION_PROTOCOL_IMPLEMENTATION</a>&#160;&#160;&#160;0</td></tr>
+<tr class="separator:a4d8f6852ba390ba826744d18b58c4021"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac2742efc503c7a6e04238bd9a94af35e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ac2742efc503c7a6e04238bd9a94af35e">PW_VERSION_PROTOCOL_EVENTS</a>&#160;&#160;&#160;0</td></tr>
+<tr class="separator:ac2742efc503c7a6e04238bd9a94af35e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a10397b3ea74c80703140242313ab52df"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a10397b3ea74c80703140242313ab52df">pw_protocol_new_client</a>(p, ...)&#160;&#160;&#160;(<a class="el" href="protocol_8c.html#a1404d65cfb4a66704ca27407f5640cd1">pw_protocol_get_implementation</a>(p)-&gt;new_client(p,__VA_ARGS__))</td></tr>
+<tr class="separator:a10397b3ea74c80703140242313ab52df"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3b9d1f2afdf848863a84c7f2c825dc32"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a3b9d1f2afdf848863a84c7f2c825dc32">pw_protocol_add_server</a>(p, ...)&#160;&#160;&#160;(<a class="el" href="protocol_8c.html#a1404d65cfb4a66704ca27407f5640cd1">pw_protocol_get_implementation</a>(p)-&gt;add_server(p,__VA_ARGS__))</td></tr>
+<tr class="separator:a3b9d1f2afdf848863a84c7f2c825dc32"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a91126ea5ca35fb743c9fd04d27316fe1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a91126ea5ca35fb743c9fd04d27316fe1">pw_protocol_ext</a>(p, type, method, ...)&#160;&#160;&#160;(((type*)<a class="el" href="protocol_8c.html#a8cd83927fc5105e58443dcd0f74bddff">pw_protocol_get_extension</a>(p))-&gt;method( __VA_ARGS__))</td></tr>
+<tr class="separator:a91126ea5ca35fb743c9fd04d27316fe1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a515ef2ac9a2e741b04e3301573c7468e"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="classpw__protocol.html">pw_protocol</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a515ef2ac9a2e741b04e3301573c7468e">pw_protocol_new</a> (struct <a class="el" href="classpw__core.html">pw_core</a> *core, const char *name, size_t user_data_size)</td></tr>
+<tr class="separator:a515ef2ac9a2e741b04e3301573c7468e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6d58875f54dbf541b969c5911b802311"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a6d58875f54dbf541b969c5911b802311">pw_protocol_destroy</a> (struct <a class="el" href="classpw__protocol.html">pw_protocol</a> *protocol)</td></tr>
+<tr class="separator:a6d58875f54dbf541b969c5911b802311"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaba33660d98b865fb0ea4898ab6f8fe8"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#aaba33660d98b865fb0ea4898ab6f8fe8">pw_protocol_get_user_data</a> (struct <a class="el" href="classpw__protocol.html">pw_protocol</a> *protocol)</td></tr>
+<tr class="separator:aaba33660d98b865fb0ea4898ab6f8fe8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae14bc734b0ea2f0cd081716a552d3b07"><td class="memItemLeft" align="right" valign="top">const struct <a class="el" href="structpw__protocol__implementaton.html">pw_protocol_implementaton</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ae14bc734b0ea2f0cd081716a552d3b07">pw_protocol_get_implementation</a> (struct <a class="el" href="classpw__protocol.html">pw_protocol</a> *protocol)</td></tr>
+<tr class="separator:ae14bc734b0ea2f0cd081716a552d3b07"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aedaad565d0021ebcffe1b8699d150174"><td class="memItemLeft" align="right" valign="top">const void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#aedaad565d0021ebcffe1b8699d150174">pw_protocol_get_extension</a> (struct <a class="el" href="classpw__protocol.html">pw_protocol</a> *protocol)</td></tr>
+<tr class="separator:aedaad565d0021ebcffe1b8699d150174"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a253136c71f02f82d59fd79c78c40fe65"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a253136c71f02f82d59fd79c78c40fe65">pw_protocol_add_listener</a> (struct <a class="el" href="classpw__protocol.html">pw_protocol</a> *protocol, struct spa_hook *listener, const struct <a class="el" href="structpw__protocol__events.html">pw_protocol_events</a> *events, void *<a class="el" href="structdata.html">data</a>)</td></tr>
+<tr class="separator:a253136c71f02f82d59fd79c78c40fe65"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4b8a7c184d8756e4864538f16a60bec3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a4b8a7c184d8756e4864538f16a60bec3">pw_protocol_add_marshal</a> (struct <a class="el" href="classpw__protocol.html">pw_protocol</a> *protocol, const struct <a class="el" href="structpw__protocol__marshal.html">pw_protocol_marshal</a> *marshal)</td></tr>
+<tr class="separator:a4b8a7c184d8756e4864538f16a60bec3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0dac7c46c3ffea078e00f23ba75edf80"><td class="memItemLeft" align="right" valign="top">const struct <a class="el" href="structpw__protocol__marshal.html">pw_protocol_marshal</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a0dac7c46c3ffea078e00f23ba75edf80">pw_protocol_get_marshal</a> (struct <a class="el" href="classpw__protocol.html">pw_protocol</a> *protocol, uint32_t type)</td></tr>
+<tr class="separator:a0dac7c46c3ffea078e00f23ba75edf80"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab10469364d146903d93e85a936a933bb"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="classpw__protocol.html">pw_protocol</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ab10469364d146903d93e85a936a933bb">pw_core_find_protocol</a> (struct <a class="el" href="classpw__core.html">pw_core</a> *core, const char *name)</td></tr>
+<tr class="separator:ab10469364d146903d93e85a936a933bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="a3b9d1f2afdf848863a84c7f2c825dc32"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3b9d1f2afdf848863a84c7f2c825dc32">&#9670;&nbsp;</a></span>pw_protocol_add_server</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define pw_protocol_add_server</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">p, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>...</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;(<a class="el" href="protocol_8c.html#a1404d65cfb4a66704ca27407f5640cd1">pw_protocol_get_implementation</a>(p)-&gt;add_server(p,__VA_ARGS__))</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="af3f16b337d5388520f01a55d36ecb760"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af3f16b337d5388520f01a55d36ecb760">&#9670;&nbsp;</a></span>pw_protocol_client_connect</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define pw_protocol_client_connect</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">c, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">cb, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">d&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;((c)-&gt;connect(c,cb,d))</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a56a619809f144fb3e27ac9e0644e3830"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a56a619809f144fb3e27ac9e0644e3830">&#9670;&nbsp;</a></span>pw_protocol_client_connect_fd</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define pw_protocol_client_connect_fd</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">c, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">fd, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">cl&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;((c)-&gt;connect_fd(c,fd,cl))</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ad3a30029abadec4f4b76ae2cb28a4585"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad3a30029abadec4f4b76ae2cb28a4585">&#9670;&nbsp;</a></span>pw_protocol_client_destroy</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define pw_protocol_client_destroy</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">c</td><td>)</td>
+ <td>&#160;&#160;&#160;((c)-&gt;destroy(c))</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a6673120bfc643d6cbeea97535873b4f0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6673120bfc643d6cbeea97535873b4f0">&#9670;&nbsp;</a></span>pw_protocol_client_disconnect</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define pw_protocol_client_disconnect</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">c</td><td>)</td>
+ <td>&#160;&#160;&#160;((c)-&gt;disconnect(c))</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="aeae48475b735761c22837afd53e2ce9e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aeae48475b735761c22837afd53e2ce9e">&#9670;&nbsp;</a></span>pw_protocol_client_steal_fd</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define pw_protocol_client_steal_fd</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">c</td><td>)</td>
+ <td>&#160;&#160;&#160;((c)-&gt;steal_fd(c))</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a91126ea5ca35fb743c9fd04d27316fe1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a91126ea5ca35fb743c9fd04d27316fe1">&#9670;&nbsp;</a></span>pw_protocol_ext</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define pw_protocol_ext</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">p, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">type, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">method, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>...</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;(((type*)<a class="el" href="protocol_8c.html#a8cd83927fc5105e58443dcd0f74bddff">pw_protocol_get_extension</a>(p))-&gt;method( __VA_ARGS__))</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a10397b3ea74c80703140242313ab52df"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a10397b3ea74c80703140242313ab52df">&#9670;&nbsp;</a></span>pw_protocol_new_client</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define pw_protocol_new_client</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">p, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname"><em>...</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td>&#160;&#160;&#160;(<a class="el" href="protocol_8c.html#a1404d65cfb4a66704ca27407f5640cd1">pw_protocol_get_implementation</a>(p)-&gt;new_client(p,__VA_ARGS__))</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a6c57711ce8eee785b967ed0487a2fe3b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6c57711ce8eee785b967ed0487a2fe3b">&#9670;&nbsp;</a></span>pw_protocol_server_destroy</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define pw_protocol_server_destroy</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">l</td><td>)</td>
+ <td>&#160;&#160;&#160;((l)-&gt;destroy(l))</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a910bf17e4410db6f10055da489451604"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a910bf17e4410db6f10055da489451604">&#9670;&nbsp;</a></span>PW_TYPE_INFO_Protocol</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define PW_TYPE_INFO_Protocol&#160;&#160;&#160;&quot;PipeWire:Protocol&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="af2da98ab0dabd83d281ac8e4495d43d8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af2da98ab0dabd83d281ac8e4495d43d8">&#9670;&nbsp;</a></span>PW_TYPE_INFO_PROTOCOL_BASE</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define PW_TYPE_INFO_PROTOCOL_BASE&#160;&#160;&#160;<a class="el" href="protocol_8h.html#a910bf17e4410db6f10055da489451604">PW_TYPE_INFO_Protocol</a> &quot;:&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ac2742efc503c7a6e04238bd9a94af35e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac2742efc503c7a6e04238bd9a94af35e">&#9670;&nbsp;</a></span>PW_VERSION_PROTOCOL_EVENTS</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define PW_VERSION_PROTOCOL_EVENTS&#160;&#160;&#160;0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a4d8f6852ba390ba826744d18b58c4021"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4d8f6852ba390ba826744d18b58c4021">&#9670;&nbsp;</a></span>PW_VERSION_PROTOCOL_IMPLEMENTATION</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define PW_VERSION_PROTOCOL_IMPLEMENTATION&#160;&#160;&#160;0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a id="ab10469364d146903d93e85a936a933bb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab10469364d146903d93e85a936a933bb">&#9670;&nbsp;</a></span>pw_core_find_protocol()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">struct <a class="el" href="classpw__protocol.html">pw_protocol</a>* pw_core_find_protocol </td>
+ <td>(</td>
+ <td class="paramtype">struct <a class="el" href="classpw__core.html">pw_core</a> *&#160;</td>
+ <td class="paramname"><em>core</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p class="reference">Referenced by <a class="el" href="remote_8c.html#ab4d94be2412050ec56ad495ccf75f9b3">pw_remote_new()</a>.</p>
+<div class="dynheader">
+Here is the caller graph for this function:</div>
+<div class="dyncontent">
+<div class="center"><img src="protocol_8h_ab10469364d146903d93e85a936a933bb_icgraph.png" border="0" usemap="#protocol_8h_ab10469364d146903d93e85a936a933bb_icgraph" alt=""/></div>
+<map name="protocol_8h_ab10469364d146903d93e85a936a933bb_icgraph" id="protocol_8h_ab10469364d146903d93e85a936a933bb_icgraph">
+<area shape="rect" title=" " alt="" coords="183,5,351,32"/>
+<area shape="rect" href="remote_8c.html#ab4d94be2412050ec56ad495ccf75f9b3" title=" " alt="" coords="5,5,135,32"/>
+</map>
+</div>
+
+</div>
+</div>
+<a id="a253136c71f02f82d59fd79c78c40fe65"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a253136c71f02f82d59fd79c78c40fe65">&#9670;&nbsp;</a></span>pw_protocol_add_listener()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void pw_protocol_add_listener </td>
+ <td>(</td>
+ <td class="paramtype">struct <a class="el" href="classpw__protocol.html">pw_protocol</a> *&#160;</td>
+ <td class="paramname"><em>protocol</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">struct spa_hook *&#160;</td>
+ <td class="paramname"><em>listener</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const struct <a class="el" href="structpw__protocol__events.html">pw_protocol_events</a> *&#160;</td>
+ <td class="paramname"><em>events</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>data</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p class="reference">References <a class="el" href="structpw__protocol__client.html#a2f6233dcd7a026275a93680ae68ee263">pw_protocol_client::protocol</a>.</p>
+
+</div>
+</div>
+<a id="a4b8a7c184d8756e4864538f16a60bec3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4b8a7c184d8756e4864538f16a60bec3">&#9670;&nbsp;</a></span>pw_protocol_add_marshal()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int pw_protocol_add_marshal </td>
+ <td>(</td>
+ <td class="paramtype">struct <a class="el" href="classpw__protocol.html">pw_protocol</a> *&#160;</td>
+ <td class="paramname"><em>protocol</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const struct <a class="el" href="structpw__protocol__marshal.html">pw_protocol_marshal</a> *&#160;</td>
+ <td class="paramname"><em>marshal</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p class="reference">References <a class="el" href="classpw__log.html#a98a49c37f11de525890014e927e34d02">pw_log::pw_log_debug</a>, <a class="el" href="type_8h.html#a3e7088893438300a0ba3defeb6b344a1">pw_type_info()</a>, <a class="el" href="structpw__protocol__marshal.html#a0653449df5bb9bcb1f6e3d98dce230a3">pw_protocol_marshal::type</a>, and <a class="el" href="structpw__protocol__marshal.html#a84d23417562653ce0c3f833914745b4b">pw_protocol_marshal::version</a>.</p>
+
+</div>
+</div>
+<a id="a6d58875f54dbf541b969c5911b802311"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6d58875f54dbf541b969c5911b802311">&#9670;&nbsp;</a></span>pw_protocol_destroy()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void pw_protocol_destroy </td>
+ <td>(</td>
+ <td class="paramtype">struct <a class="el" href="classpw__protocol.html">pw_protocol</a> *&#160;</td>
+ <td class="paramname"><em>protocol</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p class="reference">References <a class="el" href="structpw__protocol__client.html#addd42578b59ddffc32a42a52754654be">pw_protocol_client::link</a>, <a class="el" href="structpw__protocol__client.html#a2f6233dcd7a026275a93680ae68ee263">pw_protocol_client::protocol</a>, <a class="el" href="classpw__log.html#a98a49c37f11de525890014e927e34d02">pw_log::pw_log_debug</a>, <a class="el" href="protocol_8h.html#ad3a30029abadec4f4b76ae2cb28a4585">pw_protocol_client_destroy</a>, and <a class="el" href="protocol_8h.html#a6c57711ce8eee785b967ed0487a2fe3b">pw_protocol_server_destroy</a>.</p>
+
+</div>
+</div>
+<a id="aedaad565d0021ebcffe1b8699d150174"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aedaad565d0021ebcffe1b8699d150174">&#9670;&nbsp;</a></span>pw_protocol_get_extension()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const void* pw_protocol_get_extension </td>
+ <td>(</td>
+ <td class="paramtype">struct <a class="el" href="classpw__protocol.html">pw_protocol</a> *&#160;</td>
+ <td class="paramname"><em>protocol</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="ae14bc734b0ea2f0cd081716a552d3b07"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae14bc734b0ea2f0cd081716a552d3b07">&#9670;&nbsp;</a></span>pw_protocol_get_implementation()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const struct <a class="el" href="structpw__protocol__implementaton.html">pw_protocol_implementaton</a>* pw_protocol_get_implementation </td>
+ <td>(</td>
+ <td class="paramtype">struct <a class="el" href="classpw__protocol.html">pw_protocol</a> *&#160;</td>
+ <td class="paramname"><em>protocol</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a0dac7c46c3ffea078e00f23ba75edf80"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0dac7c46c3ffea078e00f23ba75edf80">&#9670;&nbsp;</a></span>pw_protocol_get_marshal()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">const struct <a class="el" href="structpw__protocol__marshal.html">pw_protocol_marshal</a>* pw_protocol_get_marshal </td>
+ <td>(</td>
+ <td class="paramtype">struct <a class="el" href="classpw__protocol.html">pw_protocol</a> *&#160;</td>
+ <td class="paramname"><em>protocol</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>type</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p class="reference">Referenced by <a class="el" href="classpw__proxy.html#a7c06847bc4258d7a603f9bd507309226">pw_proxy::pw_proxy_new()</a>, and <a class="el" href="resource_8c.html#a13bc34ff7eecd313331ff6d95e8c95a5">pw_resource_new()</a>.</p>
+<div class="dynheader">
+Here is the caller graph for this function:</div>
+<div class="dyncontent">
+<div class="center"><img src="protocol_8h_a0dac7c46c3ffea078e00f23ba75edf80_icgraph.png" border="0" usemap="#protocol_8h_a0dac7c46c3ffea078e00f23ba75edf80_icgraph" alt=""/></div>
+<map name="protocol_8h_a0dac7c46c3ffea078e00f23ba75edf80_icgraph" id="protocol_8h_a0dac7c46c3ffea078e00f23ba75edf80_icgraph">
+<area shape="rect" title=" " alt="" coords="244,31,433,57"/>
+<area shape="rect" href="classpw__proxy.html#a7c06847bc4258d7a603f9bd507309226" title="Create a proxy object with a given id and type." alt="" coords="5,5,196,32"/>
+<area shape="rect" href="resource_8c.html#a13bc34ff7eecd313331ff6d95e8c95a5" title="Make a new resource for client." alt="" coords="31,56,170,83"/>
+</map>
+</div>
+
+</div>
+</div>
+<a id="aaba33660d98b865fb0ea4898ab6f8fe8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aaba33660d98b865fb0ea4898ab6f8fe8">&#9670;&nbsp;</a></span>pw_protocol_get_user_data()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void* pw_protocol_get_user_data </td>
+ <td>(</td>
+ <td class="paramtype">struct <a class="el" href="classpw__protocol.html">pw_protocol</a> *&#160;</td>
+ <td class="paramname"><em>protocol</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a515ef2ac9a2e741b04e3301573c7468e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a515ef2ac9a2e741b04e3301573c7468e">&#9670;&nbsp;</a></span>pw_protocol_new()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">struct <a class="el" href="classpw__protocol.html">pw_protocol</a>* pw_protocol_new </td>
+ <td>(</td>
+ <td class="paramtype">struct <a class="el" href="classpw__core.html">pw_core</a> *&#160;</td>
+ <td class="paramname"><em>core</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const char *&#160;</td>
+ <td class="paramname"><em>name</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">size_t&#160;</td>
+ <td class="paramname"><em>user_data_size</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p class="reference">References <a class="el" href="classpw__log.html#a98a49c37f11de525890014e927e34d02">pw_log::pw_log_debug</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_7129a66c92fe7beef816c2ac906ef0b3.html">pipewire</a></li><li class="navelem"><a class="el" href="protocol_8h.html">protocol.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
+ </ul>
+</div>
+</body>
+</html>