<!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.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>libguac: Globals</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
   &#160;<span id="projectnumber">0.9.14</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- 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 class="contents">
<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>

<h3><a id="index_c"></a>- c -</h3><ul>
<li>guac_client_abort()
: <a class="el" href="client_8h.html#a62a29f7820deaff00a10ec79aa81aed4">client.h</a>
</li>
<li>guac_client_add_user()
: <a class="el" href="client_8h.html#af66d105dfd1453ec46b423e6b25fa371">client.h</a>
</li>
<li>guac_client_alloc()
: <a class="el" href="client_8h.html#a33bad42d21ccb561aa71c4f04ae9b22a">client.h</a>
</li>
<li>guac_client_alloc_buffer()
: <a class="el" href="client_8h.html#af661d3fedd9683631bdc7d1e3205e379">client.h</a>
</li>
<li>guac_client_alloc_layer()
: <a class="el" href="client_8h.html#a2085758db585bb9d09d3860ec0fc9587">client.h</a>
</li>
<li>guac_client_alloc_stream()
: <a class="el" href="client_8h.html#a1bea3499e21736b4ea0fb949d3bc8ab9">client.h</a>
</li>
<li>guac_client_end_frame()
: <a class="el" href="client_8h.html#a686fc65f5b1afcc3f3b53e36cd1a2ebc">client.h</a>
</li>
<li>guac_client_for_owner()
: <a class="el" href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a">client.h</a>
</li>
<li>guac_client_for_user()
: <a class="el" href="client_8h.html#a7fbba296d1ec3e78dc4b79884f590a03">client.h</a>
</li>
<li>guac_client_foreach_user()
: <a class="el" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077">client.h</a>
</li>
<li>guac_client_free()
: <a class="el" href="client_8h.html#a76cdc454a23fdcbb70d56f923f6b6427">client.h</a>
</li>
<li>guac_client_free_buffer()
: <a class="el" href="client_8h.html#afc03a32b3113d9a95700cac54f1cbd4b">client.h</a>
</li>
<li>guac_client_free_handler
: <a class="el" href="client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577">client-fntypes.h</a>
</li>
<li>guac_client_free_layer()
: <a class="el" href="client_8h.html#a4e5b374211012d1897792335112dcb89">client.h</a>
</li>
<li>guac_client_free_stream()
: <a class="el" href="client_8h.html#af0103a5aae8ba76badd2e68e827f6782">client.h</a>
</li>
<li>guac_client_get_processing_lag()
: <a class="el" href="client_8h.html#aa2b94b3145fcebf2d7b1999df11d0b2c">client.h</a>
</li>
<li>guac_client_init_handler
: <a class="el" href="client-fntypes_8h.html#a905b087a47315e1836293839daf1f46c">client-fntypes.h</a>
</li>
<li>guac_client_load_plugin()
: <a class="el" href="client_8h.html#afa2b90d686c56cf753c36718ec085f35">client.h</a>
</li>
<li>guac_client_log()
: <a class="el" href="client_8h.html#ad53666bbe29346497cabb04fc9628208">client.h</a>
</li>
<li>guac_client_log_handler
: <a class="el" href="client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c">client-fntypes.h</a>
</li>
<li>guac_client_log_level
: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">client-types.h</a>
</li>
<li>guac_client_remove_user()
: <a class="el" href="client_8h.html#a02832d5be5330dc3de524b497b7c6dfa">client.h</a>
</li>
<li>guac_client_state
: <a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">client-types.h</a>
</li>
<li>guac_client_stop()
: <a class="el" href="client_8h.html#a022d4b5587c84f2963b176ab7999aa1b">client.h</a>
</li>
<li>guac_client_stream_jpeg()
: <a class="el" href="client_8h.html#aa51ede155ad7777bc8d2e82aa6e779bf">client.h</a>
</li>
<li>guac_client_stream_png()
: <a class="el" href="client_8h.html#a317b9d79afd0b0b473d7d359e0c33750">client.h</a>
</li>
<li>guac_client_stream_webp()
: <a class="el" href="client_8h.html#a55adbd5ee8f27c4df4394dbb5bf9416e">client.h</a>
</li>
<li>guac_client_supports_webp()
: <a class="el" href="client_8h.html#a79cc74558e8f64807ea2847fbacd20e3">client.h</a>
</li>
<li>guac_composite_mode
: <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">protocol-types.h</a>
</li>
<li>vguac_client_abort()
: <a class="el" href="client_8h.html#a4c0eccd7d0ed3dbf3e7941ce297e0224">client.h</a>
</li>
<li>vguac_client_log()
: <a class="el" href="client_8h.html#a37a0fa9cfc4c02236085e3852972f494">client.h</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</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>
