39 #ifndef _GUAC_CLIENT_H
40 #define _GUAC_CLIENT_H
84 int width,
int height);
115 #define GUAC_CLIENT_MOUSE_LEFT 0x01
120 #define GUAC_CLIENT_MOUSE_MIDDLE 0x02
125 #define GUAC_CLIENT_MOUSE_RIGHT 0x04
134 #define GUAC_CLIENT_MOUSE_SCROLL_UP 0x08
143 #define GUAC_CLIENT_MOUSE_SCROLL_DOWN 0x10
151 #define GUAC_BUFFER_POOL_INITIAL_SIZE 1024
int guac_client_key_handler(guac_client *client, int keysym, int pressed)
Handler for Guacamole key events.
Definition: client.h:73
guac_client_state
Possible current states of the Guacamole client.
Definition: client.h:157
const guac_layer * GUAC_DEFAULT_LAYER
The default Guacamole client layer, layer 0.
Provides functions and structures required for allocating and using layers.
Provides functions and structures for maintaining dynamically allocated and freed pools of integers...
guac_socket * socket
The guac_socket structure to be used to communicate with the web-client.
Definition: client.h:224
guac_client_log_handler * log_error_handler
Handler for logging error messages.
Definition: client.h:428
The state of the client when a stop has been requested, signalling the I/O threads to shutdown...
Definition: client.h:169
guac_timestamp last_sent_timestamp
The time (in milliseconds) that the last sync message was sent to the client.
Definition: client.h:244
The core I/O object of Guacamole.
Definition: socket.h:111
void guac_client_log_error(guac_client *client, const char *format,...)
Logs an error message in the log used by the given client.
guac_stream * guac_client_alloc_stream(guac_client *client)
Allocates a new stream.
guac_client_log_handler * log_info_handler
Handler for logging informational messages.
Definition: client.h:403
Provides functions and structures for creating timestamps.
void vguac_client_log_error(guac_client *client, const char *format, va_list ap)
Logs an error message in the log used by the given client.
void * data
Arbitrary reference to proxy client-specific data.
Definition: client.h:257
Provides functions and structures for reading, writing, and manipulating Guacamole instructions...
const char ** audio_mimetypes
NULL-terminated array of client-supported audio mimetypes.
Definition: client.h:199
void guac_client_free_layer(guac_client *client, guac_layer *layer)
Returns the given layer to the pool of available layers, such that it can be reused by any subsequent...
void guac_client_log_handler(guac_client *client, const char *format, va_list args)
Handler for logging messages.
Definition: client.h:105
guac_layer * guac_client_alloc_buffer(guac_client *client)
Allocates a new buffer (invisible layer).
int guac_client_size_handler(guac_client *client, int width, int height)
Handler for Guacamole screen size events.
Definition: client.h:83
guac_client_info info
Information structure containing properties exposed by the remote client during the initial handshake...
Definition: client.h:250
Provides functions and structures required for allocating and using nested streams.
const char ** video_mimetypes
NULL-terminated array of client-supported video mimetypes.
Definition: client.h:205
guac_client_size_handler * size_handler
Handler for size events sent by the Guacamole web-client.
Definition: client.h:356
void guac_client_free_buffer(guac_client *client, guac_layer *layer)
Returns the given buffer to the pool of available buffers, such that it can be reused by any subseque...
int guac_client_clipboard_handler(guac_client *client, char *copied)
Handler for Guacamole clipboard events.
Definition: client.h:78
Information exposed by the remote client during the connection handshake which can be used by a clien...
Definition: client.h:177
guac_client_clipboard_handler * clipboard_handler
Handler for clipboard events sent by the Guacamole web-client.
Definition: client.h:339
int guac_client_handle_messages(guac_client *client)
Handler for server messages (where "server" refers to the server that the proxy client is connected t...
Definition: client.h:63
The state of the client from when it has been allocated by the main daemon until it is killed or disc...
Definition: client.h:163
guac_client_mouse_handler * mouse_handler
Handler for mouse events sent by the Gaucamole web-client.
Definition: client.h:300
guac_client_state state
The current state of the client.
Definition: client.h:232
int guac_client_handle_instruction(guac_client *client, guac_instruction *instruction)
Call the appropriate handler defined by the given client for the given instruction.
Guacamole proxy client.
Definition: client.h:215
A pool of integers.
Definition: pool.h:56
guac_client * guac_client_alloc()
Returns a new, barebones guac_client.
int optimal_width
The number of pixels the remote client requests for the display width.
Definition: client.h:185
void guac_client_free(guac_client *client)
Free all resources associated with the given client.
guac_layer * guac_client_alloc_layer(guac_client *client)
Allocates a new layer.
int64_t guac_timestamp
An arbitrary timestamp denoting a relative time value in milliseconds.
Definition: timestamp.h:52
guac_client_free_handler * free_handler
Handler for freeing data when the client is being unloaded.
Definition: client.h:379
Represents a single layer within the Guacamole protocol.
Definition: layer.h:52
void guac_client_stop(guac_client *client)
Signals the given client to stop gracefully.
Represents a single nested stream within the Guacamole protocol.
Definition: stream.h:53
guac_client_key_handler * key_handler
Handler for key events sent by the Guacamole web-client.
Definition: client.h:318
int guac_client_video_handler(guac_client *client, char *mimetype)
Handler for Guacamole video format events.
Definition: client.h:94
void guac_client_log_info(guac_client *client, const char *format,...)
Logs an informational message in the log used by the given client.
guac_client_handle_messages * handle_messages
Handler for server messages.
Definition: client.h:273
int guac_client_init_handler(guac_client *client, int argc, char **argv)
Handler which should initialize the given guac_client.
Definition: client.h:110
Represents a single instruction within the Guacamole protocol.
Definition: instruction.h:53
int guac_client_free_handler(guac_client *client)
Handler for freeing up any extra data allocated by the client implementation.
Definition: client.h:100
int optimal_height
The number of pixels the remote client requests for the display height.
Definition: client.h:193
Defines the guac_socket object and functionss for using and manipulating it.
void guac_client_free_stream(guac_client *client, guac_stream *stream)
Returns the given stream to the pool of available streams, such that it can be reused by any subseque...
void vguac_client_log_info(guac_client *client, const char *format, va_list ap)
Logs an informational message in the log used by the given client.
int guac_client_audio_handler(guac_client *client, char *mimetype)
Handler for Guacamole audio format events.
Definition: client.h:89
guac_timestamp last_received_timestamp
The time (in milliseconds) of receipt of the last sync message from the client.
Definition: client.h:238
int guac_client_mouse_handler(guac_client *client, int x, int y, int button_mask)
Handler for Guacamole mouse events.
Definition: client.h:68