38 #ifndef _GUAC_PROTOCOL_H
39 #define _GUAC_PROTOCOL_H
41 #include <cairo/cairo.h>
73 GUAC_COMP_ROVER = 0xB,
88 GUAC_COMP_RATOP = 0x9,
112 GUAC_TRANSFER_BINARY_BLACK = 0x0,
113 GUAC_TRANSFER_BINARY_WHITE = 0xF,
116 GUAC_TRANSFER_BINARY_SRC = 0x3,
117 GUAC_TRANSFER_BINARY_DEST = 0x5,
118 GUAC_TRANSFER_BINARY_NSRC = 0xC,
119 GUAC_TRANSFER_BINARY_NDEST = 0xA,
122 GUAC_TRANSFER_BINARY_AND = 0x1,
123 GUAC_TRANSFER_BINARY_NAND = 0xE,
126 GUAC_TRANSFER_BINARY_OR = 0x7,
127 GUAC_TRANSFER_BINARY_NOR = 0x8,
130 GUAC_TRANSFER_BINARY_XOR = 0x6,
131 GUAC_TRANSFER_BINARY_XNOR = 0x9,
134 GUAC_TRANSFER_BINARY_NSRC_AND = 0x4,
135 GUAC_TRANSFER_BINARY_NSRC_NAND = 0xB,
138 GUAC_TRANSFER_BINARY_NSRC_OR = 0xD,
139 GUAC_TRANSFER_BINARY_NSRC_NOR = 0x2,
142 GUAC_TRANSFER_BINARY_NDEST_AND = 0x2,
143 GUAC_TRANSFER_BINARY_NDEST_NAND = 0xD,
146 GUAC_TRANSFER_BINARY_NDEST_OR = 0xB,
147 GUAC_TRANSFER_BINARY_NDEST_NOR = 0x4
155 GUAC_LINE_CAP_BUTT = 0x0,
156 GUAC_LINE_CAP_ROUND = 0x1,
157 GUAC_LINE_CAP_SQUARE = 0x2
164 GUAC_LINE_JOIN_BEVEL = 0x0,
165 GUAC_LINE_JOIN_MITER = 0x1,
166 GUAC_LINE_JOIN_ROUND = 0x2
247 const char* name,
const char* value);
291 const char* mimetype,
double duration,
void* data,
int size);
322 int channel,
const char* mimetype,
double duration,
int size);
414 const char* mimetype,
double duration,
void* data,
int size);
445 const guac_layer* layer,
const char* mimetype,
double duration,
int size);
499 int x,
int y,
int radius,
double startAngle,
double endAngle,
519 int r,
int g,
int b,
int a);
566 const guac_layer* srcl,
int srcx,
int srcy,
int w,
int h,
590 int r,
int g,
int b,
int a);
609 const guac_layer* srcl,
int srcx,
int srcy,
int w,
int h);
628 int cp1x,
int cp1y,
int cp2x,
int cp2y,
int x,
int y);
709 const guac_layer* layer,
int x,
int y, cairo_surface_t* surface);
750 int x,
int y,
int width,
int height);
800 const guac_layer* srcl,
int srcx,
int srcy,
int w,
int h,
821 double a,
double b,
double c,
822 double d,
double e,
double f);
856 double a,
double b,
double c,
857 double d,
double e,
double f);
875 const guac_layer* parent,
int x,
int y,
int z);
int guac_protocol_send_set(guac_socket *socket, const guac_layer *layer, const char *name, const char *value)
Sends a set instruction over the given guac_socket connection.
int guac_protocol_send_args(guac_socket *socket, const char **args)
Sends an args instruction over the given guac_socket connection.
int guac_protocol_send_audio_data(guac_socket *socket, void *data, int count)
Writes a block of audio data to the currently in-progress audio instruction which was started with gu...
int guac_protocol_send_audio(guac_socket *socket, int channel, const char *mimetype, double duration, void *data, int size)
Sends an audio instruction over the given guac_socket connection.
int guac_protocol_send_distort(guac_socket *socket, const guac_layer *layer, double a, double b, double c, double d, double e, double f)
Sends a distort instruction over the given guac_socket connection.
int guac_protocol_send_select(guac_socket *socket, const char *protocol)
Sends a select instruction over the given guac_socket connection.
Provides functions and structures required for allocating and using layers.
int guac_protocol_send_png(guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, int x, int y, cairo_surface_t *surface)
Sends a png instruction over the given guac_socket connection.
int guac_protocol_send_audio_end(guac_socket *socket)
Completes the audio instruction which was started with guac_protocol_send_audio_header(), and whose data has been written with guac_protocol_send_audio_data().
int guac_protocol_send_audio_header(guac_socket *socket, int channel, const char *mimetype, double duration, int size)
Begins a audio instruction over the given guac_socket connection.
int guac_protocol_send_video_end(guac_socket *socket)
Completes the video instruction which was started with guac_protocol_send_video_header(), and whose data has been written with guac_protocol_send_video_data().
int guac_protocol_send_lstroke(guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, guac_line_cap_style cap, guac_line_join_style join, int thickness, const guac_layer *srcl)
Sends an lstroke instruction over the given guac_socket connection.
int guac_protocol_send_cstroke(guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, guac_line_cap_style cap, guac_line_join_style join, int thickness, int r, int g, int b, int a)
Sends a cstroke instruction over the given guac_socket connection.
int guac_protocol_send_reset(guac_socket *socket, const guac_layer *layer)
Sends a reset instruction over the given guac_socket connection.
int guac_protocol_send_blob(guac_socket *socket, int index, void *data, int count)
Writes a block of data to the currently in-progress blob which was already created.
The core I/O object of Guacamole.
Definition: socket.h:111
int guac_protocol_send_name(guac_socket *socket, const char *name)
Sends a name instruction over the given guac_socket connection.
Provides functions and structures for creating timestamps.
int guac_protocol_send_error(guac_socket *socket, const char *error)
Sends an error instruction over the given guac_socket connection.
int guac_protocol_send_transfer(guac_socket *socket, const guac_layer *srcl, int srcx, int srcy, int w, int h, guac_transfer_function fn, const guac_layer *dstl, int dstx, int dsty)
Sends a transfer instruction over the given guac_socket connection.
guac_composite_mode
Composite modes used by Guacamole draw instructions.
Definition: protocol.h:59
int guac_protocol_send_disconnect(guac_socket *socket)
Sends a disconnect instruction over the given guac_socket connection.
int guac_protocol_send_arc(guac_socket *socket, const guac_layer *layer, int x, int y, int radius, double startAngle, double endAngle, int negative)
Sends an arc instruction over the given guac_socket connection.
int guac_protocol_send_video(guac_socket *socket, const guac_layer *layer, const char *mimetype, double duration, void *data, int size)
Sends a video instruction over the given guac_socket connection.
int guac_protocol_send_move(guac_socket *socket, const guac_layer *layer, const guac_layer *parent, int x, int y, int z)
Sends a move instruction over the given guac_socket connection.
int guac_protocol_send_rect(guac_socket *socket, const guac_layer *layer, int x, int y, int width, int height)
Sends a rect instruction over the given guac_socket connection.
int guac_protocol_send_cursor(guac_socket *socket, int x, int y, const guac_layer *srcl, int srcx, int srcy, int w, int h)
Sends a cursor instruction over the given guac_socket connection.
int guac_protocol_send_identity(guac_socket *socket, const guac_layer *layer)
Sends an identity instruction over the given guac_socket connection.
int guac_protocol_send_curve(guac_socket *socket, const guac_layer *layer, int cp1x, int cp1y, int cp2x, int cp2y, int x, int y)
Sends a curve instruction over the given guac_socket connection.
int guac_protocol_send_close(guac_socket *socket, const guac_layer *layer)
Sends a close instruction over the given guac_socket connection.
int guac_protocol_send_dispose(guac_socket *socket, const guac_layer *layer)
Sends a dispose instruction over the given guac_socket connection.
int guac_protocol_send_start(guac_socket *socket, const guac_layer *layer, int x, int y)
Sends a start instruction over the given guac_socket connection.
int guac_protocol_send_sync(guac_socket *socket, guac_timestamp timestamp)
Sends a sync instruction over the given guac_socket connection.
int guac_protocol_send_lfill(guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, const guac_layer *srcl)
Sends an lfill instruction over the given guac_socket connection.
int guac_protocol_send_nest(guac_socket *socket, int index, const char *data)
Sends a nest instruction over the given guac_socket connection.
int guac_protocol_send_video_header(guac_socket *socket, const guac_layer *layer, const char *mimetype, double duration, int size)
Begins a video instruction over the given guac_socket connection.
guac_transfer_function
Default transfer functions.
Definition: protocol.h:109
int guac_protocol_send_video_data(guac_socket *socket, void *data, int count)
Writes a block of video data to the currently in-progress video instruction which was started with gu...
int guac_protocol_send_line(guac_socket *socket, const guac_layer *layer, int x, int y)
Sends a line instruction over the given guac_socket connection.
int guac_protocol_send_copy(guac_socket *socket, const guac_layer *srcl, int srcx, int srcy, int w, int h, guac_composite_mode mode, const guac_layer *dstl, int dstx, int dsty)
Sends a copy instruction over the given guac_socket connection.
int guac_protocol_send_push(guac_socket *socket, const guac_layer *layer)
Sends a push instruction over the given guac_socket connection.
int guac_protocol_send_clipboard(guac_socket *socket, const char *data)
Sends a clipboard instruction over the given guac_socket connection.
int guac_protocol_send_shade(guac_socket *socket, const guac_layer *layer, int a)
Sends a shade instruction over the given guac_socket connection.
int guac_protocol_send_clip(guac_socket *socket, const guac_layer *layer)
Sends a clip instruction over the given guac_socket connection.
int guac_protocol_send_end(guac_socket *socket, int index)
Sends an end instruction over the given guac_socket connection.
int guac_protocol_send_pop(guac_socket *socket, const guac_layer *layer)
Sends a pop instruction over the given guac_socket connection.
int guac_protocol_send_transform(guac_socket *socket, const guac_layer *layer, double a, double b, double c, double d, double e, double f)
Sends a transform instruction over the given guac_socket connection.
guac_line_join_style
Supported line join styles.
Definition: protocol.h:163
int guac_protocol_send_size(guac_socket *socket, const guac_layer *layer, int w, int h)
Sends a size instruction over the given guac_socket connection.
int64_t guac_timestamp
An arbitrary timestamp denoting a relative time value in milliseconds.
Definition: timestamp.h:52
Represents a single layer within the Guacamole protocol.
Definition: layer.h:52
int guac_protocol_send_connect(guac_socket *socket, const char **args)
Sends a connect instruction over the given guac_socket connection.
Defines the guac_socket object and functionss for using and manipulating it.
guac_line_cap_style
Supported line cap styles.
Definition: protocol.h:154
int guac_protocol_send_file(guac_socket *socket, int index, const char *mimetype, const char *name)
Sends a file instruction over the given guac_socket connection.
int guac_protocol_send_cfill(guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, int r, int g, int b, int a)
Sends a cfill instruction over the given guac_socket connection.