| <!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" lang="en-US"> |
| <head> |
| <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> |
| <meta http-equiv="X-UA-Compatible" content="IE=11"/> |
| <meta name="generator" content="Doxygen 1.13.2"/> |
| <meta name="viewport" content="width=device-width, initial-scale=1"/> |
| <title>libguac-terminal: terminal/terminal.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> |
| <script type="text/javascript" src="clipboard.js"></script> |
| <link href="navtree.css" rel="stylesheet" type="text/css"/> |
| <script type="text/javascript" src="navtreedata.js"></script> |
| <script type="text/javascript" src="navtree.js"></script> |
| <script type="text/javascript" src="resize.js"></script> |
| <script type="text/javascript" src="cookie.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> |
| <script type="text/javascript"> |
| /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ |
| $(function() { init_search(); }); |
| /* @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 id="projectrow"> |
| <td id="projectalign"> |
| <div id="projectname">libguac-terminal<span id="projectnumber"> 1.6.0</span> |
| </div> |
| </td> |
| <td> <div id="MSearchBox" class="MSearchBoxInactive"> |
| <span class="left"> |
| <span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span> |
| <input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S" |
| onfocus="searchBox.OnSearchFieldFocus(true)" |
| onblur="searchBox.OnSearchFieldFocus(false)" |
| onkeyup="searchBox.OnSearchFieldChange(event)"/> |
| </span><span class="right"> |
| <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a> |
| </span> |
| </div> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| <!-- end header part --> |
| <!-- Generated by Doxygen 1.13.2 --> |
| <script type="text/javascript"> |
| /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ |
| var searchBox = new SearchBox("searchBox", "search/",'.html'); |
| /* @license-end */ |
| </script> |
| <script type="text/javascript"> |
| /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ |
| $(function() { codefold.init(0); }); |
| /* @license-end */ |
| </script> |
| </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:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ |
| $(function(){initNavTree('terminal_8h.html',''); initResizable(true); }); |
| /* @license-end */ |
| </script> |
| <div id="doc-content"> |
| <!-- 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"> |
| <div id="MSearchResults"> |
| <div class="SRPage"> |
| <div id="SRIndex"> |
| <div id="SRResults"></div> |
| <div class="SRStatus" id="Loading">Loading...</div> |
| <div class="SRStatus" id="Searching">Searching...</div> |
| <div class="SRStatus" id="NoMatches">No Matches</div> |
| </div> |
| </div> |
| </div> |
| </div> |
| |
| <div class="header"> |
| <div class="summary"> |
| <a href="#nested-classes">Data Structures</a> | |
| <a href="#define-members">Macros</a> | |
| <a href="#typedef-members">Typedefs</a> | |
| <a href="#enum-members">Enumerations</a> | |
| <a href="#func-members">Functions</a> </div> |
| <div class="headertitle"><div class="title">terminal.h File Reference</div></div> |
| </div><!--header--> |
| <div class="contents"> |
| |
| <p>Constants, structures, and function definitions defining the core functionality for the terminal library. |
| <a href="#details">More...</a></p> |
| |
| <p><a href="terminal_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 id="nested-classes" name="nested-classes"></a> |
| Data Structures</h2></td></tr> |
| <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__terminal__options.html">guac_terminal_options</a></td></tr> |
| <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Configuration options that may be passed when creating a new <a class="el" href="#a49f29d5b500f0d3089e85e0b00903030" title="Represents a terminal emulator which uses a given Guacamole client to render itself.">guac_terminal</a>. <a href="structguac__terminal__options.html#details">More...</a><br /></td></tr> |
| <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a> |
| Macros</h2></td></tr> |
| <tr class="memitem:a08b2a9f1f0e07affc598cddc32896002" id="r_a08b2a9f1f0e07affc598cddc32896002"><td class="memItemLeft" align="right" valign="top"><a id="a08b2a9f1f0e07affc598cddc32896002" name="a08b2a9f1f0e07affc598cddc32896002"></a> |
| #define </td><td class="memItemRight" valign="bottom"><b>GUAC_TERMINAL_DEFAULT_FONT_NAME</b>   "monospace"</td></tr> |
| <tr class="memdesc:a08b2a9f1f0e07affc598cddc32896002"><td class="mdescLeft"> </td><td class="mdescRight">The name of the font to use for the terminal if no name is specified. <br /></td></tr> |
| <tr class="separator:a08b2a9f1f0e07affc598cddc32896002"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a76572f3ea28fd3c26838a31d4717d09e" id="r_a76572f3ea28fd3c26838a31d4717d09e"><td class="memItemLeft" align="right" valign="top"><a id="a76572f3ea28fd3c26838a31d4717d09e" name="a76572f3ea28fd3c26838a31d4717d09e"></a> |
| #define </td><td class="memItemRight" valign="bottom"><b>GUAC_TERMINAL_DEFAULT_FONT_SIZE</b>   12</td></tr> |
| <tr class="memdesc:a76572f3ea28fd3c26838a31d4717d09e"><td class="mdescLeft"> </td><td class="mdescRight">The size of the font to use for the terminal if no font size is specified, in points. <br /></td></tr> |
| <tr class="separator:a76572f3ea28fd3c26838a31d4717d09e"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a30dbc78ba6df56a52b4a0313b8224ece" id="r_a30dbc78ba6df56a52b4a0313b8224ece"><td class="memItemLeft" align="right" valign="top"><a id="a30dbc78ba6df56a52b4a0313b8224ece" name="a30dbc78ba6df56a52b4a0313b8224ece"></a> |
| #define </td><td class="memItemRight" valign="bottom"><b>GUAC_TERMINAL_DEFAULT_MAX_SCROLLBACK</b>   1000</td></tr> |
| <tr class="memdesc:a30dbc78ba6df56a52b4a0313b8224ece"><td class="mdescLeft"> </td><td class="mdescRight">The default maximum scrollback size in rows. <br /></td></tr> |
| <tr class="separator:a30dbc78ba6df56a52b4a0313b8224ece"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a1b116c6cb561155716105707bccb3717" id="r_a1b116c6cb561155716105707bccb3717"><td class="memItemLeft" align="right" valign="top"><a id="a1b116c6cb561155716105707bccb3717" name="a1b116c6cb561155716105707bccb3717"></a> |
| #define </td><td class="memItemRight" valign="bottom"><b>GUAC_TERMINAL_DEFAULT_BACKSPACE</b>   127</td></tr> |
| <tr class="memdesc:a1b116c6cb561155716105707bccb3717"><td class="mdescLeft"> </td><td class="mdescRight">The default ASCII code to use for the backspace key. <br /></td></tr> |
| <tr class="separator:a1b116c6cb561155716105707bccb3717"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ae7892fe7958723b8fe158327346c7813" id="r_ae7892fe7958723b8fe158327346c7813"><td class="memItemLeft" align="right" valign="top"><a id="ae7892fe7958723b8fe158327346c7813" name="ae7892fe7958723b8fe158327346c7813"></a> |
| #define </td><td class="memItemRight" valign="bottom"><b>GUAC_TERMINAL_DEFAULT_COLOR_SCHEME</b>   ""</td></tr> |
| <tr class="memdesc:ae7892fe7958723b8fe158327346c7813"><td class="mdescLeft"> </td><td class="mdescRight">The default (unset) color scheme. <br /></td></tr> |
| <tr class="separator:ae7892fe7958723b8fe158327346c7813"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a09130929dc39674d01e52b0205fe34b6" id="r_a09130929dc39674d01e52b0205fe34b6"><td class="memItemLeft" align="right" valign="top"><a id="a09130929dc39674d01e52b0205fe34b6" name="a09130929dc39674d01e52b0205fe34b6"></a> |
| #define </td><td class="memItemRight" valign="bottom"><b>GUAC_TERMINAL_DEFAULT_DISABLE_COPY</b>   false</td></tr> |
| <tr class="memdesc:a09130929dc39674d01e52b0205fe34b6"><td class="mdescLeft"> </td><td class="mdescRight">The default value for the "disable copy" flag; by default copying is enabled. <br /></td></tr> |
| <tr class="separator:a09130929dc39674d01e52b0205fe34b6"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:acbbd3d6794500b30d5e6a3e489cbc271" id="r_acbbd3d6794500b30d5e6a3e489cbc271"><td class="memItemLeft" align="right" valign="top"><a id="acbbd3d6794500b30d5e6a3e489cbc271" name="acbbd3d6794500b30d5e6a3e489cbc271"></a> |
| #define </td><td class="memItemRight" valign="bottom"><b>GUAC_TERMINAL_MAX_ROWS</b>   1024</td></tr> |
| <tr class="memdesc:acbbd3d6794500b30d5e6a3e489cbc271"><td class="mdescLeft"> </td><td class="mdescRight">The absolute maximum number of rows to allow within the display. <br /></td></tr> |
| <tr class="separator:acbbd3d6794500b30d5e6a3e489cbc271"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a8f3db65a4ad44dafbc25dfecbdee7dcc" id="r_a8f3db65a4ad44dafbc25dfecbdee7dcc"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="#a8f3db65a4ad44dafbc25dfecbdee7dcc">GUAC_TERMINAL_MAX_COLUMNS</a>   1024</td></tr> |
| <tr class="memdesc:a8f3db65a4ad44dafbc25dfecbdee7dcc"><td class="mdescLeft"> </td><td class="mdescRight">The absolute maximum number of columns to allow within the display. <br /></td></tr> |
| <tr class="separator:a8f3db65a4ad44dafbc25dfecbdee7dcc"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a4e83cd4056313f6efa873e25d05fb4c3" id="r_a4e83cd4056313f6efa873e25d05fb4c3"><td class="memItemLeft" align="right" valign="top"><a id="a4e83cd4056313f6efa873e25d05fb4c3" name="a4e83cd4056313f6efa873e25d05fb4c3"></a> |
| #define </td><td class="memItemRight" valign="bottom"><b>GUAC_TERMINAL_FRAME_DURATION</b>   40</td></tr> |
| <tr class="memdesc:a4e83cd4056313f6efa873e25d05fb4c3"><td class="mdescLeft"> </td><td class="mdescRight">The maximum duration of a single frame, in milliseconds. <br /></td></tr> |
| <tr class="separator:a4e83cd4056313f6efa873e25d05fb4c3"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:aeb3907197ea200371fd7bd7d1a389ab5" id="r_aeb3907197ea200371fd7bd7d1a389ab5"><td class="memItemLeft" align="right" valign="top"><a id="aeb3907197ea200371fd7bd7d1a389ab5" name="aeb3907197ea200371fd7bd7d1a389ab5"></a> |
| #define </td><td class="memItemRight" valign="bottom"><b>GUAC_TERMINAL_FRAME_TIMEOUT</b>   10</td></tr> |
| <tr class="memdesc:aeb3907197ea200371fd7bd7d1a389ab5"><td class="mdescLeft"> </td><td class="mdescRight">The maximum amount of time to wait for more data before declaring a frame complete, in milliseconds. <br /></td></tr> |
| <tr class="separator:aeb3907197ea200371fd7bd7d1a389ab5"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ac929b2e9552426cd076d95fde2c20f18" id="r_ac929b2e9552426cd076d95fde2c20f18"><td class="memItemLeft" align="right" valign="top"><a id="ac929b2e9552426cd076d95fde2c20f18" name="ac929b2e9552426cd076d95fde2c20f18"></a> |
| #define </td><td class="memItemRight" valign="bottom"><b>GUAC_TERMINAL_MAX_TABS</b>   16</td></tr> |
| <tr class="memdesc:ac929b2e9552426cd076d95fde2c20f18"><td class="mdescLeft"> </td><td class="mdescRight">The maximum number of custom tab stops. <br /></td></tr> |
| <tr class="separator:ac929b2e9552426cd076d95fde2c20f18"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ae1d4c8037ede662adb826f6a5820ff95" id="r_ae1d4c8037ede662adb826f6a5820ff95"><td class="memItemLeft" align="right" valign="top"><a id="ae1d4c8037ede662adb826f6a5820ff95" name="ae1d4c8037ede662adb826f6a5820ff95"></a> |
| #define </td><td class="memItemRight" valign="bottom"><b>GUAC_TERMINAL_WHEEL_SCROLL_AMOUNT</b>   3</td></tr> |
| <tr class="memdesc:ae1d4c8037ede662adb826f6a5820ff95"><td class="mdescLeft"> </td><td class="mdescRight">The number of rows to scroll per scroll wheel event. <br /></td></tr> |
| <tr class="separator:ae1d4c8037ede662adb826f6a5820ff95"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a001b84c7d72fed361d8cd93b3418c63a" id="r_a001b84c7d72fed361d8cd93b3418c63a"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="#a001b84c7d72fed361d8cd93b3418c63a">GUAC_TERMINAL_PIPE_INTERPRET_OUTPUT</a>   1</td></tr> |
| <tr class="memdesc:a001b84c7d72fed361d8cd93b3418c63a"><td class="mdescLeft"> </td><td class="mdescRight">Flag which specifies that terminal output should be sent to both the current pipe stream and the user's display. <br /></td></tr> |
| <tr class="separator:a001b84c7d72fed361d8cd93b3418c63a"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a90c94177f90d1b16de286c3498c08c26" id="r_a90c94177f90d1b16de286c3498c08c26"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="#a90c94177f90d1b16de286c3498c08c26">GUAC_TERMINAL_PIPE_AUTOFLUSH</a>   2</td></tr> |
| <tr class="memdesc:a90c94177f90d1b16de286c3498c08c26"><td class="mdescLeft"> </td><td class="mdescRight">Flag which forces the open pipe stream to be flushed automatically, whenever a new frame would be rendered, with only minimal buffering performed between frames. <br /></td></tr> |
| <tr class="separator:a90c94177f90d1b16de286c3498c08c26"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a> |
| Typedefs</h2></td></tr> |
| <tr class="memitem:a49f29d5b500f0d3089e85e0b00903030" id="r_a49f29d5b500f0d3089e85e0b00903030"><td class="memItemLeft" align="right" valign="top"><a id="a49f29d5b500f0d3089e85e0b00903030" name="a49f29d5b500f0d3089e85e0b00903030"></a> |
| typedef struct <a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> </td><td class="memItemRight" valign="bottom"><b>guac_terminal</b></td></tr> |
| <tr class="memdesc:a49f29d5b500f0d3089e85e0b00903030"><td class="mdescLeft"> </td><td class="mdescRight">Represents a terminal emulator which uses a given Guacamole client to render itself. <br /></td></tr> |
| <tr class="separator:a49f29d5b500f0d3089e85e0b00903030"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a356cbe7fd894f73690eae185b38c6079" id="r_a356cbe7fd894f73690eae185b38c6079"><td class="memItemLeft" align="right" valign="top">typedef void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a356cbe7fd894f73690eae185b38c6079">guac_terminal_upload_path_handler</a>(guac_client *client, char *path)</td></tr> |
| <tr class="memdesc:a356cbe7fd894f73690eae185b38c6079"><td class="mdescLeft"> </td><td class="mdescRight">Handler that is invoked whenever the necessary terminal codes are sent to to the given terminal to change the path for future file uploads. <br /></td></tr> |
| <tr class="separator:a356cbe7fd894f73690eae185b38c6079"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a292a4a16877319e6f37311d23a9cbee5" id="r_a292a4a16877319e6f37311d23a9cbee5"><td class="memItemLeft" align="right" valign="top">typedef guac_stream * </td><td class="memItemRight" valign="bottom"><a class="el" href="#a292a4a16877319e6f37311d23a9cbee5">guac_terminal_file_download_handler</a>(guac_client *client, char *filename)</td></tr> |
| <tr class="memdesc:a292a4a16877319e6f37311d23a9cbee5"><td class="mdescLeft"> </td><td class="mdescRight">Handler that is invoked whenever the necessary terminal codes are sent to initiate a download of a given remote file. <br /></td></tr> |
| <tr class="separator:a292a4a16877319e6f37311d23a9cbee5"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a> |
| Enumerations</h2></td></tr> |
| <tr class="memitem:a60ac805147521dc2e17ee6e9278c0cc3" id="r_a60ac805147521dc2e17ee6e9278c0cc3"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="#a60ac805147521dc2e17ee6e9278c0cc3">guac_terminal_cursor_type</a> { <a class="el" href="#a60ac805147521dc2e17ee6e9278c0cc3ac3449f4024e8d83fd76e83e1a6acdb76">GUAC_TERMINAL_CURSOR_BLANK</a> |
| , <a class="el" href="#a60ac805147521dc2e17ee6e9278c0cc3abf079c8f86b20117d8eb30eae7e3f58a">GUAC_TERMINAL_CURSOR_IBAR</a> |
| , <a class="el" href="#a60ac805147521dc2e17ee6e9278c0cc3af7891c31bea1625943f6b590c73d8bff">GUAC_TERMINAL_CURSOR_POINTER</a> |
| }</td></tr> |
| <tr class="memdesc:a60ac805147521dc2e17ee6e9278c0cc3"><td class="mdescLeft"> </td><td class="mdescRight">All possible mouse cursors used by the terminal emulator. <a href="#a60ac805147521dc2e17ee6e9278c0cc3">More...</a><br /></td></tr> |
| <tr class="separator:a60ac805147521dc2e17ee6e9278c0cc3"><td class="memSeparator" colspan="2"> </td></tr> |
| </table><table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a> |
| Functions</h2></td></tr> |
| <tr class="memitem:a9cd1e1e97b22a94039edd45936d4e2bc" id="r_a9cd1e1e97b22a94039edd45936d4e2bc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="#a9cd1e1e97b22a94039edd45936d4e2bc">guac_terminal_create</a> (guac_client *client, <a class="el" href="structguac__terminal__options.html">guac_terminal_options</a> *terminal_options)</td></tr> |
| <tr class="memdesc:a9cd1e1e97b22a94039edd45936d4e2bc"><td class="mdescLeft"> </td><td class="mdescRight">Creates a new <a class="el" href="#a49f29d5b500f0d3089e85e0b00903030" title="Represents a terminal emulator which uses a given Guacamole client to render itself.">guac_terminal</a>, having the given width and height, and rendering to the given client. <br /></td></tr> |
| <tr class="separator:a9cd1e1e97b22a94039edd45936d4e2bc"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a20aaad95ef78122a0dc9635065910b8c" id="r_a20aaad95ef78122a0dc9635065910b8c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__terminal__options.html">guac_terminal_options</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="#a20aaad95ef78122a0dc9635065910b8c">guac_terminal_options_create</a> (int width, int height, int dpi)</td></tr> |
| <tr class="memdesc:a20aaad95ef78122a0dc9635065910b8c"><td class="mdescLeft"> </td><td class="mdescRight">Create a new <a class="el" href="structguac__terminal__options.html" title="Configuration options that may be passed when creating a new guac_terminal.">guac_terminal_options</a> struct. <br /></td></tr> |
| <tr class="separator:a20aaad95ef78122a0dc9635065910b8c"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:abe31fc459c88d8f5ee8817839b930374" id="r_abe31fc459c88d8f5ee8817839b930374"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#abe31fc459c88d8f5ee8817839b930374">guac_terminal_free</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *term)</td></tr> |
| <tr class="memdesc:abe31fc459c88d8f5ee8817839b930374"><td class="mdescLeft"> </td><td class="mdescRight">Frees all resources associated with the given terminal. <br /></td></tr> |
| <tr class="separator:abe31fc459c88d8f5ee8817839b930374"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a38376ea497a267c989e1a4683ffbb4d4" id="r_a38376ea497a267c989e1a4683ffbb4d4"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a38376ea497a267c989e1a4683ffbb4d4">guac_terminal_set_upload_path_handler</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *terminal, <a class="el" href="#a356cbe7fd894f73690eae185b38c6079">guac_terminal_upload_path_handler</a> *upload_path_handler)</td></tr> |
| <tr class="memdesc:a38376ea497a267c989e1a4683ffbb4d4"><td class="mdescLeft"> </td><td class="mdescRight">Sets the upload path handler for the given terminal. <br /></td></tr> |
| <tr class="separator:a38376ea497a267c989e1a4683ffbb4d4"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:aaf1ce41caa5967880522367f9c122eb4" id="r_aaf1ce41caa5967880522367f9c122eb4"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#aaf1ce41caa5967880522367f9c122eb4">guac_terminal_set_file_download_handler</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *terminal, <a class="el" href="#a292a4a16877319e6f37311d23a9cbee5">guac_terminal_file_download_handler</a> *file_download_handler)</td></tr> |
| <tr class="memdesc:aaf1ce41caa5967880522367f9c122eb4"><td class="mdescLeft"> </td><td class="mdescRight">Sets the file download handler for the given terminal. <br /></td></tr> |
| <tr class="separator:aaf1ce41caa5967880522367f9c122eb4"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a9ae71ac3cbc89da6fcec99ffffc9699a" id="r_a9ae71ac3cbc89da6fcec99ffffc9699a"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="#a9ae71ac3cbc89da6fcec99ffffc9699a">guac_terminal_render_frame</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *terminal)</td></tr> |
| <tr class="memdesc:a9ae71ac3cbc89da6fcec99ffffc9699a"><td class="mdescLeft"> </td><td class="mdescRight">Renders a single frame of terminal data. <br /></td></tr> |
| <tr class="separator:a9ae71ac3cbc89da6fcec99ffffc9699a"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:acc75e5ce65304c14ae2b7abeba0bcfdf" id="r_acc75e5ce65304c14ae2b7abeba0bcfdf"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="#acc75e5ce65304c14ae2b7abeba0bcfdf">guac_terminal_read_stdin</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *terminal, char *c, int size)</td></tr> |
| <tr class="memdesc:acc75e5ce65304c14ae2b7abeba0bcfdf"><td class="mdescLeft"> </td><td class="mdescRight">Reads from this terminal's STDIN. <br /></td></tr> |
| <tr class="separator:acc75e5ce65304c14ae2b7abeba0bcfdf"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a4d9edc5e72aea67a7494c97d0fbe4196" id="r_a4d9edc5e72aea67a7494c97d0fbe4196"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a4d9edc5e72aea67a7494c97d0fbe4196">guac_terminal_start</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *term)</td></tr> |
| <tr class="memdesc:a4d9edc5e72aea67a7494c97d0fbe4196"><td class="mdescLeft"> </td><td class="mdescRight">Notifies the terminal that rendering should begin and that user input should now be accepted. <br /></td></tr> |
| <tr class="separator:a4d9edc5e72aea67a7494c97d0fbe4196"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a4bf310780f9d6265737cf86b6d859e8d" id="r_a4bf310780f9d6265737cf86b6d859e8d"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a4bf310780f9d6265737cf86b6d859e8d">guac_terminal_stop</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *term)</td></tr> |
| <tr class="memdesc:a4bf310780f9d6265737cf86b6d859e8d"><td class="mdescLeft"> </td><td class="mdescRight">Manually stop the terminal to forcibly unblock any pending reads/writes, e.g. <br /></td></tr> |
| <tr class="separator:a4bf310780f9d6265737cf86b6d859e8d"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a15b1464dfe3b77f89ae3574a354cfd9a" id="r_a15b1464dfe3b77f89ae3574a354cfd9a"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a15b1464dfe3b77f89ae3574a354cfd9a">guac_terminal_notify</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *terminal)</td></tr> |
| <tr class="memdesc:a15b1464dfe3b77f89ae3574a354cfd9a"><td class="mdescLeft"> </td><td class="mdescRight">Notifies the terminal that an event has occurred and the terminal should flush itself when reasonable. <br /></td></tr> |
| <tr class="separator:a15b1464dfe3b77f89ae3574a354cfd9a"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a025d6104b9b7c486a70d6cb28cacf271" id="r_a025d6104b9b7c486a70d6cb28cacf271"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="#a025d6104b9b7c486a70d6cb28cacf271">guac_terminal_prompt</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *terminal, const char *title, bool echo)</td></tr> |
| <tr class="memdesc:a025d6104b9b7c486a70d6cb28cacf271"><td class="mdescLeft"> </td><td class="mdescRight">Reads a single line from this terminal's STDIN, storing the result in a newly-allocated string. <br /></td></tr> |
| <tr class="separator:a025d6104b9b7c486a70d6cb28cacf271"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a60543e4566beaab153838fc436b36652" id="r_a60543e4566beaab153838fc436b36652"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="#a60543e4566beaab153838fc436b36652">guac_terminal_printf</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *terminal, const char *format,...)</td></tr> |
| <tr class="memdesc:a60543e4566beaab153838fc436b36652"><td class="mdescLeft"> </td><td class="mdescRight">Writes the given format string and arguments to this terminal's STDOUT in the same manner as printf(). <br /></td></tr> |
| <tr class="separator:a60543e4566beaab153838fc436b36652"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ab3494afd916ce1a1643705b7be37ecdb" id="r_ab3494afd916ce1a1643705b7be37ecdb"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="#ab3494afd916ce1a1643705b7be37ecdb">guac_terminal_send_key</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *term, int keysym, int pressed)</td></tr> |
| <tr class="memdesc:ab3494afd916ce1a1643705b7be37ecdb"><td class="mdescLeft"> </td><td class="mdescRight">Handles the given key event, sending data, scrolling, pasting clipboard data, etc. <br /></td></tr> |
| <tr class="separator:ab3494afd916ce1a1643705b7be37ecdb"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ab724f2fc2c90524b52693a1a9317bc43" id="r_ab724f2fc2c90524b52693a1a9317bc43"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="#ab724f2fc2c90524b52693a1a9317bc43">guac_terminal_send_mouse</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *term, guac_user *user, int x, int y, int mask)</td></tr> |
| <tr class="memdesc:ab724f2fc2c90524b52693a1a9317bc43"><td class="mdescLeft"> </td><td class="mdescRight">Handles the given mouse event, sending data, scrolling, pasting clipboard data, etc. <br /></td></tr> |
| <tr class="separator:ab724f2fc2c90524b52693a1a9317bc43"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a70466d89636307fc3d634f6aacb6d8b8" id="r_a70466d89636307fc3d634f6aacb6d8b8"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="#a70466d89636307fc3d634f6aacb6d8b8">guac_terminal_send_data</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *term, const char *data, int length)</td></tr> |
| <tr class="memdesc:a70466d89636307fc3d634f6aacb6d8b8"><td class="mdescLeft"> </td><td class="mdescRight">Sends the given string as if typed by the user. <br /></td></tr> |
| <tr class="separator:a70466d89636307fc3d634f6aacb6d8b8"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:afbacbcde592fe90b67fd8cd0b49d3375" id="r_afbacbcde592fe90b67fd8cd0b49d3375"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="#afbacbcde592fe90b67fd8cd0b49d3375">guac_terminal_send_string</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *term, const char *data)</td></tr> |
| <tr class="memdesc:afbacbcde592fe90b67fd8cd0b49d3375"><td class="mdescLeft"> </td><td class="mdescRight">Sends the given string as if typed by the user. <br /></td></tr> |
| <tr class="separator:afbacbcde592fe90b67fd8cd0b49d3375"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a517cfb03bfbddb3668b9a328d30cf880" id="r_a517cfb03bfbddb3668b9a328d30cf880"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="#a517cfb03bfbddb3668b9a328d30cf880">guac_terminal_write</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *term, const char *buffer, int length)</td></tr> |
| <tr class="memdesc:a517cfb03bfbddb3668b9a328d30cf880"><td class="mdescLeft"> </td><td class="mdescRight">Writes the given buffer to the given terminal's STDOUT. <br /></td></tr> |
| <tr class="separator:a517cfb03bfbddb3668b9a328d30cf880"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a27845ddb5cd953a3be20a2756e303c39" id="r_a27845ddb5cd953a3be20a2756e303c39"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="#a27845ddb5cd953a3be20a2756e303c39">guac_terminal_send_stream</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *term, guac_user *user, guac_stream *stream)</td></tr> |
| <tr class="memdesc:a27845ddb5cd953a3be20a2756e303c39"><td class="mdescLeft"> </td><td class="mdescRight">Initializes the handlers of the given guac_stream such that it serves as the source of input to the terminal. <br /></td></tr> |
| <tr class="separator:a27845ddb5cd953a3be20a2756e303c39"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a60ffed55f8949c8054c76417c9284cfd" id="r_a60ffed55f8949c8054c76417c9284cfd"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="#a60ffed55f8949c8054c76417c9284cfd">guac_terminal_sendf</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *term, const char *format,...)</td></tr> |
| <tr class="memdesc:a60ffed55f8949c8054c76417c9284cfd"><td class="mdescLeft"> </td><td class="mdescRight">Sends data through STDIN as if typed by the user, using the format string given and any args (similar to printf). <br /></td></tr> |
| <tr class="separator:a60ffed55f8949c8054c76417c9284cfd"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a93868975cd4de90d1ffd676a8ad6bb55" id="r_a93868975cd4de90d1ffd676a8ad6bb55"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a93868975cd4de90d1ffd676a8ad6bb55">guac_terminal_dup</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *term, guac_user *user, guac_socket *socket)</td></tr> |
| <tr class="memdesc:a93868975cd4de90d1ffd676a8ad6bb55"><td class="mdescLeft"> </td><td class="mdescRight">Replicates the current display state to a user that has just joined the connection. <br /></td></tr> |
| <tr class="separator:a93868975cd4de90d1ffd676a8ad6bb55"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a2a364b474a0311ed18a01a438e2d61f2" id="r_a2a364b474a0311ed18a01a438e2d61f2"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a2a364b474a0311ed18a01a438e2d61f2">guac_terminal_sync_users</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *term, guac_client *client, guac_socket *socket)</td></tr> |
| <tr class="memdesc:a2a364b474a0311ed18a01a438e2d61f2"><td class="mdescLeft"> </td><td class="mdescRight">Replicates the current display state to one or more users that are joining the connection. <br /></td></tr> |
| <tr class="separator:a2a364b474a0311ed18a01a438e2d61f2"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a97b019b5e12ca00a928f75e67288c92e" id="r_a97b019b5e12ca00a928f75e67288c92e"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="#a97b019b5e12ca00a928f75e67288c92e">guac_terminal_resize</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *term, int width, int height)</td></tr> |
| <tr class="memdesc:a97b019b5e12ca00a928f75e67288c92e"><td class="mdescLeft"> </td><td class="mdescRight">Resize the client display and terminal to the given pixel dimensions. <br /></td></tr> |
| <tr class="separator:a97b019b5e12ca00a928f75e67288c92e"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:aeb813dff717adc6aac6ee697a2e1b1d9" id="r_aeb813dff717adc6aac6ee697a2e1b1d9"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="#aeb813dff717adc6aac6ee697a2e1b1d9">guac_terminal_get_available_scroll</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *term)</td></tr> |
| <tr class="memdesc:aeb813dff717adc6aac6ee697a2e1b1d9"><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of rows within the buffer of the given terminal which are not currently displayed on screen. <br /></td></tr> |
| <tr class="separator:aeb813dff717adc6aac6ee697a2e1b1d9"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a9b5bdeaff0d7b79c0ddeaf385112de31" id="r_a9b5bdeaff0d7b79c0ddeaf385112de31"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="#a9b5bdeaff0d7b79c0ddeaf385112de31">guac_terminal_get_rows</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *term)</td></tr> |
| <tr class="memdesc:a9b5bdeaff0d7b79c0ddeaf385112de31"><td class="mdescLeft"> </td><td class="mdescRight">Returns the height of the given terminal, in characters. <br /></td></tr> |
| <tr class="separator:a9b5bdeaff0d7b79c0ddeaf385112de31"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:aeb4737d68eb0261d07d0718eaa67cd33" id="r_aeb4737d68eb0261d07d0718eaa67cd33"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="#aeb4737d68eb0261d07d0718eaa67cd33">guac_terminal_get_columns</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *term)</td></tr> |
| <tr class="memdesc:aeb4737d68eb0261d07d0718eaa67cd33"><td class="mdescLeft"> </td><td class="mdescRight">Returns the width of the given terminal, in characters. <br /></td></tr> |
| <tr class="separator:aeb4737d68eb0261d07d0718eaa67cd33"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a08a3f6d2345d2493ec06729d30a14655" id="r_a08a3f6d2345d2493ec06729d30a14655"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a08a3f6d2345d2493ec06729d30a14655">guac_terminal_clipboard_reset</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *terminal, const char *mimetype)</td></tr> |
| <tr class="memdesc:a08a3f6d2345d2493ec06729d30a14655"><td class="mdescLeft"> </td><td class="mdescRight">Clears the clipboard contents for a given terminal, and assigns a new mimetype for future data. <br /></td></tr> |
| <tr class="separator:a08a3f6d2345d2493ec06729d30a14655"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a632ee5296595fca9e3bc7513a93f0cc1" id="r_a632ee5296595fca9e3bc7513a93f0cc1"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a632ee5296595fca9e3bc7513a93f0cc1">guac_terminal_clipboard_append</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *terminal, const char *data, int length)</td></tr> |
| <tr class="memdesc:a632ee5296595fca9e3bc7513a93f0cc1"><td class="mdescLeft"> </td><td class="mdescRight">Appends the given data to the contents of the clipboard for the given terminal. <br /></td></tr> |
| <tr class="separator:a632ee5296595fca9e3bc7513a93f0cc1"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:adb734903eeeaefaadb0a33b0c8e43a45" id="r_adb734903eeeaefaadb0a33b0c8e43a45"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#adb734903eeeaefaadb0a33b0c8e43a45">guac_terminal_remove_user</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *terminal, guac_user *user)</td></tr> |
| <tr class="memdesc:adb734903eeeaefaadb0a33b0c8e43a45"><td class="mdescLeft"> </td><td class="mdescRight">Removes the given user from any user-specific resources internal to the given terminal. <br /></td></tr> |
| <tr class="separator:adb734903eeeaefaadb0a33b0c8e43a45"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:adaa18f34b033528ba9ce059caf5aa574" id="r_adaa18f34b033528ba9ce059caf5aa574"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="#adaa18f34b033528ba9ce059caf5aa574">guac_terminal_create_typescript</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *term, const char *path, const char *name, int create_path, int allow_write_existing)</td></tr> |
| <tr class="memdesc:adaa18f34b033528ba9ce059caf5aa574"><td class="mdescLeft"> </td><td class="mdescRight">Requests that the terminal write all output to a pair of typescript files within the given path and using the given base name. <br /></td></tr> |
| <tr class="separator:adaa18f34b033528ba9ce059caf5aa574"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a454b4ab7989237eb0caab801487dc3f4" id="r_a454b4ab7989237eb0caab801487dc3f4"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#a454b4ab7989237eb0caab801487dc3f4">guac_terminal_apply_color_scheme</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *terminal, const char *color_scheme)</td></tr> |
| <tr class="memdesc:a454b4ab7989237eb0caab801487dc3f4"><td class="mdescLeft"> </td><td class="mdescRight">Immediately applies the given color scheme to the given terminal, overriding the color scheme provided when the terminal was created. <br /></td></tr> |
| <tr class="separator:a454b4ab7989237eb0caab801487dc3f4"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a6acf078069a800f63dfbbc102232eeea" id="r_a6acf078069a800f63dfbbc102232eeea"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="#a6acf078069a800f63dfbbc102232eeea">guac_terminal_get_color_scheme</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *terminal)</td></tr> |
| <tr class="memdesc:a6acf078069a800f63dfbbc102232eeea"><td class="mdescLeft"> </td><td class="mdescRight">Returns name of the color scheme currently in use by the given terminal. <br /></td></tr> |
| <tr class="separator:a6acf078069a800f63dfbbc102232eeea"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ae800977f951c992143334bf1b089f5c3" id="r_ae800977f951c992143334bf1b089f5c3"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="#ae800977f951c992143334bf1b089f5c3">guac_terminal_apply_font</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *terminal, const char *font_name, int font_size, int dpi)</td></tr> |
| <tr class="memdesc:ae800977f951c992143334bf1b089f5c3"><td class="mdescLeft"> </td><td class="mdescRight">Alters the font of the terminal. <br /></td></tr> |
| <tr class="separator:ae800977f951c992143334bf1b089f5c3"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a7857170d6c9cc019ad31fa9ac80f6dda" id="r_a7857170d6c9cc019ad31fa9ac80f6dda"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="#a7857170d6c9cc019ad31fa9ac80f6dda">guac_terminal_get_font_name</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *terminal)</td></tr> |
| <tr class="memdesc:a7857170d6c9cc019ad31fa9ac80f6dda"><td class="mdescLeft"> </td><td class="mdescRight">Returns the font name currently in use by the given terminal. <br /></td></tr> |
| <tr class="separator:a7857170d6c9cc019ad31fa9ac80f6dda"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a652758ddce440e6e4f5d61cbba2bffbc" id="r_a652758ddce440e6e4f5d61cbba2bffbc"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="#a652758ddce440e6e4f5d61cbba2bffbc">guac_terminal_get_font_size</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *terminal)</td></tr> |
| <tr class="memdesc:a652758ddce440e6e4f5d61cbba2bffbc"><td class="mdescLeft"> </td><td class="mdescRight">Returns the font size currently in use by the given terminal. <br /></td></tr> |
| <tr class="separator:a652758ddce440e6e4f5d61cbba2bffbc"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a637684593024fcc02622a9b0e4e1985d" id="r_a637684593024fcc02622a9b0e4e1985d"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="#a637684593024fcc02622a9b0e4e1985d">guac_terminal_get_mod_ctrl</a> (<a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *terminal)</td></tr> |
| <tr class="memdesc:a637684593024fcc02622a9b0e4e1985d"><td class="mdescLeft"> </td><td class="mdescRight">Returns the current state of the mod_ctrl flag in the given terminal. <br /></td></tr> |
| <tr class="separator:a637684593024fcc02622a9b0e4e1985d"><td class="memSeparator" colspan="2"> </td></tr> |
| </table> |
| <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> |
| <div class="textblock"><p>Constants, structures, and function definitions defining the core functionality for the terminal library. </p> |
| </div><h2 class="groupheader">Macro Definition Documentation</h2> |
| <a id="a8f3db65a4ad44dafbc25dfecbdee7dcc" name="a8f3db65a4ad44dafbc25dfecbdee7dcc"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a8f3db65a4ad44dafbc25dfecbdee7dcc">◆ </a></span>GUAC_TERMINAL_MAX_COLUMNS</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define GUAC_TERMINAL_MAX_COLUMNS   1024</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>The absolute maximum number of columns to allow within the display. </p> |
| <p>This implicitly limits the number of columns allowed within the buffer. </p> |
| |
| </div> |
| </div> |
| <a id="a90c94177f90d1b16de286c3498c08c26" name="a90c94177f90d1b16de286c3498c08c26"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a90c94177f90d1b16de286c3498c08c26">◆ </a></span>GUAC_TERMINAL_PIPE_AUTOFLUSH</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define GUAC_TERMINAL_PIPE_AUTOFLUSH   2</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Flag which forces the open pipe stream to be flushed automatically, whenever a new frame would be rendered, with only minimal buffering performed between frames. </p> |
| <p>By default, the contents of the pipe stream will be flushed only when the buffer is full or the pipe stream is being closed. </p> |
| |
| </div> |
| </div> |
| <a id="a001b84c7d72fed361d8cd93b3418c63a" name="a001b84c7d72fed361d8cd93b3418c63a"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a001b84c7d72fed361d8cd93b3418c63a">◆ </a></span>GUAC_TERMINAL_PIPE_INTERPRET_OUTPUT</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">#define GUAC_TERMINAL_PIPE_INTERPRET_OUTPUT   1</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Flag which specifies that terminal output should be sent to both the current pipe stream and the user's display. </p> |
| <p>By default, terminal output will be sent only to the open pipe. </p> |
| |
| </div> |
| </div> |
| <h2 class="groupheader">Typedef Documentation</h2> |
| <a id="a292a4a16877319e6f37311d23a9cbee5" name="a292a4a16877319e6f37311d23a9cbee5"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a292a4a16877319e6f37311d23a9cbee5">◆ </a></span>guac_terminal_file_download_handler</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">typedef guac_stream * guac_terminal_file_download_handler(guac_client *client, char *filename)</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Handler that is invoked whenever the necessary terminal codes are sent to initiate a download of a given remote file. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">client</td><td>The guac_client associated with the terminal receiving the file download terminal code.</td></tr> |
| <tr><td class="paramname">filename</td><td>The name of the requested file. This may be a relative or absolute path, and it is up to the implementation to define how this value is interpreted.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>The file stream created for the file download, already configured to properly handle "ack" responses, etc. from the client, or NULL if the stream could not be created. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="a356cbe7fd894f73690eae185b38c6079" name="a356cbe7fd894f73690eae185b38c6079"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a356cbe7fd894f73690eae185b38c6079">◆ </a></span>guac_terminal_upload_path_handler</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">typedef void guac_terminal_upload_path_handler(guac_client *client, char *path)</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Handler that is invoked whenever the necessary terminal codes are sent to to the given terminal to change the path for future file uploads. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">client</td><td>The guac_client associated with the terminal receiving the upload path change terminal code.</td></tr> |
| <tr><td class="paramname">path</td><td>The requested path. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <h2 class="groupheader">Enumeration Type Documentation</h2> |
| <a id="a60ac805147521dc2e17ee6e9278c0cc3" name="a60ac805147521dc2e17ee6e9278c0cc3"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a60ac805147521dc2e17ee6e9278c0cc3">◆ </a></span>guac_terminal_cursor_type</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">enum <a class="el" href="#a60ac805147521dc2e17ee6e9278c0cc3">guac_terminal_cursor_type</a></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>All possible mouse cursors used by the terminal emulator. </p> |
| <table class="fieldtable"> |
| <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a60ac805147521dc2e17ee6e9278c0cc3ac3449f4024e8d83fd76e83e1a6acdb76" name="a60ac805147521dc2e17ee6e9278c0cc3ac3449f4024e8d83fd76e83e1a6acdb76"></a>GUAC_TERMINAL_CURSOR_BLANK </td><td class="fielddoc"><p>A transparent (blank) cursor. </p> |
| </td></tr> |
| <tr><td class="fieldname"><a id="a60ac805147521dc2e17ee6e9278c0cc3abf079c8f86b20117d8eb30eae7e3f58a" name="a60ac805147521dc2e17ee6e9278c0cc3abf079c8f86b20117d8eb30eae7e3f58a"></a>GUAC_TERMINAL_CURSOR_IBAR </td><td class="fielddoc"><p>A standard I-bar cursor for selecting text, etc. </p> |
| </td></tr> |
| <tr><td class="fieldname"><a id="a60ac805147521dc2e17ee6e9278c0cc3af7891c31bea1625943f6b590c73d8bff" name="a60ac805147521dc2e17ee6e9278c0cc3af7891c31bea1625943f6b590c73d8bff"></a>GUAC_TERMINAL_CURSOR_POINTER </td><td class="fielddoc"><p>A standard triangular mouse pointer for manipulating non-text objects. </p> |
| </td></tr> |
| </table> |
| |
| </div> |
| </div> |
| <h2 class="groupheader">Function Documentation</h2> |
| <a id="a454b4ab7989237eb0caab801487dc3f4" name="a454b4ab7989237eb0caab801487dc3f4"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a454b4ab7989237eb0caab801487dc3f4">◆ </a></span>guac_terminal_apply_color_scheme()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void guac_terminal_apply_color_scheme </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>terminal</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const char *</td> <td class="paramname"><span class="paramname"><em>color_scheme</em></span> )</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Immediately applies the given color scheme to the given terminal, overriding the color scheme provided when the terminal was created. </p> |
| <p>Valid color schemes are those accepted by guac_terminal_parse_color_scheme().</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">terminal</td><td>The terminal to apply the color scheme to.</td></tr> |
| <tr><td class="paramname">color_scheme</td><td>The color scheme to apply. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="ae800977f951c992143334bf1b089f5c3" name="ae800977f951c992143334bf1b089f5c3"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ae800977f951c992143334bf1b089f5c3">◆ </a></span>guac_terminal_apply_font()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void guac_terminal_apply_font </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>terminal</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const char *</td> <td class="paramname"><span class="paramname"><em>font_name</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>font_size</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>dpi</em></span> )</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Alters the font of the terminal. </p> |
| <p>The terminal will automatically be redrawn and resized as necessary. If the terminal size changes, the remote side of the terminal session must be manually informed of that change or graphical artifacts may result.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">terminal</td><td>The terminal whose font family and/or size are being changed.</td></tr> |
| <tr><td class="paramname">font_name</td><td>The name of the new font family, or NULL if the font family should remain unchanged.</td></tr> |
| <tr><td class="paramname">font_size</td><td>The new font size, in points, or -1 if the font size should remain unchanged.</td></tr> |
| <tr><td class="paramname">dpi</td><td>The resolution of the display in DPI. If the font size will not be changed (the font size given is -1), this value is ignored. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="a632ee5296595fca9e3bc7513a93f0cc1" name="a632ee5296595fca9e3bc7513a93f0cc1"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a632ee5296595fca9e3bc7513a93f0cc1">◆ </a></span>guac_terminal_clipboard_append()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void guac_terminal_clipboard_append </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>terminal</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const char *</td> <td class="paramname"><span class="paramname"><em>data</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>length</em></span> )</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Appends the given data to the contents of the clipboard for the given terminal. </p> |
| <p>The data must match the mimetype chosen for the clipboard data by <a class="el" href="#a08a3f6d2345d2493ec06729d30a14655" title="Clears the clipboard contents for a given terminal, and assigns a new mimetype for future data.">guac_terminal_clipboard_reset()</a>.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">terminal</td><td>The terminal whose clipboard is being appended to. </td></tr> |
| <tr><td class="paramname">data</td><td>The data to append. </td></tr> |
| <tr><td class="paramname">length</td><td>The number of bytes to append from the data given. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="a08a3f6d2345d2493ec06729d30a14655" name="a08a3f6d2345d2493ec06729d30a14655"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a08a3f6d2345d2493ec06729d30a14655">◆ </a></span>guac_terminal_clipboard_reset()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void guac_terminal_clipboard_reset </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>terminal</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const char *</td> <td class="paramname"><span class="paramname"><em>mimetype</em></span> )</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Clears the clipboard contents for a given terminal, and assigns a new mimetype for future data. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">terminal</td><td>The terminal whose clipboard is being reset. </td></tr> |
| <tr><td class="paramname">mimetype</td><td>The mimetype of future data. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="a9cd1e1e97b22a94039edd45936d4e2bc" name="a9cd1e1e97b22a94039edd45936d4e2bc"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a9cd1e1e97b22a94039edd45936d4e2bc">◆ </a></span>guac_terminal_create()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> * guac_terminal_create </td> |
| <td>(</td> |
| <td class="paramtype">guac_client *</td> <td class="paramname"><span class="paramname"><em>client</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="structguac__terminal__options.html">guac_terminal_options</a> *</td> <td class="paramname"><span class="paramname"><em>terminal_options</em></span> )</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Creates a new <a class="el" href="#a49f29d5b500f0d3089e85e0b00903030" title="Represents a terminal emulator which uses a given Guacamole client to render itself.">guac_terminal</a>, having the given width and height, and rendering to the given client. </p> |
| <p>As failover mechanisms and the Guacamole client implementation typically use the receipt of a "sync" message to denote successful connection, rendering of frames (sending of "sync") will be withheld until <a class="el" href="#a4d9edc5e72aea67a7494c97d0fbe4196" title="Notifies the terminal that rendering should begin and that user input should now be accepted.">guac_terminal_start()</a> is called, and user input will be ignored. The <a class="el" href="#a4d9edc5e72aea67a7494c97d0fbe4196" title="Notifies the terminal that rendering should begin and that user input should now be accepted.">guac_terminal_start()</a> function should be invoked only after either the underlying connection has truly succeeded, or until visible terminal output or user input is required.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">client</td><td>The client to which the terminal will be rendered.</td></tr> |
| <tr><td class="paramname">terminal_options</td><td>The configuration used for instantiating the terminal. For information about the options, see the <a class="el" href="structguac__terminal__options.html" title="Configuration options that may be passed when creating a new guac_terminal.">guac_terminal_options</a> definition.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>A new <a class="el" href="#a49f29d5b500f0d3089e85e0b00903030" title="Represents a terminal emulator which uses a given Guacamole client to render itself.">guac_terminal</a> having the given font, dimensions, and attributes which renders all text to the given client. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="adaa18f34b033528ba9ce059caf5aa574" name="adaa18f34b033528ba9ce059caf5aa574"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#adaa18f34b033528ba9ce059caf5aa574">◆ </a></span>guac_terminal_create_typescript()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int guac_terminal_create_typescript </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>term</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const char *</td> <td class="paramname"><span class="paramname"><em>path</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const char *</td> <td class="paramname"><span class="paramname"><em>name</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>create_path</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>allow_write_existing</em></span> )</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Requests that the terminal write all output to a pair of typescript files within the given path and using the given base name. </p> |
| <p>If allow_write_existing is non-zero, these may be existing files; otherwise, the existing files may not be written to, and a non-zero value will be returned.</p> |
| <p>Terminal output will be written to the files, along with timing information. If the create_path flag is non-zero, the given path will be created if it does not yet exist. If creation of the typescript files or path fails, error messages will automatically be logged, and no typescript will be written. The typescript will automatically be closed once the terminal is freed.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">term</td><td>The terminal whose output should be written to a typescript.</td></tr> |
| <tr><td class="paramname">path</td><td>The full absolute path to a directory in which the typescript files should be created.</td></tr> |
| <tr><td class="paramname">name</td><td>The base name to use for the typescript files created within the specified path.</td></tr> |
| <tr><td class="paramname">create_path</td><td>Zero if the specified path MUST exist for typescript files to be written, or non-zero if the path should be created if it does not yet exist.</td></tr> |
| <tr><td class="paramname">allow_write_existing</td><td>Non-zero if writing to existing files should be allowed, or zero otherwise.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Zero if the typescript files have been successfully created and a typescript will be written, non-zero otherwise. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="a93868975cd4de90d1ffd676a8ad6bb55" name="a93868975cd4de90d1ffd676a8ad6bb55"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a93868975cd4de90d1ffd676a8ad6bb55">◆ </a></span>guac_terminal_dup()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void guac_terminal_dup </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>term</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">guac_user *</td> <td class="paramname"><span class="paramname"><em>user</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">guac_socket *</td> <td class="paramname"><span class="paramname"><em>socket</em></span> )</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Replicates the current display state to a user that has just joined the connection. </p> |
| <p>All instructions necessary to replicate state are sent over the given socket.</p> |
| <dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000001">Deprecated</a></b></dt><dd>The guac_terminal_sync_users method should be used when duplicating display state to a set of users.</dd></dl> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">term</td><td>The terminal emulator associated with the connection being joined.</td></tr> |
| <tr><td class="paramname">user</td><td>The user joining the connection.</td></tr> |
| <tr><td class="paramname">socket</td><td>The guac_socket specific to the joining user and across which messages synchronizing the current display state should be sent. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="abe31fc459c88d8f5ee8817839b930374" name="abe31fc459c88d8f5ee8817839b930374"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#abe31fc459c88d8f5ee8817839b930374">◆ </a></span>guac_terminal_free()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void guac_terminal_free </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>term</em></span></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Frees all resources associated with the given terminal. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">term</td><td>The terminal to free. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="aeb813dff717adc6aac6ee697a2e1b1d9" name="aeb813dff717adc6aac6ee697a2e1b1d9"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#aeb813dff717adc6aac6ee697a2e1b1d9">◆ </a></span>guac_terminal_get_available_scroll()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int guac_terminal_get_available_scroll </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>term</em></span></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Returns the number of rows within the buffer of the given terminal which are not currently displayed on screen. </p> |
| <p>Adjustments to the desired scrollback size are taken into account, and rows which are within the buffer but unavailable due to being outside the desired scrollback range are ignored.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">term</td><td>The terminal whose off-screen row count should be determined.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>The number of rows within the buffer which are not currently displayed on screen. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="a6acf078069a800f63dfbbc102232eeea" name="a6acf078069a800f63dfbbc102232eeea"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a6acf078069a800f63dfbbc102232eeea">◆ </a></span>guac_terminal_get_color_scheme()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">const char * guac_terminal_get_color_scheme </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>terminal</em></span></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Returns name of the color scheme currently in use by the given terminal. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">terminal</td><td>The terminal whose color scheme should be returned.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>The name of the color scheme currently in use by the given terminal. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="aeb4737d68eb0261d07d0718eaa67cd33" name="aeb4737d68eb0261d07d0718eaa67cd33"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#aeb4737d68eb0261d07d0718eaa67cd33">◆ </a></span>guac_terminal_get_columns()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int guac_terminal_get_columns </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>term</em></span></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Returns the width of the given terminal, in characters. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">term</td><td>The terminal whose width should be determined.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>The width of the terminal, in characters. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="a7857170d6c9cc019ad31fa9ac80f6dda" name="a7857170d6c9cc019ad31fa9ac80f6dda"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a7857170d6c9cc019ad31fa9ac80f6dda">◆ </a></span>guac_terminal_get_font_name()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">const char * guac_terminal_get_font_name </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>terminal</em></span></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Returns the font name currently in use by the given terminal. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">terminal</td><td>The terminal whose font name is being retrieved.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>The name of the font in use by the given terminal. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="a652758ddce440e6e4f5d61cbba2bffbc" name="a652758ddce440e6e4f5d61cbba2bffbc"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a652758ddce440e6e4f5d61cbba2bffbc">◆ </a></span>guac_terminal_get_font_size()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int guac_terminal_get_font_size </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>terminal</em></span></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Returns the font size currently in use by the given terminal. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">terminal</td><td>The terminal whose font size is being retrieved.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>The size of the font in use by the given terminal. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="a637684593024fcc02622a9b0e4e1985d" name="a637684593024fcc02622a9b0e4e1985d"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a637684593024fcc02622a9b0e4e1985d">◆ </a></span>guac_terminal_get_mod_ctrl()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int guac_terminal_get_mod_ctrl </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>terminal</em></span></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Returns the current state of the mod_ctrl flag in the given terminal. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">terminal</td><td>The terminal for which the mod_ctrl state is being checked.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>The current state of the mod_ctrl flag. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="a9b5bdeaff0d7b79c0ddeaf385112de31" name="a9b5bdeaff0d7b79c0ddeaf385112de31"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a9b5bdeaff0d7b79c0ddeaf385112de31">◆ </a></span>guac_terminal_get_rows()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int guac_terminal_get_rows </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>term</em></span></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Returns the height of the given terminal, in characters. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">term</td><td>The terminal whose height should be determined.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>The height of the terminal, in characters. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="a15b1464dfe3b77f89ae3574a354cfd9a" name="a15b1464dfe3b77f89ae3574a354cfd9a"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a15b1464dfe3b77f89ae3574a354cfd9a">◆ </a></span>guac_terminal_notify()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void guac_terminal_notify </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>terminal</em></span></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Notifies the terminal that an event has occurred and the terminal should flush itself when reasonable. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">terminal</td><td>The terminal to notify. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="a20aaad95ef78122a0dc9635065910b8c" name="a20aaad95ef78122a0dc9635065910b8c"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a20aaad95ef78122a0dc9635065910b8c">◆ </a></span>guac_terminal_options_create()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="structguac__terminal__options.html">guac_terminal_options</a> * guac_terminal_options_create </td> |
| <td>(</td> |
| <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>width</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>height</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>dpi</em></span> )</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Create a new <a class="el" href="structguac__terminal__options.html" title="Configuration options that may be passed when creating a new guac_terminal.">guac_terminal_options</a> struct. </p> |
| <p>All parameters are required. Any options that are not passed in this constructor will be set to default values unless overriden.</p> |
| <p>The <a class="el" href="structguac__terminal__options.html" title="Configuration options that may be passed when creating a new guac_terminal.">guac_terminal_options</a> struct should only be created using this constructor.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">width</td><td>The width of the terminal, in pixels.</td></tr> |
| <tr><td class="paramname">height</td><td>The height of the terminal, in pixels.</td></tr> |
| <tr><td class="paramname">dpi</td><td>The DPI of the display. The given font size will be adjusted to produce glyphs at the given DPI.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>A new terminal options struct with all required options populated, ready to have any defaults overriden as needed. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="a60543e4566beaab153838fc436b36652" name="a60543e4566beaab153838fc436b36652"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a60543e4566beaab153838fc436b36652">◆ </a></span>guac_terminal_printf()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int guac_terminal_printf </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>terminal</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const char *</td> <td class="paramname"><span class="paramname"><em>format</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>...</em></span> )</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Writes the given format string and arguments to this terminal's STDOUT in the same manner as printf(). </p> |
| <p>The entire populated format string will always be written unless an error occurs. This function may block until space is freed in the output buffer by <a class="el" href="#a9ae71ac3cbc89da6fcec99ffffc9699a" title="Renders a single frame of terminal data.">guac_terminal_render_frame()</a>.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">terminal</td><td>The terminal to write to.</td></tr> |
| <tr><td class="paramname">format</td><td>A printf-style format string describing the data to be written to STDOUT.</td></tr> |
| <tr><td class="paramname">...</td><td>Any arguments to use when filling the format string.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>The number of bytes written to STDOUT, or a negative value if an error occurs preventing the data from being written in its entirety. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="a025d6104b9b7c486a70d6cb28cacf271" name="a025d6104b9b7c486a70d6cb28cacf271"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a025d6104b9b7c486a70d6cb28cacf271">◆ </a></span>guac_terminal_prompt()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">char * guac_terminal_prompt </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>terminal</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const char *</td> <td class="paramname"><span class="paramname"><em>title</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>echo</em></span> )</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Reads a single line from this terminal's STDIN, storing the result in a newly-allocated string. </p> |
| <p>Input is retrieved in the same manner as <a class="el" href="#acc75e5ce65304c14ae2b7abeba0bcfdf" title="Reads from this terminal's STDIN.">guac_terminal_read_stdin()</a> and the same restrictions apply. As reading input naturally requires user interaction, this function will implicitly invoke <a class="el" href="#a4d9edc5e72aea67a7494c97d0fbe4196" title="Notifies the terminal that rendering should begin and that user input should now be accepted.">guac_terminal_start()</a>.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">terminal</td><td>The terminal to which the provided title should be output, and from whose STDIN the single line of input should be read.</td></tr> |
| <tr><td class="paramname">title</td><td>The human-readable title to output to the terminal just prior to reading from STDIN.</td></tr> |
| <tr><td class="paramname">echo</td><td>Non-zero if the characters read from STDIN should be echoed back as terminal output, or zero if asterisks should be displayed instead.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>A newly-allocated string containing a single line of input read from the provided terminal's STDIN. This string must eventually be manually freed with a call to guac_mem_free(). </dd></dl> |
| |
| </div> |
| </div> |
| <a id="acc75e5ce65304c14ae2b7abeba0bcfdf" name="acc75e5ce65304c14ae2b7abeba0bcfdf"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#acc75e5ce65304c14ae2b7abeba0bcfdf">◆ </a></span>guac_terminal_read_stdin()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int guac_terminal_read_stdin </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>terminal</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">char *</td> <td class="paramname"><span class="paramname"><em>c</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>size</em></span> )</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Reads from this terminal's STDIN. </p> |
| <p>Input comes from key and mouse events supplied by calls to <a class="el" href="#ab3494afd916ce1a1643705b7be37ecdb" title="Handles the given key event, sending data, scrolling, pasting clipboard data, etc.">guac_terminal_send_key()</a>, <a class="el" href="#ab724f2fc2c90524b52693a1a9317bc43" title="Handles the given mouse event, sending data, scrolling, pasting clipboard data, etc.">guac_terminal_send_mouse()</a>, and <a class="el" href="#a27845ddb5cd953a3be20a2756e303c39" title="Initializes the handlers of the given guac_stream such that it serves as the source of input to the t...">guac_terminal_send_stream()</a>. If input is not yet available, this function will block.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">terminal</td><td>The terminal to read from.</td></tr> |
| <tr><td class="paramname">c</td><td>The buffer that should receive the bytes read.</td></tr> |
| <tr><td class="paramname">size</td><td>The number of bytes available within the buffer.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>The number of bytes read into the buffer, zero if end-of-file is reached (STDIN has been closed), or a negative value if an error occurs. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="adb734903eeeaefaadb0a33b0c8e43a45" name="adb734903eeeaefaadb0a33b0c8e43a45"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#adb734903eeeaefaadb0a33b0c8e43a45">◆ </a></span>guac_terminal_remove_user()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void guac_terminal_remove_user </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>terminal</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">guac_user *</td> <td class="paramname"><span class="paramname"><em>user</em></span> )</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Removes the given user from any user-specific resources internal to the given terminal. </p> |
| <p>This function must be called whenever a user leaves a terminal connection.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">terminal</td><td>The terminal that the given user is leaving. </td></tr> |
| <tr><td class="paramname">user</td><td>The user who is disconnecting. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="a9ae71ac3cbc89da6fcec99ffffc9699a" name="a9ae71ac3cbc89da6fcec99ffffc9699a"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a9ae71ac3cbc89da6fcec99ffffc9699a">◆ </a></span>guac_terminal_render_frame()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int guac_terminal_render_frame </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>terminal</em></span></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Renders a single frame of terminal data. </p> |
| <p>If data is not yet available, this function will block until data is written.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">terminal</td><td>The terminal that should be rendered.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Zero if the frame was rendered successfully, non-zero if an error occurred. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="a97b019b5e12ca00a928f75e67288c92e" name="a97b019b5e12ca00a928f75e67288c92e"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a97b019b5e12ca00a928f75e67288c92e">◆ </a></span>guac_terminal_resize()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int guac_terminal_resize </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>term</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>width</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>height</em></span> )</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Resize the client display and terminal to the given pixel dimensions. </p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">term</td><td>The terminal to resize.</td></tr> |
| <tr><td class="paramname">width</td><td>The new terminal width, in pixels.</td></tr> |
| <tr><td class="paramname">height</td><td>The new terminal height, in pixels.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Zero if the terminal was successfully resized to the given dimensions, non-zero otherwise. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="a70466d89636307fc3d634f6aacb6d8b8" name="a70466d89636307fc3d634f6aacb6d8b8"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a70466d89636307fc3d634f6aacb6d8b8">◆ </a></span>guac_terminal_send_data()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int guac_terminal_send_data </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>term</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const char *</td> <td class="paramname"><span class="paramname"><em>data</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>length</em></span> )</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Sends the given string as if typed by the user. </p> |
| <p>If terminal input is currently coming from a stream due to a prior call to <a class="el" href="#a27845ddb5cd953a3be20a2756e303c39" title="Initializes the handlers of the given guac_stream such that it serves as the source of input to the t...">guac_terminal_send_stream()</a>, any input which would normally result from invoking this function is dropped.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">term</td><td>The terminal which should receive the given data on STDIN.</td></tr> |
| <tr><td class="paramname">data</td><td>The data the terminal should receive on STDIN.</td></tr> |
| <tr><td class="paramname">length</td><td>The size of the given data, in bytes.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>The number of bytes written to STDIN, or a negative value if an error occurs preventing the data from being written. This should always be the size of the data given unless data is intentionally dropped. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ab3494afd916ce1a1643705b7be37ecdb" name="ab3494afd916ce1a1643705b7be37ecdb"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ab3494afd916ce1a1643705b7be37ecdb">◆ </a></span>guac_terminal_send_key()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int guac_terminal_send_key </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>term</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>keysym</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>pressed</em></span> )</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Handles the given key event, sending data, scrolling, pasting clipboard data, etc. </p> |
| <p>as necessary. If terminal input is currently coming from a stream due to a prior call to <a class="el" href="#a27845ddb5cd953a3be20a2756e303c39" title="Initializes the handlers of the given guac_stream such that it serves as the source of input to the t...">guac_terminal_send_stream()</a>, any input which would normally result from the key event is dropped.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">term</td><td>The terminal which should receive the given data on STDIN.</td></tr> |
| <tr><td class="paramname">keysym</td><td>The X11 keysym of the key that was pressed or released.</td></tr> |
| <tr><td class="paramname">pressed</td><td>Non-zero if the key represented by the given keysym is currently pressed, zero if it is released.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Zero if the key event was handled successfully, non-zero otherwise. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ab724f2fc2c90524b52693a1a9317bc43" name="ab724f2fc2c90524b52693a1a9317bc43"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ab724f2fc2c90524b52693a1a9317bc43">◆ </a></span>guac_terminal_send_mouse()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int guac_terminal_send_mouse </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>term</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">guac_user *</td> <td class="paramname"><span class="paramname"><em>user</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>x</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>y</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>mask</em></span> )</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Handles the given mouse event, sending data, scrolling, pasting clipboard data, etc. </p> |
| <p>as necessary. If terminal input is currently coming from a stream due to a prior call to <a class="el" href="#a27845ddb5cd953a3be20a2756e303c39" title="Initializes the handlers of the given guac_stream such that it serves as the source of input to the t...">guac_terminal_send_stream()</a>, any input which would normally result from the mouse event is dropped.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">term</td><td>The terminal which should receive the given data on STDIN.</td></tr> |
| <tr><td class="paramname">user</td><td>The user that originated the mouse event.</td></tr> |
| <tr><td class="paramname">x</td><td>The X coordinate of the mouse within the display when the event occurred, in pixels. This value is not guaranteed to be within the bounds of the display area.</td></tr> |
| <tr><td class="paramname">y</td><td>The Y coordinate of the mouse within the display when the event occurred, in pixels. This value is not guaranteed to be within the bounds of the display area.</td></tr> |
| <tr><td class="paramname">mask</td><td>An integer value representing the current state of each button, where the Nth bit within the integer is set to 1 if and only if the Nth mouse button is currently pressed. The lowest-order bit is the left mouse button, followed by the middle button, right button, and finally the up and down buttons of the scroll wheel.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section see"><dt>See also</dt><dd>GUAC_CLIENT_MOUSE_LEFT </dd> |
| <dd> |
| GUAC_CLIENT_MOUSE_MIDDLE </dd> |
| <dd> |
| GUAC_CLIENT_MOUSE_RIGHT </dd> |
| <dd> |
| GUAC_CLIENT_MOUSE_SCROLL_UP </dd> |
| <dd> |
| GUAC_CLIENT_MOUSE_SCROLL_DOWN</dd></dl> |
| <dl class="section return"><dt>Returns</dt><dd>Zero if the mouse event was handled successfully, non-zero otherwise. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="a27845ddb5cd953a3be20a2756e303c39" name="a27845ddb5cd953a3be20a2756e303c39"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a27845ddb5cd953a3be20a2756e303c39">◆ </a></span>guac_terminal_send_stream()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int guac_terminal_send_stream </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>term</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">guac_user *</td> <td class="paramname"><span class="paramname"><em>user</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">guac_stream *</td> <td class="paramname"><span class="paramname"><em>stream</em></span> )</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Initializes the handlers of the given guac_stream such that it serves as the source of input to the terminal. </p> |
| <p>Other input sources will be temporarily ignored until the stream is closed through receiving an "end" instruction. If input is already being read from a stream due to a prior call to <a class="el" href="#a27845ddb5cd953a3be20a2756e303c39" title="Initializes the handlers of the given guac_stream such that it serves as the source of input to the t...">guac_terminal_send_stream()</a>, the prior call will remain in effect and this call will fail.</p> |
| <p>Calling this function will overwrite the data member of the given guac_stream.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">term</td><td>The terminal emulator which should receive input from the given stream.</td></tr> |
| <tr><td class="paramname">user</td><td>The user that opened the stream.</td></tr> |
| <tr><td class="paramname">stream</td><td>The guac_stream which should serve as the source of input for the terminal.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Zero if the terminal input has successfully been configured to read from the given stream, non-zero otherwise. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="afbacbcde592fe90b67fd8cd0b49d3375" name="afbacbcde592fe90b67fd8cd0b49d3375"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#afbacbcde592fe90b67fd8cd0b49d3375">◆ </a></span>guac_terminal_send_string()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int guac_terminal_send_string </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>term</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const char *</td> <td class="paramname"><span class="paramname"><em>data</em></span> )</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Sends the given string as if typed by the user. </p> |
| <p>If terminal input is currently coming from a stream due to a prior call to <a class="el" href="#a27845ddb5cd953a3be20a2756e303c39" title="Initializes the handlers of the given guac_stream such that it serves as the source of input to the t...">guac_terminal_send_stream()</a>, any input which would normally result from invoking this function is dropped.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">term</td><td>The terminal which should receive the given data on STDIN.</td></tr> |
| <tr><td class="paramname">data</td><td>The data the terminal should receive on STDIN.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>The number of bytes written to STDIN, or a negative value if an error occurs preventing the data from being written. This should always be the size of the data given unless data is intentionally dropped. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="a60ffed55f8949c8054c76417c9284cfd" name="a60ffed55f8949c8054c76417c9284cfd"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a60ffed55f8949c8054c76417c9284cfd">◆ </a></span>guac_terminal_sendf()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int guac_terminal_sendf </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>term</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const char *</td> <td class="paramname"><span class="paramname"><em>format</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"></td> <td class="paramname"><span class="paramname"><em>...</em></span> )</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Sends data through STDIN as if typed by the user, using the format string given and any args (similar to printf). </p> |
| <p>If terminal input is currently coming from a stream due to a prior call to <a class="el" href="#a27845ddb5cd953a3be20a2756e303c39" title="Initializes the handlers of the given guac_stream such that it serves as the source of input to the t...">guac_terminal_send_stream()</a>, any input which would normally result from invoking this function is dropped.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">term</td><td>The terminal which should receive the given data on STDIN.</td></tr> |
| <tr><td class="paramname">format</td><td>A printf-style format string describing the data to be received on STDIN.</td></tr> |
| <tr><td class="paramname">...</td><td>Any arguments to use when filling the format string.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>The number of bytes written to STDIN, or a negative value if an error occurs preventing the data from being written. This should always be the size of the data given unless data is intentionally dropped. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="aaf1ce41caa5967880522367f9c122eb4" name="aaf1ce41caa5967880522367f9c122eb4"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#aaf1ce41caa5967880522367f9c122eb4">◆ </a></span>guac_terminal_set_file_download_handler()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void guac_terminal_set_file_download_handler </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>terminal</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="#a292a4a16877319e6f37311d23a9cbee5">guac_terminal_file_download_handler</a> *</td> <td class="paramname"><span class="paramname"><em>file_download_handler</em></span> )</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Sets the file download handler for the given terminal. </p> |
| <p>The file download handler is invoked whenever the terminal codes requesting download of a given remote file are sent.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">terminal</td><td>The terminal to set the file download handler for.</td></tr> |
| <tr><td class="paramname">file_download_handler</td><td>The handler to be called whenever the necessary terminal codes are sent to the given terminal to initiate a download of a given remote file. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="a38376ea497a267c989e1a4683ffbb4d4" name="a38376ea497a267c989e1a4683ffbb4d4"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a38376ea497a267c989e1a4683ffbb4d4">◆ </a></span>guac_terminal_set_upload_path_handler()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void guac_terminal_set_upload_path_handler </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>terminal</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="#a356cbe7fd894f73690eae185b38c6079">guac_terminal_upload_path_handler</a> *</td> <td class="paramname"><span class="paramname"><em>upload_path_handler</em></span> )</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Sets the upload path handler for the given terminal. </p> |
| <p>The upload path handler is invoked whenever the terminal codes requesting an upload path change are sent.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">terminal</td><td>The terminal to set the upload path handler for.</td></tr> |
| <tr><td class="paramname">upload_path_handler</td><td>The handler to be called whenever the necessary terminal codes are sent to the given terminal to change the path for future file uploads. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="a4d9edc5e72aea67a7494c97d0fbe4196" name="a4d9edc5e72aea67a7494c97d0fbe4196"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a4d9edc5e72aea67a7494c97d0fbe4196">◆ </a></span>guac_terminal_start()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void guac_terminal_start </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>term</em></span></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Notifies the terminal that rendering should begin and that user input should now be accepted. </p> |
| <p>This function must be invoked following terminal creation for the end of frames to be signalled with "sync" messages. Until this function is invoked, "sync" messages will be withheld.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">term</td><td>The terminal to start. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="a4bf310780f9d6265737cf86b6d859e8d" name="a4bf310780f9d6265737cf86b6d859e8d"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a4bf310780f9d6265737cf86b6d859e8d">◆ </a></span>guac_terminal_stop()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void guac_terminal_stop </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>term</em></span></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Manually stop the terminal to forcibly unblock any pending reads/writes, e.g. </p> |
| <p>forcing <a class="el" href="#acc75e5ce65304c14ae2b7abeba0bcfdf" title="Reads from this terminal's STDIN.">guac_terminal_read_stdin()</a> to return and cease all terminal I/O.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">term</td><td>The terminal to stop. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="a2a364b474a0311ed18a01a438e2d61f2" name="a2a364b474a0311ed18a01a438e2d61f2"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a2a364b474a0311ed18a01a438e2d61f2">◆ </a></span>guac_terminal_sync_users()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">void guac_terminal_sync_users </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>term</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">guac_client *</td> <td class="paramname"><span class="paramname"><em>client</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">guac_socket *</td> <td class="paramname"><span class="paramname"><em>socket</em></span> )</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Replicates the current display state to one or more users that are joining the connection. </p> |
| <p>All instructions necessary to replicate state are sent over the given socket. The set of users receiving these instructions is determined solely by the socket chosen.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">term</td><td>The terminal whose state should be synchronized to the users.</td></tr> |
| <tr><td class="paramname">client</td><td>The client associated with the users to be synchronized.</td></tr> |
| <tr><td class="paramname">socket</td><td>The socket to which the terminal state will be broadcast. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| |
| </div> |
| </div> |
| <a id="a517cfb03bfbddb3668b9a328d30cf880" name="a517cfb03bfbddb3668b9a328d30cf880"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a517cfb03bfbddb3668b9a328d30cf880">◆ </a></span>guac_terminal_write()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">int guac_terminal_write </td> |
| <td>(</td> |
| <td class="paramtype"><a class="el" href="#a49f29d5b500f0d3089e85e0b00903030">guac_terminal</a> *</td> <td class="paramname"><span class="paramname"><em>term</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const char *</td> <td class="paramname"><span class="paramname"><em>buffer</em></span>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int</td> <td class="paramname"><span class="paramname"><em>length</em></span> )</td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| |
| <p>Writes the given buffer to the given terminal's STDOUT. </p> |
| <p>All requested bytes will be written unless an error occurs. This function may block until space is freed in the output buffer by <a class="el" href="#a9ae71ac3cbc89da6fcec99ffffc9699a" title="Renders a single frame of terminal data.">guac_terminal_render_frame()</a>.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">term</td><td>The terminal to write to.</td></tr> |
| <tr><td class="paramname">buffer</td><td>A buffer containing the characters to be written to the terminal.</td></tr> |
| <tr><td class="paramname">length</td><td>The number of bytes within the given string to write to the terminal.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>The number of bytes written to STDOUT, or a negative value if an error occurs preventing the data from being written in its entirety. </dd></dl> |
| |
| </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_145042b6f7f292100d5d9150e80a046e.html">terminal</a></li><li class="navelem"><a class="el" href="terminal_8h.html">terminal.h</a></li> |
| <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li> |
| </ul> |
| </div> |
| </body> |
| </html> |