00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _GUAC_PROTOCOL_H
00021 #define _GUAC_PROTOCOL_H
00022
00031 #include "layer-types.h"
00032 #include "object-types.h"
00033 #include "protocol-types.h"
00034 #include "socket-types.h"
00035 #include "stream-types.h"
00036 #include "timestamp-types.h"
00037
00038 #include <cairo/cairo.h>
00039 #include <stdarg.h>
00040
00041
00042
00057 int guac_protocol_send_ack(guac_socket* socket, guac_stream* stream,
00058 const char* error, guac_protocol_status status);
00059
00070 int guac_protocol_send_args(guac_socket* socket, const char** args);
00071
00082 int guac_protocol_send_connect(guac_socket* socket, const char** args);
00083
00093 int guac_protocol_send_disconnect(guac_socket* socket);
00094
00106 int guac_protocol_send_error(guac_socket* socket, const char* error,
00107 guac_protocol_status status);
00108
00121 int guac_protocol_send_log(guac_socket* socket, const char* format, ...);
00122
00144 int vguac_protocol_send_log(guac_socket* socket, const char* format,
00145 va_list args);
00146
00165 int guac_protocol_send_mouse(guac_socket* socket, int x, int y);
00166
00180 int guac_protocol_send_nest(guac_socket* socket, int index,
00181 const char* data);
00182
00193 int guac_protocol_send_nop(guac_socket* socket);
00194
00205 int guac_protocol_send_ready(guac_socket* socket, const char* id);
00206
00219 int guac_protocol_send_set(guac_socket* socket, const guac_layer* layer,
00220 const char* name, const char* value);
00221
00232 int guac_protocol_send_select(guac_socket* socket, const char* protocol);
00233
00245 int guac_protocol_send_sync(guac_socket* socket, guac_timestamp timestamp);
00246
00247
00248
00274 int guac_protocol_send_body(guac_socket* socket, const guac_object* object,
00275 const guac_stream* stream, const char* mimetype, const char* name);
00276
00295 int guac_protocol_send_filesystem(guac_socket* socket,
00296 const guac_object* object, const char* name);
00297
00313 int guac_protocol_send_undefine(guac_socket* socket,
00314 const guac_object* object);
00315
00316
00317
00336 int guac_protocol_send_audio(guac_socket* socket, const guac_stream* stream,
00337 const char* mimetype);
00338
00351 int guac_protocol_send_file(guac_socket* socket, const guac_stream* stream,
00352 const char* mimetype, const char* name);
00353
00366 int guac_protocol_send_pipe(guac_socket* socket, const guac_stream* stream,
00367 const char* mimetype, const char* name);
00368
00383 int guac_protocol_send_blob(guac_socket* socket, const guac_stream* stream,
00384 const void* data, int count);
00385
00396 int guac_protocol_send_end(guac_socket* socket, const guac_stream* stream);
00397
00419 int guac_protocol_send_video(guac_socket* socket, const guac_stream* stream,
00420 const guac_layer* layer, const char* mimetype);
00421
00422
00423
00441 int guac_protocol_send_arc(guac_socket* socket, const guac_layer* layer,
00442 int x, int y, int radius, double startAngle, double endAngle,
00443 int negative);
00444
00460 int guac_protocol_send_cfill(guac_socket* socket,
00461 guac_composite_mode mode, const guac_layer* layer,
00462 int r, int g, int b, int a);
00463
00474 int guac_protocol_send_clip(guac_socket* socket, const guac_layer* layer);
00475
00486 int guac_protocol_send_close(guac_socket* socket, const guac_layer* layer);
00487
00508 int guac_protocol_send_copy(guac_socket* socket,
00509 const guac_layer* srcl, int srcx, int srcy, int w, int h,
00510 guac_composite_mode mode, const guac_layer* dstl, int dstx, int dsty);
00511
00530 int guac_protocol_send_cstroke(guac_socket* socket,
00531 guac_composite_mode mode, const guac_layer* layer,
00532 guac_line_cap_style cap, guac_line_join_style join, int thickness,
00533 int r, int g, int b, int a);
00534
00551 int guac_protocol_send_cursor(guac_socket* socket, int x, int y,
00552 const guac_layer* srcl, int srcx, int srcy, int w, int h);
00553
00570 int guac_protocol_send_curve(guac_socket* socket, const guac_layer* layer,
00571 int cp1x, int cp1y, int cp2x, int cp2y, int x, int y);
00572
00583 int guac_protocol_send_identity(guac_socket* socket, const guac_layer* layer);
00584
00597 int guac_protocol_send_lfill(guac_socket* socket,
00598 guac_composite_mode mode, const guac_layer* layer,
00599 const guac_layer* srcl);
00600
00613 int guac_protocol_send_line(guac_socket* socket, const guac_layer* layer,
00614 int x, int y);
00615
00631 int guac_protocol_send_lstroke(guac_socket* socket,
00632 guac_composite_mode mode, const guac_layer* layer,
00633 guac_line_cap_style cap, guac_line_join_style join, int thickness,
00634 const guac_layer* srcl);
00635
00669 int guac_protocol_send_img(guac_socket* socket, const guac_stream* stream,
00670 guac_composite_mode mode, const guac_layer* layer,
00671 const char* mimetype, int x, int y);
00672
00683 int guac_protocol_send_pop(guac_socket* socket, const guac_layer* layer);
00684
00695 int guac_protocol_send_push(guac_socket* socket, const guac_layer* layer);
00696
00711 int guac_protocol_send_rect(guac_socket* socket, const guac_layer* layer,
00712 int x, int y, int width, int height);
00713
00724 int guac_protocol_send_reset(guac_socket* socket, const guac_layer* layer);
00725
00738 int guac_protocol_send_start(guac_socket* socket, const guac_layer* layer,
00739 int x, int y);
00740
00761 int guac_protocol_send_transfer(guac_socket* socket,
00762 const guac_layer* srcl, int srcx, int srcy, int w, int h,
00763 guac_transfer_function fn, const guac_layer* dstl, int dstx, int dsty);
00764
00781 int guac_protocol_send_transform(guac_socket* socket,
00782 const guac_layer* layer,
00783 double a, double b, double c,
00784 double d, double e, double f);
00785
00786
00787
00798 int guac_protocol_send_dispose(guac_socket* socket, const guac_layer* layer);
00799
00816 int guac_protocol_send_distort(guac_socket* socket,
00817 const guac_layer* layer,
00818 double a, double b, double c,
00819 double d, double e, double f);
00820
00836 int guac_protocol_send_move(guac_socket* socket, const guac_layer* layer,
00837 const guac_layer* parent, int x, int y, int z);
00838
00850 int guac_protocol_send_shade(guac_socket* socket, const guac_layer* layer,
00851 int a);
00852
00865 int guac_protocol_send_size(guac_socket* socket, const guac_layer* layer,
00866 int w, int h);
00867
00868
00869
00881 int guac_protocol_send_clipboard(guac_socket* socket, const guac_stream* stream,
00882 const char* mimetype);
00883
00891 int guac_protocol_send_name(guac_socket* socket, const char* name);
00892
00900 int guac_protocol_decode_base64(char* base64);
00901
00902 #endif
00903