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
00132 int guac_protocol_send_key(guac_socket* socket, int keysym, int pressed,
00133 guac_timestamp timestamp);
00134
00147 int guac_protocol_send_log(guac_socket* socket, const char* format, ...);
00148
00170 int vguac_protocol_send_log(guac_socket* socket, const char* format,
00171 va_list args);
00172
00208 int guac_protocol_send_mouse(guac_socket* socket, int x, int y,
00209 int button_mask, guac_timestamp timestamp);
00210
00224 int guac_protocol_send_nest(guac_socket* socket, int index,
00225 const char* data);
00226
00237 int guac_protocol_send_nop(guac_socket* socket);
00238
00249 int guac_protocol_send_ready(guac_socket* socket, const char* id);
00250
00263 int guac_protocol_send_set(guac_socket* socket, const guac_layer* layer,
00264 const char* name, const char* value);
00265
00276 int guac_protocol_send_select(guac_socket* socket, const char* protocol);
00277
00289 int guac_protocol_send_sync(guac_socket* socket, guac_timestamp timestamp);
00290
00291
00292
00318 int guac_protocol_send_body(guac_socket* socket, const guac_object* object,
00319 const guac_stream* stream, const char* mimetype, const char* name);
00320
00339 int guac_protocol_send_filesystem(guac_socket* socket,
00340 const guac_object* object, const char* name);
00341
00357 int guac_protocol_send_undefine(guac_socket* socket,
00358 const guac_object* object);
00359
00360
00361
00380 int guac_protocol_send_audio(guac_socket* socket, const guac_stream* stream,
00381 const char* mimetype);
00382
00395 int guac_protocol_send_file(guac_socket* socket, const guac_stream* stream,
00396 const char* mimetype, const char* name);
00397
00410 int guac_protocol_send_pipe(guac_socket* socket, const guac_stream* stream,
00411 const char* mimetype, const char* name);
00412
00427 int guac_protocol_send_blob(guac_socket* socket, const guac_stream* stream,
00428 const void* data, int count);
00429
00440 int guac_protocol_send_end(guac_socket* socket, const guac_stream* stream);
00441
00463 int guac_protocol_send_video(guac_socket* socket, const guac_stream* stream,
00464 const guac_layer* layer, const char* mimetype);
00465
00466
00467
00485 int guac_protocol_send_arc(guac_socket* socket, const guac_layer* layer,
00486 int x, int y, int radius, double startAngle, double endAngle,
00487 int negative);
00488
00504 int guac_protocol_send_cfill(guac_socket* socket,
00505 guac_composite_mode mode, const guac_layer* layer,
00506 int r, int g, int b, int a);
00507
00518 int guac_protocol_send_clip(guac_socket* socket, const guac_layer* layer);
00519
00530 int guac_protocol_send_close(guac_socket* socket, const guac_layer* layer);
00531
00552 int guac_protocol_send_copy(guac_socket* socket,
00553 const guac_layer* srcl, int srcx, int srcy, int w, int h,
00554 guac_composite_mode mode, const guac_layer* dstl, int dstx, int dsty);
00555
00574 int guac_protocol_send_cstroke(guac_socket* socket,
00575 guac_composite_mode mode, const guac_layer* layer,
00576 guac_line_cap_style cap, guac_line_join_style join, int thickness,
00577 int r, int g, int b, int a);
00578
00595 int guac_protocol_send_cursor(guac_socket* socket, int x, int y,
00596 const guac_layer* srcl, int srcx, int srcy, int w, int h);
00597
00614 int guac_protocol_send_curve(guac_socket* socket, const guac_layer* layer,
00615 int cp1x, int cp1y, int cp2x, int cp2y, int x, int y);
00616
00627 int guac_protocol_send_identity(guac_socket* socket, const guac_layer* layer);
00628
00641 int guac_protocol_send_lfill(guac_socket* socket,
00642 guac_composite_mode mode, const guac_layer* layer,
00643 const guac_layer* srcl);
00644
00657 int guac_protocol_send_line(guac_socket* socket, const guac_layer* layer,
00658 int x, int y);
00659
00675 int guac_protocol_send_lstroke(guac_socket* socket,
00676 guac_composite_mode mode, const guac_layer* layer,
00677 guac_line_cap_style cap, guac_line_join_style join, int thickness,
00678 const guac_layer* srcl);
00679
00713 int guac_protocol_send_img(guac_socket* socket, const guac_stream* stream,
00714 guac_composite_mode mode, const guac_layer* layer,
00715 const char* mimetype, int x, int y);
00716
00727 int guac_protocol_send_pop(guac_socket* socket, const guac_layer* layer);
00728
00739 int guac_protocol_send_push(guac_socket* socket, const guac_layer* layer);
00740
00755 int guac_protocol_send_rect(guac_socket* socket, const guac_layer* layer,
00756 int x, int y, int width, int height);
00757
00768 int guac_protocol_send_reset(guac_socket* socket, const guac_layer* layer);
00769
00782 int guac_protocol_send_start(guac_socket* socket, const guac_layer* layer,
00783 int x, int y);
00784
00805 int guac_protocol_send_transfer(guac_socket* socket,
00806 const guac_layer* srcl, int srcx, int srcy, int w, int h,
00807 guac_transfer_function fn, const guac_layer* dstl, int dstx, int dsty);
00808
00825 int guac_protocol_send_transform(guac_socket* socket,
00826 const guac_layer* layer,
00827 double a, double b, double c,
00828 double d, double e, double f);
00829
00830
00831
00842 int guac_protocol_send_dispose(guac_socket* socket, const guac_layer* layer);
00843
00860 int guac_protocol_send_distort(guac_socket* socket,
00861 const guac_layer* layer,
00862 double a, double b, double c,
00863 double d, double e, double f);
00864
00880 int guac_protocol_send_move(guac_socket* socket, const guac_layer* layer,
00881 const guac_layer* parent, int x, int y, int z);
00882
00894 int guac_protocol_send_shade(guac_socket* socket, const guac_layer* layer,
00895 int a);
00896
00909 int guac_protocol_send_size(guac_socket* socket, const guac_layer* layer,
00910 int w, int h);
00911
00912
00913
00925 int guac_protocol_send_clipboard(guac_socket* socket, const guac_stream* stream,
00926 const char* mimetype);
00927
00935 int guac_protocol_send_name(guac_socket* socket, const char* name);
00936
00944 int guac_protocol_decode_base64(char* base64);
00945
00946 #endif
00947