| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.14"/> |
| <meta name="viewport" content="width=device-width, initial-scale=1"/> |
| <title>libguac: guacamole/user.h Source File</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="search/search.css" rel="stylesheet" type="text/css"/> |
| <script type="text/javascript" src="search/searchdata.js"></script> |
| <script type="text/javascript" src="search/search.js"></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">libguac |
|  <span id="projectnumber">1.0.0</span> |
| </div> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| <!-- end header part --> |
| <!-- Generated by Doxygen 1.8.14 --> |
| <script type="text/javascript"> |
| /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ |
| var searchBox = new SearchBox("searchBox", "search",false,'Search'); |
| /* @license-end */ |
| </script> |
| <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&dn=gpl-2.0.txt GPL-v2 */ |
| $(function() { |
| initMenu('',true,false,'search.php','Search'); |
| $(document).ready(function() { init_search(); }); |
| }); |
| /* @license-end */</script> |
| <div id="main-nav"></div> |
| <!-- window showing the filter options --> |
| <div id="MSearchSelectWindow" |
| onmouseover="return searchBox.OnSearchSelectShow()" |
| onmouseout="return searchBox.OnSearchSelectHide()" |
| onkeydown="return searchBox.OnSearchSelectKey(event)"> |
| </div> |
| |
| <!-- iframe showing the search results (closed by default) --> |
| <div id="MSearchResultsWindow"> |
| <iframe src="javascript:void(0)" frameborder="0" |
| name="MSearchResults" id="MSearchResults"> |
| </iframe> |
| </div> |
| |
| <div id="nav-path" class="navpath"> |
| <ul> |
| <li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li> </ul> |
| </div> |
| </div><!-- top --> |
| <div class="header"> |
| <div class="headertitle"> |
| <div class="title">user.h</div> </div> |
| </div><!--header--> |
| <div class="contents"> |
| <a href="user_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * or more contributor license agreements. See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * regarding copyright ownership. The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * "License"); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * with the License. You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> * KIND, either express or implied. See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#ifndef _GUAC_USER_H</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#define _GUAC_USER_H</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="client-types_8h.html">client-types.h</a>"</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="layer-types_8h.html">layer-types.h</a>"</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "<a class="code" href="pool-types_8h.html">pool-types.h</a>"</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "<a class="code" href="socket-types_8h.html">socket-types.h</a>"</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "<a class="code" href="stream-types_8h.html">stream-types.h</a>"</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "<a class="code" href="timestamp-types_8h.html">timestamp-types.h</a>"</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="user-constants_8h.html">user-constants.h</a>"</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "<a class="code" href="user-fntypes_8h.html">user-fntypes.h</a>"</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="preprocessor">#include "<a class="code" href="user-types_8h.html">user-types.h</a>"</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#include <cairo/cairo.h></span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include <pthread.h></span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include <stdarg.h></span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structguac__user__info.html"> 46</a></span> <span class="keyword">struct </span><a class="code" href="structguac__user__info.html">guac_user_info</a> {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structguac__user__info.html#a496d5f3d26a7db0a0490afa553126c66"> 54</a></span>  <span class="keywordtype">int</span> <a class="code" href="structguac__user__info.html#a496d5f3d26a7db0a0490afa553126c66">optimal_width</a>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="structguac__user__info.html#a252079af642b62554566e8675dc43354"> 62</a></span>  <span class="keywordtype">int</span> <a class="code" href="structguac__user__info.html#a252079af642b62554566e8675dc43354">optimal_height</a>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="structguac__user__info.html#a043432620dafe7ba38fcd3550fdc7d27"> 68</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span>** <a class="code" href="structguac__user__info.html#a043432620dafe7ba38fcd3550fdc7d27">audio_mimetypes</a>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="structguac__user__info.html#ace535bea6879596b6473657f3fc83b57"> 74</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span>** <a class="code" href="structguac__user__info.html#ace535bea6879596b6473657f3fc83b57">video_mimetypes</a>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="structguac__user__info.html#ac05b09cce376e656f4e4baa19f888345"> 81</a></span>  <span class="keyword">const</span> <span class="keywordtype">char</span>** <a class="code" href="structguac__user__info.html#ac05b09cce376e656f4e4baa19f888345">image_mimetypes</a>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="structguac__user__info.html#ac19c08c0ef7441556be0afed6fb9c7c7"> 90</a></span>  <span class="keywordtype">int</span> <a class="code" href="structguac__user__info.html#ac19c08c0ef7441556be0afed6fb9c7c7">optimal_resolution</a>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> };</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="structguac__user.html"> 94</a></span> <span class="keyword">struct </span><a class="code" href="structguac__user.html">guac_user</a> {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="structguac__user.html#a5e296149a26932dfeb7d8b0bac933ecf"> 99</a></span>  <a class="code" href="structguac__client.html">guac_client</a>* <a class="code" href="structguac__user.html#a5e296149a26932dfeb7d8b0bac933ecf">client</a>;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="structguac__user.html#a8496638b8c4c52f5f15d483b92becf27"> 106</a></span>  <a class="code" href="structguac__socket.html">guac_socket</a>* <a class="code" href="structguac__user.html#a8496638b8c4c52f5f15d483b92becf27">socket</a>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="structguac__user.html#aad1c6a8b56d17c12eb1f1e36c4798c70"> 114</a></span>  <span class="keywordtype">char</span>* <a class="code" href="structguac__user.html#aad1c6a8b56d17c12eb1f1e36c4798c70">user_id</a>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="structguac__user.html#a265180af7291745b2e090ee6fa47cbb8"> 120</a></span>  <span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a265180af7291745b2e090ee6fa47cbb8">owner</a>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> </div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="structguac__user.html#a1b52d918f437923d65e9b3eecb20fcfd"> 128</a></span>  <span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a1b52d918f437923d65e9b3eecb20fcfd">active</a>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <a class="code" href="structguac__user.html">guac_user</a>* __prev;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span> </div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="structguac__user.html">guac_user</a>* __next;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="structguac__user.html#aebdee192ef52dfe8956c776adc65fb16"> 150</a></span>  <a class="code" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> <a class="code" href="structguac__user.html#aebdee192ef52dfe8956c776adc65fb16">last_received_timestamp</a>;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="structguac__user.html#ac7e84b1bf15d3d15ba49ce58f1819060"> 157</a></span>  <span class="keywordtype">int</span> <a class="code" href="structguac__user.html#ac7e84b1bf15d3d15ba49ce58f1819060">last_frame_duration</a>;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> </div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="structguac__user.html#a4b097cae9283bb0caf70189d4f3d1d0e"> 163</a></span>  <span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a4b097cae9283bb0caf70189d4f3d1d0e">processing_lag</a>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="structguac__user.html#a0120f63e0eb933761666047ed80e483f"> 169</a></span>  <a class="code" href="structguac__user__info.html">guac_user_info</a> <a class="code" href="structguac__user.html#a0120f63e0eb933761666047ed80e483f">info</a>;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> </div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <a class="code" href="structguac__pool.html">guac_pool</a>* __stream_pool;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span> </div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <a class="code" href="structguac__stream.html">guac_stream</a>* __output_streams;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="structguac__stream.html">guac_stream</a>* __input_streams;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <a class="code" href="structguac__pool.html">guac_pool</a>* __object_pool;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <a class="code" href="structguac__object.html">guac_object</a>* __objects;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span> </div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="structguac__user.html#ad424a52c5d996e4a33de5dad61555883"> 199</a></span>  <span class="keywordtype">void</span>* <a class="code" href="structguac__user.html#ad424a52c5d996e4a33de5dad61555883">data</a>;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </div><div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763"> 226</a></span>  <a class="code" href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">guac_user_mouse_handler</a>* <a class="code" href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763">mouse_handler</a>;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span> </div><div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13"> 244</a></span>  <a class="code" href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">guac_user_key_handler</a>* <a class="code" href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13">key_handler</a>;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span> </div><div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="structguac__user.html#a77f042802092c8bbf4407836f3185343"> 265</a></span>  <a class="code" href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">guac_user_clipboard_handler</a>* <a class="code" href="structguac__user.html#a77f042802092c8bbf4407836f3185343">clipboard_handler</a>;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span> </div><div class="line"><a name="l00282"></a><span class="lineno"><a class="line" href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a"> 282</a></span>  <a class="code" href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">guac_user_size_handler</a>* <a class="code" href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a">size_handler</a>;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span> </div><div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474"> 301</a></span>  <a class="code" href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">guac_user_file_handler</a>* <a class="code" href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474">file_handler</a>;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span> </div><div class="line"><a name="l00320"></a><span class="lineno"><a class="line" href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3"> 320</a></span>  <a class="code" href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">guac_user_pipe_handler</a>* <a class="code" href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3">pipe_handler</a>;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span> </div><div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be"> 339</a></span>  <a class="code" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a>* <a class="code" href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be">ack_handler</a>;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span> </div><div class="line"><a name="l00358"></a><span class="lineno"><a class="line" href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb"> 358</a></span>  <a class="code" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a>* <a class="code" href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb">blob_handler</a>;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span> </div><div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed"> 376</a></span>  <a class="code" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a>* <a class="code" href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed">end_handler</a>;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span> </div><div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2"> 395</a></span>  <a class="code" href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">guac_user_sync_handler</a>* <a class="code" href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2">sync_handler</a>;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span> </div><div class="line"><a name="l00414"></a><span class="lineno"><a class="line" href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f"> 414</a></span>  <a class="code" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a>* <a class="code" href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f">leave_handler</a>;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span> </div><div class="line"><a name="l00434"></a><span class="lineno"><a class="line" href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b"> 434</a></span>  <a class="code" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a>* <a class="code" href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b">get_handler</a>;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span> </div><div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3"> 454</a></span>  <a class="code" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a>* <a class="code" href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3">put_handler</a>;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span> </div><div class="line"><a name="l00476"></a><span class="lineno"><a class="line" href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69"> 476</a></span>  <a class="code" href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">guac_user_audio_handler</a>* <a class="code" href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69">audio_handler</a>;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span> </div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span> };</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span> </div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <a class="code" href="structguac__user.html">guac_user</a>* <a class="code" href="user_8h.html#a586cd1d712dce0db02d57684ddcb02ef">guac_user_alloc</a>();</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span> </div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span> <span class="keywordtype">void</span> <a class="code" href="user_8h.html#a7e0e1220fd00fd769b8e6b731f8c9bf8">guac_user_free</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span> </div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span> <span class="keywordtype">int</span> <a class="code" href="user_8h.html#a28f08ab54f138796dea4655ef54526fe">guac_user_handle_connection</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> usec_timeout);</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span> </div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span> <span class="keywordtype">int</span> <a class="code" href="user_8h.html#a0303ef487d51b06bb0f007f1a5df0d78">guac_user_handle_instruction</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keyword">const</span> <span class="keywordtype">char</span>* opcode,</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv);</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span> </div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span> <a class="code" href="structguac__stream.html">guac_stream</a>* <a class="code" href="user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c">guac_user_alloc_stream</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span> </div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span> <span class="keywordtype">void</span> <a class="code" href="user_8h.html#a3b3c740837b8e2cae6a232b45ca362f4">guac_user_free_stream</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream);</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span> </div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span> <span class="keywordtype">void</span> <a class="code" href="user_8h.html#a8216ec7024947564fb4ea6b8b0b07eaf">guac_user_stop</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span> </div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span> <span class="keywordtype">void</span> <a class="code" href="user_8h.html#a0eff54a869374e37237b2006ad77b958">guac_user_abort</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status,</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* format, ...);</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span> </div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span> <span class="keywordtype">void</span> <a class="code" href="user_8h.html#ad8529247b551cb93509236a7f9138dd2">vguac_user_abort</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status,</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* format, va_list ap);</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span> </div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span> <span class="keywordtype">void</span> <a class="code" href="user_8h.html#ab19481d0800901190d3d734eae466151">guac_user_log</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level,</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* format, ...);</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span> </div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span> <span class="keywordtype">void</span> <a class="code" href="user_8h.html#af15509bcb891932a3fa93a142018b95c">vguac_user_log</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level,</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* format, va_list ap);</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span> </div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span> <a class="code" href="structguac__object.html">guac_object</a>* <a class="code" href="user_8h.html#a6fa98ba49213d610491248cf085aaf56">guac_user_alloc_object</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span> </div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span> <span class="keywordtype">void</span> <a class="code" href="user_8h.html#acf92065fb6bbc92f9794ea50255acdb9">guac_user_free_object</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span>);</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span> </div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span> <span class="keywordtype">void</span> <a class="code" href="user_8h.html#a35e4c7ba75a16c0b512d543ef4fe9630">guac_user_stream_png</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  cairo_surface_t* surface);</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span> </div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span> <span class="keywordtype">void</span> <a class="code" href="user_8h.html#a6e947ee6996d5711f18d5b785757ccb3">guac_user_stream_jpeg</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  cairo_surface_t* surface, <span class="keywordtype">int</span> quality);</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span> </div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span> <span class="keywordtype">void</span> <a class="code" href="user_8h.html#af00042d94cb64fb8ac92cd84aff05bf8">guac_user_stream_webp</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  cairo_surface_t* surface, <span class="keywordtype">int</span> quality, <span class="keywordtype">int</span> lossless);</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span> </div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span> <span class="keywordtype">int</span> <a class="code" href="user_8h.html#a26d186ee6b669c78278124ece46cc8f7">guac_user_supports_webp</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span> </div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span> <span class="keywordtype">char</span>* <a class="code" href="user_8h.html#a7530b31b5a621a4f68fdce4bee2bdc5f">guac_user_parse_args_string</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keyword">const</span> <span class="keywordtype">char</span>** arg_names,</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>** argv, <span class="keywordtype">int</span> index, <span class="keyword">const</span> <span class="keywordtype">char</span>* default_value);</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span> </div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span> <span class="keywordtype">int</span> <a class="code" href="user_8h.html#a08f6fd4d84de665487a45fb324dc8844">guac_user_parse_args_int</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keyword">const</span> <span class="keywordtype">char</span>** arg_names,</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>** argv, <span class="keywordtype">int</span> index, <span class="keywordtype">int</span> default_value);</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span> </div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span> <span class="keywordtype">int</span> <a class="code" href="user_8h.html#a5f0bae838d82357e95e98769f7b98cd2">guac_user_parse_args_boolean</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keyword">const</span> <span class="keywordtype">char</span>** arg_names,</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>** argv, <span class="keywordtype">int</span> index, <span class="keywordtype">int</span> default_value);</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span> </div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span> </div><div class="ttc" id="structguac__user_html_a793f7ef1cd818c296e7a5801c349f5ed"><div class="ttname"><a href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed">guac_user::end_handler</a></div><div class="ttdeci">guac_user_end_handler * end_handler</div><div class="ttdoc">Handler for stream end events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:376</div></div> |
| <div class="ttc" id="user_8h_html_a6fa98ba49213d610491248cf085aaf56"><div class="ttname"><a href="user_8h.html#a6fa98ba49213d610491248cf085aaf56">guac_user_alloc_object</a></div><div class="ttdeci">guac_object * guac_user_alloc_object(guac_user *user)</div><div class="ttdoc">Allocates a new object. </div></div> |
| <div class="ttc" id="structguac__user_html_a0120f63e0eb933761666047ed80e483f"><div class="ttname"><a href="structguac__user.html#a0120f63e0eb933761666047ed80e483f">guac_user::info</a></div><div class="ttdeci">guac_user_info info</div><div class="ttdoc">Information structure containing properties exposed by the remote user during the initial handshake p...</div><div class="ttdef"><b>Definition:</b> user.h:169</div></div> |
| <div class="ttc" id="user_8h_html_af15509bcb891932a3fa93a142018b95c"><div class="ttname"><a href="user_8h.html#af15509bcb891932a3fa93a142018b95c">vguac_user_log</a></div><div class="ttdeci">void vguac_user_log(guac_user *user, guac_client_log_level level, const char *format, va_list ap)</div><div class="ttdoc">Writes a message in the log used by the given user. </div></div> |
| <div class="ttc" id="structguac__user_html_ab9b8b3c268a0d14a28bdae6929cffb13"><div class="ttname"><a href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13">guac_user::key_handler</a></div><div class="ttdeci">guac_user_key_handler * key_handler</div><div class="ttdoc">Handler for key events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:244</div></div> |
| <div class="ttc" id="user-fntypes_8h_html_ab8b7cadf31aeac0b2ac0ce4f46dafe81"><div class="ttname"><a href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a></div><div class="ttdeci">int guac_user_get_handler(guac_user *user, guac_object *object, char *name)</div><div class="ttdoc">Handler for Guacamole object get requests. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:397</div></div> |
| <div class="ttc" id="structguac__user_html_a209e83f080baf2e84d04cf08395374d2"><div class="ttname"><a href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2">guac_user::sync_handler</a></div><div class="ttdeci">guac_user_sync_handler * sync_handler</div><div class="ttdoc">Handler for sync events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:395</div></div> |
| <div class="ttc" id="structguac__user__info_html_ac19c08c0ef7441556be0afed6fb9c7c7"><div class="ttname"><a href="structguac__user__info.html#ac19c08c0ef7441556be0afed6fb9c7c7">guac_user_info::optimal_resolution</a></div><div class="ttdeci">int optimal_resolution</div><div class="ttdoc">The DPI of the physical remote display if configured for the optimal width/height combination describ...</div><div class="ttdef"><b>Definition:</b> user.h:90</div></div> |
| <div class="ttc" id="user-fntypes_8h_html_a1d2777aaa35f39e5ba5e803a3ffbd137"><div class="ttname"><a href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">guac_user_audio_handler</a></div><div class="ttdeci">int guac_user_audio_handler(guac_user *user, guac_stream *stream, char *mimetype)</div><div class="ttdoc">Handler for Guacamole audio streams received from a user. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:138</div></div> |
| <div class="ttc" id="socket-types_8h_html"><div class="ttname"><a href="socket-types_8h.html">socket-types.h</a></div><div class="ttdoc">Type definitions related to the guac_socket object. </div></div> |
| <div class="ttc" id="user-fntypes_8h_html_ab60c51d865526c5c5d2c096e4fcb5539"><div class="ttname"><a href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">guac_user_sync_handler</a></div><div class="ttdeci">int guac_user_sync_handler(guac_user *user, guac_timestamp timestamp)</div><div class="ttdoc">Handler for Guacamole sync events. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:376</div></div> |
| <div class="ttc" id="structguac__user_html_ada73c04bbf06de4280f2d7679190a19b"><div class="ttname"><a href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b">guac_user::get_handler</a></div><div class="ttdeci">guac_user_get_handler * get_handler</div><div class="ttdoc">Handler for get events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:434</div></div> |
| <div class="ttc" id="structguac__user_html_a4b097cae9283bb0caf70189d4f3d1d0e"><div class="ttname"><a href="structguac__user.html#a4b097cae9283bb0caf70189d4f3d1d0e">guac_user::processing_lag</a></div><div class="ttdeci">int processing_lag</div><div class="ttdoc">The overall lag experienced by the user relative to the stream of frames, roughly excluding network l...</div><div class="ttdef"><b>Definition:</b> user.h:163</div></div> |
| <div class="ttc" id="user-fntypes_8h_html_aca3c0d12202f7888146bb95986011b6f"><div class="ttname"><a href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">guac_user_size_handler</a></div><div class="ttdeci">int guac_user_size_handler(guac_user *user, int width, int height)</div><div class="ttdoc">Handler for Guacamole size events, invoked when a "size" instruction has been received from a user...</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:182</div></div> |
| <div class="ttc" id="stream-types_8h_html"><div class="ttname"><a href="stream-types_8h.html">stream-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol streams. </div></div> |
| <div class="ttc" id="structguac__user_html_aebdee192ef52dfe8956c776adc65fb16"><div class="ttname"><a href="structguac__user.html#aebdee192ef52dfe8956c776adc65fb16">guac_user::last_received_timestamp</a></div><div class="ttdeci">guac_timestamp last_received_timestamp</div><div class="ttdoc">The time (in milliseconds) of receipt of the last sync message from the user. </div><div class="ttdef"><b>Definition:</b> user.h:150</div></div> |
| <div class="ttc" id="structguac__socket_html"><div class="ttname"><a href="structguac__socket.html">guac_socket</a></div><div class="ttdoc">The core I/O object of Guacamole. </div><div class="ttdef"><b>Definition:</b> socket.h:39</div></div> |
| <div class="ttc" id="user-fntypes_8h_html_a337a3fe8b983e3e25e25dbb836ea2694"><div class="ttname"><a href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">guac_user_mouse_handler</a></div><div class="ttdeci">int guac_user_mouse_handler(guac_user *user, int x, int y, int button_mask)</div><div class="ttdoc">Handler for Guacamole mouse events, invoked when a "mouse" instruction has been received from a user...</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:95</div></div> |
| <div class="ttc" id="user-fntypes_8h_html_afa8b0e25073cbe710265dc8a0ed150ca"><div class="ttname"><a href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a></div><div class="ttdeci">int guac_user_end_handler(guac_user *user, guac_stream *stream)</div><div class="ttdoc">Handler for Guacamole stream "end" instructions. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:306</div></div> |
| <div class="ttc" id="structguac__user_html_a88a14fda25c9929269d198d4d602f7fb"><div class="ttname"><a href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb">guac_user::blob_handler</a></div><div class="ttdeci">guac_user_blob_handler * blob_handler</div><div class="ttdoc">Handler for blob events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:358</div></div> |
| <div class="ttc" id="structguac__user_html_ad424a52c5d996e4a33de5dad61555883"><div class="ttname"><a href="structguac__user.html#ad424a52c5d996e4a33de5dad61555883">guac_user::data</a></div><div class="ttdeci">void * data</div><div class="ttdoc">Arbitrary user-specific data. </div><div class="ttdef"><b>Definition:</b> user.h:199</div></div> |
| <div class="ttc" id="structguac__user_html_a8b958a20fbe7cf082d5ee074fceac474"><div class="ttname"><a href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474">guac_user::file_handler</a></div><div class="ttdeci">guac_user_file_handler * file_handler</div><div class="ttdoc">Handler for file events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:301</div></div> |
| <div class="ttc" id="user_8h_html_a26d186ee6b669c78278124ece46cc8f7"><div class="ttname"><a href="user_8h.html#a26d186ee6b669c78278124ece46cc8f7">guac_user_supports_webp</a></div><div class="ttdeci">int guac_user_supports_webp(guac_user *user)</div><div class="ttdoc">Returns whether the given user supports WebP. </div></div> |
| <div class="ttc" id="structguac__user_html_a05ec6fd1894ff8df10c051b20df1b763"><div class="ttname"><a href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763">guac_user::mouse_handler</a></div><div class="ttdeci">guac_user_mouse_handler * mouse_handler</div><div class="ttdoc">Handler for mouse events sent by the Gaucamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:226</div></div> |
| <div class="ttc" id="client-types_8h_html"><div class="ttname"><a href="client-types_8h.html">client-types.h</a></div><div class="ttdoc">Type definitions related to the Guacamole client structure, guac_client. </div></div> |
| <div class="ttc" id="user_8h_html_af00042d94cb64fb8ac92cd84aff05bf8"><div class="ttname"><a href="user_8h.html#af00042d94cb64fb8ac92cd84aff05bf8">guac_user_stream_webp</a></div><div class="ttdeci">void guac_user_stream_webp(guac_user *user, guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, int x, int y, cairo_surface_t *surface, int quality, int lossless)</div><div class="ttdoc">Streams the image data of the given surface over an image stream ("img" instruction) as WebP-encoded ...</div></div> |
| <div class="ttc" id="structguac__object_html"><div class="ttname"><a href="structguac__object.html">guac_object</a></div><div class="ttdoc">Represents a single object within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> object.h:32</div></div> |
| <div class="ttc" id="structguac__user_html_af35d1f6f2c97d917bf88cf66384f58a3"><div class="ttname"><a href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3">guac_user::pipe_handler</a></div><div class="ttdeci">guac_user_pipe_handler * pipe_handler</div><div class="ttdoc">Handler for pipe events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:320</div></div> |
| <div class="ttc" id="user_8h_html_a8216ec7024947564fb4ea6b8b0b07eaf"><div class="ttname"><a href="user_8h.html#a8216ec7024947564fb4ea6b8b0b07eaf">guac_user_stop</a></div><div class="ttdeci">void guac_user_stop(guac_user *user)</div><div class="ttdoc">Signals the given user that it must disconnect, or advises cooperating services that the given user i...</div></div> |
| <div class="ttc" id="structguac__user_html_a77f042802092c8bbf4407836f3185343"><div class="ttname"><a href="structguac__user.html#a77f042802092c8bbf4407836f3185343">guac_user::clipboard_handler</a></div><div class="ttdeci">guac_user_clipboard_handler * clipboard_handler</div><div class="ttdoc">Handler for clipboard events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:265</div></div> |
| <div class="ttc" id="structguac__user_html_ad44c1bf6ab56aae0098458a1af2aa6be"><div class="ttname"><a href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be">guac_user::ack_handler</a></div><div class="ttdeci">guac_user_ack_handler * ack_handler</div><div class="ttdoc">Handler for ack events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:339</div></div> |
| <div class="ttc" id="structguac__user__info_html_ac05b09cce376e656f4e4baa19f888345"><div class="ttname"><a href="structguac__user__info.html#ac05b09cce376e656f4e4baa19f888345">guac_user_info::image_mimetypes</a></div><div class="ttdeci">const char ** image_mimetypes</div><div class="ttdoc">NULL-terminated array of client-supported image mimetypes. </div><div class="ttdef"><b>Definition:</b> user.h:81</div></div> |
| <div class="ttc" id="structguac__user_html_a265180af7291745b2e090ee6fa47cbb8"><div class="ttname"><a href="structguac__user.html#a265180af7291745b2e090ee6fa47cbb8">guac_user::owner</a></div><div class="ttdeci">int owner</div><div class="ttdoc">Non-zero if this user is the owner of the associated connection, zero otherwise. </div><div class="ttdef"><b>Definition:</b> user.h:120</div></div> |
| <div class="ttc" id="structguac__user_html_a391e11605bf5605df3e27f6f7d0e2c69"><div class="ttname"><a href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69">guac_user::audio_handler</a></div><div class="ttdeci">guac_user_audio_handler * audio_handler</div><div class="ttdoc">Handler for audio events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:476</div></div> |
| <div class="ttc" id="user_8h_html_a5f0bae838d82357e95e98769f7b98cd2"><div class="ttname"><a href="user_8h.html#a5f0bae838d82357e95e98769f7b98cd2">guac_user_parse_args_boolean</a></div><div class="ttdeci">int guac_user_parse_args_boolean(guac_user *user, const char **arg_names, const char **argv, int index, int default_value)</div><div class="ttdoc">Automatically handles a single boolean argument received from a joining user, returning the value of ...</div></div> |
| <div class="ttc" id="user-fntypes_8h_html"><div class="ttname"><a href="user-fntypes_8h.html">user-fntypes.h</a></div><div class="ttdoc">Function type definitions related to the guac_user object. </div></div> |
| <div class="ttc" id="user_8h_html_a28f08ab54f138796dea4655ef54526fe"><div class="ttname"><a href="user_8h.html#a28f08ab54f138796dea4655ef54526fe">guac_user_handle_connection</a></div><div class="ttdeci">int guac_user_handle_connection(guac_user *user, int usec_timeout)</div><div class="ttdoc">Handles all I/O for the portion of a user&#39;s Guacamole connection following the initial "select" instr...</div></div> |
| <div class="ttc" id="structguac__user_html_a36a2fee906be0898907ba6e4a97bdb9a"><div class="ttname"><a href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a">guac_user::size_handler</a></div><div class="ttdeci">guac_user_size_handler * size_handler</div><div class="ttdoc">Handler for size events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:282</div></div> |
| <div class="ttc" id="structguac__user__info_html_a496d5f3d26a7db0a0490afa553126c66"><div class="ttname"><a href="structguac__user__info.html#a496d5f3d26a7db0a0490afa553126c66">guac_user_info::optimal_width</a></div><div class="ttdeci">int optimal_width</div><div class="ttdoc">The number of pixels the remote client requests for the display width. </div><div class="ttdef"><b>Definition:</b> user.h:54</div></div> |
| <div class="ttc" id="structguac__user_html"><div class="ttname"><a href="structguac__user.html">guac_user</a></div><div class="ttdoc">Representation of a physical connection within a larger logical connection which may be shared...</div><div class="ttdef"><b>Definition:</b> user.h:94</div></div> |
| <div class="ttc" id="structguac__user__info_html"><div class="ttname"><a href="structguac__user__info.html">guac_user_info</a></div><div class="ttdoc">Information exposed by the remote client during the connection handshake which can be used by a clien...</div><div class="ttdef"><b>Definition:</b> user.h:46</div></div> |
| <div class="ttc" id="user-fntypes_8h_html_aead320956199884ff6af82d49d6163c1"><div class="ttname"><a href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a></div><div class="ttdeci">int guac_user_blob_handler(guac_user *user, guac_stream *stream, void *data, int length)</div><div class="ttdoc">Handler for Guacamole stream blobs. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:260</div></div> |
| <div class="ttc" id="structguac__user_html_a12f1c20cab11d657e0f255db10f42e2f"><div class="ttname"><a href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f">guac_user::leave_handler</a></div><div class="ttdeci">guac_user_leave_handler * leave_handler</div><div class="ttdoc">Handler for leave events fired by the guac_client when a guac_user is leaving an active connection...</div><div class="ttdef"><b>Definition:</b> user.h:414</div></div> |
| <div class="ttc" id="structguac__user__info_html_a252079af642b62554566e8675dc43354"><div class="ttname"><a href="structguac__user__info.html#a252079af642b62554566e8675dc43354">guac_user_info::optimal_height</a></div><div class="ttdeci">int optimal_height</div><div class="ttdoc">The number of pixels the remote client requests for the display height. </div><div class="ttdef"><b>Definition:</b> user.h:62</div></div> |
| <div class="ttc" id="pool-types_8h_html"><div class="ttname"><a href="pool-types_8h.html">pool-types.h</a></div><div class="ttdoc">Type definitions related to the guac_pool pool of unique integers. </div></div> |
| <div class="ttc" id="structguac__user_html_ac7e84b1bf15d3d15ba49ce58f1819060"><div class="ttname"><a href="structguac__user.html#ac7e84b1bf15d3d15ba49ce58f1819060">guac_user::last_frame_duration</a></div><div class="ttdeci">int last_frame_duration</div><div class="ttdoc">The duration of the last frame rendered by the user, in milliseconds. </div><div class="ttdef"><b>Definition:</b> user.h:157</div></div> |
| <div class="ttc" id="user_8h_html_a0303ef487d51b06bb0f007f1a5df0d78"><div class="ttname"><a href="user_8h.html#a0303ef487d51b06bb0f007f1a5df0d78">guac_user_handle_instruction</a></div><div class="ttdeci">int guac_user_handle_instruction(guac_user *user, const char *opcode, int argc, char **argv)</div><div class="ttdoc">Call the appropriate handler defined by the given user for the given instruction. ...</div></div> |
| <div class="ttc" id="user-fntypes_8h_html_a48d196c39615f6a1ff9b129267cb402e"><div class="ttname"><a href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">guac_user_key_handler</a></div><div class="ttdeci">int guac_user_key_handler(guac_user *user, int keysym, int pressed)</div><div class="ttdoc">Handler for Guacamole key events, invoked when a "key" event has been received from a user...</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:116</div></div> |
| <div class="ttc" id="structguac__user_html_a1b52d918f437923d65e9b3eecb20fcfd"><div class="ttname"><a href="structguac__user.html#a1b52d918f437923d65e9b3eecb20fcfd">guac_user::active</a></div><div class="ttdeci">int active</div><div class="ttdoc">Non-zero if this user is active (connected), and zero otherwise. </div><div class="ttdef"><b>Definition:</b> user.h:128</div></div> |
| <div class="ttc" id="user_8h_html_ab19481d0800901190d3d734eae466151"><div class="ttname"><a href="user_8h.html#ab19481d0800901190d3d734eae466151">guac_user_log</a></div><div class="ttdeci">void guac_user_log(guac_user *user, guac_client_log_level level, const char *format,...)</div><div class="ttdoc">Writes a message in the log used by the given user. </div></div> |
| <div class="ttc" id="structguac__user__info_html_ace535bea6879596b6473657f3fc83b57"><div class="ttname"><a href="structguac__user__info.html#ace535bea6879596b6473657f3fc83b57">guac_user_info::video_mimetypes</a></div><div class="ttdeci">const char ** video_mimetypes</div><div class="ttdoc">NULL-terminated array of client-supported video mimetypes. </div><div class="ttdef"><b>Definition:</b> user.h:74</div></div> |
| <div class="ttc" id="timestamp-types_8h_html_a69e916d1ff324fbe0e527f32359c9cea"><div class="ttname"><a href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a></div><div class="ttdeci">int64_t guac_timestamp</div><div class="ttdoc">An arbitrary timestamp denoting a relative time value in milliseconds. </div><div class="ttdef"><b>Definition:</b> timestamp-types.h:34</div></div> |
| <div class="ttc" id="user-fntypes_8h_html_a6c24aa9dee9ee4be3f3d21e1e24b9e3e"><div class="ttname"><a href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">guac_user_file_handler</a></div><div class="ttdeci">int guac_user_file_handler(guac_user *user, guac_stream *stream, char *mimetype, char *filename)</div><div class="ttdoc">Handler for Guacamole file streams received from a user. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:208</div></div> |
| <div class="ttc" id="user-fntypes_8h_html_a1658ce15f8c6fe958e873015e12aeed9"><div class="ttname"><a href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">guac_user_clipboard_handler</a></div><div class="ttdeci">int guac_user_clipboard_handler(guac_user *user, guac_stream *stream, char *mimetype)</div><div class="ttdoc">Handler for Guacamole clipboard streams received from a user. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:161</div></div> |
| <div class="ttc" id="structguac__client_html"><div class="ttname"><a href="structguac__client.html">guac_client</a></div><div class="ttdoc">Guacamole proxy client. </div><div class="ttdef"><b>Definition:</b> client.h:46</div></div> |
| <div class="ttc" id="user_8h_html_a3b3c740837b8e2cae6a232b45ca362f4"><div class="ttname"><a href="user_8h.html#a3b3c740837b8e2cae6a232b45ca362f4">guac_user_free_stream</a></div><div class="ttdeci">void guac_user_free_stream(guac_user *user, guac_stream *stream)</div><div class="ttdoc">Returns the given stream to the pool of available streams, such that it can be reused by any subseque...</div></div> |
| <div class="ttc" id="user_8h_html_a08f6fd4d84de665487a45fb324dc8844"><div class="ttname"><a href="user_8h.html#a08f6fd4d84de665487a45fb324dc8844">guac_user_parse_args_int</a></div><div class="ttdeci">int guac_user_parse_args_int(guac_user *user, const char **arg_names, const char **argv, int index, int default_value)</div><div class="ttdoc">Automatically handles a single integer argument received from a joining user, returning the integer v...</div></div> |
| <div class="ttc" id="structguac__user__info_html_a043432620dafe7ba38fcd3550fdc7d27"><div class="ttname"><a href="structguac__user__info.html#a043432620dafe7ba38fcd3550fdc7d27">guac_user_info::audio_mimetypes</a></div><div class="ttdeci">const char ** audio_mimetypes</div><div class="ttdoc">NULL-terminated array of client-supported audio mimetypes. </div><div class="ttdef"><b>Definition:</b> user.h:68</div></div> |
| <div class="ttc" id="structguac__pool_html"><div class="ttname"><a href="structguac__pool.html">guac_pool</a></div><div class="ttdoc">A pool of integers. </div><div class="ttdef"><b>Definition:</b> pool.h:34</div></div> |
| <div class="ttc" id="user-fntypes_8h_html_a88f4b7af6d47c82f65e9332afcc7ab09"><div class="ttname"><a href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a></div><div class="ttdeci">int guac_user_ack_handler(guac_user *user, guac_stream *stream, char *error, guac_protocol_status status)</div><div class="ttdoc">Handler for Guacamole stream "ack" instructions. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:289</div></div> |
| <div class="ttc" id="user_8h_html_a35a47c81b581f7aff3eb04c2a6d35b7c"><div class="ttname"><a href="user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c">guac_user_alloc_stream</a></div><div class="ttdeci">guac_stream * guac_user_alloc_stream(guac_user *user)</div><div class="ttdoc">Allocates a new stream. </div></div> |
| <div class="ttc" id="user_8h_html_a7e0e1220fd00fd769b8e6b731f8c9bf8"><div class="ttname"><a href="user_8h.html#a7e0e1220fd00fd769b8e6b731f8c9bf8">guac_user_free</a></div><div class="ttdeci">void guac_user_free(guac_user *user)</div><div class="ttdoc">Frees the given user and all associated resources. </div></div> |
| <div class="ttc" id="structguac__user_html_a8496638b8c4c52f5f15d483b92becf27"><div class="ttname"><a href="structguac__user.html#a8496638b8c4c52f5f15d483b92becf27">guac_user::socket</a></div><div class="ttdeci">guac_socket * socket</div><div class="ttdoc">This user&#39;s actual socket. </div><div class="ttdef"><b>Definition:</b> user.h:106</div></div> |
| <div class="ttc" id="user-fntypes_8h_html_ab7ae6833c33b39618a8b78603581ff79"><div class="ttname"><a href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">guac_user_pipe_handler</a></div><div class="ttdeci">int guac_user_pipe_handler(guac_user *user, guac_stream *stream, char *mimetype, char *name)</div><div class="ttdoc">Handler for Guacamole pipe streams received from a user. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:237</div></div> |
| <div class="ttc" id="user_8h_html_a7530b31b5a621a4f68fdce4bee2bdc5f"><div class="ttname"><a href="user_8h.html#a7530b31b5a621a4f68fdce4bee2bdc5f">guac_user_parse_args_string</a></div><div class="ttdeci">char * guac_user_parse_args_string(guac_user *user, const char **arg_names, const char **argv, int index, const char *default_value)</div><div class="ttdoc">Automatically handles a single argument received from a joining user, returning a newly-allocated str...</div></div> |
| <div class="ttc" id="user-fntypes_8h_html_afd4c60871cc2dbbbdc82f58ae1c5baa0"><div class="ttname"><a href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a></div><div class="ttdeci">int guac_user_put_handler(guac_user *user, guac_object *object, guac_stream *stream, char *mimetype, char *name)</div><div class="ttdoc">Handler for Guacamole object put requests. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:424</div></div> |
| <div class="ttc" id="layer-types_8h_html"><div class="ttname"><a href="layer-types_8h.html">layer-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole layers. </div></div> |
| <div class="ttc" id="user-fntypes_8h_html_aaa5806d288a42d93a54864b6c35617b8"><div class="ttname"><a href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a></div><div class="ttdeci">int guac_user_leave_handler(guac_user *user)</div><div class="ttdoc">Handler for Guacamole leave events. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:355</div></div> |
| <div class="ttc" id="protocol-types_8h_html_a93612063886db58071d02b5393abf186"><div class="ttname"><a href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a></div><div class="ttdeci">guac_composite_mode</div><div class="ttdoc">Composite modes used by Guacamole draw instructions. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:170</div></div> |
| <div class="ttc" id="user_8h_html_a0eff54a869374e37237b2006ad77b958"><div class="ttname"><a href="user_8h.html#a0eff54a869374e37237b2006ad77b958">guac_user_abort</a></div><div class="ttdeci">void guac_user_abort(guac_user *user, guac_protocol_status status, const char *format,...)</div><div class="ttdoc">Signals the given user to stop gracefully, while also signalling via the Guacamole protocol that an e...</div></div> |
| <div class="ttc" id="user_8h_html_a6e947ee6996d5711f18d5b785757ccb3"><div class="ttname"><a href="user_8h.html#a6e947ee6996d5711f18d5b785757ccb3">guac_user_stream_jpeg</a></div><div class="ttdeci">void guac_user_stream_jpeg(guac_user *user, guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, int x, int y, cairo_surface_t *surface, int quality)</div><div class="ttdoc">Streams the image data of the given surface over an image stream ("img" instruction) as JPEG-encoded ...</div></div> |
| <div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a></div><div class="ttdeci">guac_protocol_status</div><div class="ttdoc">Set of all possible status codes returned by protocol operations. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:44</div></div> |
| <div class="ttc" id="structguac__layer_html"><div class="ttname"><a href="structguac__layer.html">guac_layer</a></div><div class="ttdoc">Represents a single layer within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> layer.h:34</div></div> |
| <div class="ttc" id="structguac__stream_html"><div class="ttname"><a href="structguac__stream.html">guac_stream</a></div><div class="ttdoc">Represents a single stream within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> stream.h:32</div></div> |
| <div class="ttc" id="structguac__user_html_a5e296149a26932dfeb7d8b0bac933ecf"><div class="ttname"><a href="structguac__user.html#a5e296149a26932dfeb7d8b0bac933ecf">guac_user::client</a></div><div class="ttdeci">guac_client * client</div><div class="ttdoc">The guac_client to which this user belongs. </div><div class="ttdef"><b>Definition:</b> user.h:99</div></div> |
| <div class="ttc" id="user_8h_html_ad8529247b551cb93509236a7f9138dd2"><div class="ttname"><a href="user_8h.html#ad8529247b551cb93509236a7f9138dd2">vguac_user_abort</a></div><div class="ttdeci">void vguac_user_abort(guac_user *user, guac_protocol_status status, const char *format, va_list ap)</div><div class="ttdoc">Signals the given user to stop gracefully, while also signalling via the Guacamole protocol that an e...</div></div> |
| <div class="ttc" id="user_8h_html_acf92065fb6bbc92f9794ea50255acdb9"><div class="ttname"><a href="user_8h.html#acf92065fb6bbc92f9794ea50255acdb9">guac_user_free_object</a></div><div class="ttdeci">void guac_user_free_object(guac_user *user, guac_object *object)</div><div class="ttdoc">Returns the given object to the pool of available objects, such that it can be reused by any subseque...</div></div> |
| <div class="ttc" id="client-types_8h_html_adfeeb4ff06541220c91ce3401d840727"><div class="ttname"><a href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a></div><div class="ttdeci">guac_client_log_level</div><div class="ttdoc">All supported log levels used by the logging subsystem of each Guacamole client. </div><div class="ttdef"><b>Definition:</b> client-types.h:62</div></div> |
| <div class="ttc" id="structguac__user_html_a0b33553d0e1af01d8c9fbc6ec33202c3"><div class="ttname"><a href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3">guac_user::put_handler</a></div><div class="ttdeci">guac_user_put_handler * put_handler</div><div class="ttdoc">Handler for put events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:454</div></div> |
| <div class="ttc" id="user_8h_html_a586cd1d712dce0db02d57684ddcb02ef"><div class="ttname"><a href="user_8h.html#a586cd1d712dce0db02d57684ddcb02ef">guac_user_alloc</a></div><div class="ttdeci">guac_user * guac_user_alloc()</div><div class="ttdoc">Allocates a new, blank user, not associated with any specific client or socket. </div></div> |
| <div class="ttc" id="user_8h_html_a35e4c7ba75a16c0b512d543ef4fe9630"><div class="ttname"><a href="user_8h.html#a35e4c7ba75a16c0b512d543ef4fe9630">guac_user_stream_png</a></div><div class="ttdeci">void guac_user_stream_png(guac_user *user, guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, int x, int y, cairo_surface_t *surface)</div><div class="ttdoc">Streams the image data of the given surface over an image stream ("img" instruction) as PNG-encoded d...</div></div> |
| <div class="ttc" id="structguac__user_html_aad1c6a8b56d17c12eb1f1e36c4798c70"><div class="ttname"><a href="structguac__user.html#aad1c6a8b56d17c12eb1f1e36c4798c70">guac_user::user_id</a></div><div class="ttdeci">char * user_id</div><div class="ttdoc">The unique identifier allocated for this user, which may be used within the Guacamole protocol to ref...</div><div class="ttdef"><b>Definition:</b> user.h:114</div></div> |
| <div class="ttc" id="timestamp-types_8h_html"><div class="ttname"><a href="timestamp-types_8h.html">timestamp-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol timestamps. </div></div> |
| <div class="ttc" id="user-types_8h_html"><div class="ttname"><a href="user-types_8h.html">user-types.h</a></div><div class="ttdoc">Type definitions related to the guac_user object. </div></div> |
| <div class="ttc" id="user-constants_8h_html"><div class="ttname"><a href="user-constants_8h.html">user-constants.h</a></div><div class="ttdoc">Constants related to the Guacamole user structure, guac_user. </div></div> |
| </div><!-- fragment --></div><!-- contents --> |
| <!-- start footer part --> |
| <hr class="footer"/><address class="footer"><small> |
| Generated by  <a href="http://www.doxygen.org/index.html"> |
| <img class="footer" src="doxygen.png" alt="doxygen"/> |
| </a> 1.8.14 |
| </small></address> |
| <!-- Google Analytics --> |
| <script type="text/javascript"> |
| (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ |
| (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), |
| m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) |
| })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); |
| |
| ga('create', 'UA-75289145-1', 'auto'); |
| ga('send', 'pageview'); |
| </script> |
| </body> |
| </html> |