GUAC-1172: Implement filesystem, body, and undefine instructions.
This commit is contained in:
parent
f7e6deeaf4
commit
6e3a12b604
@ -32,6 +32,7 @@
|
||||
*/
|
||||
|
||||
#include "layer-types.h"
|
||||
#include "object-types.h"
|
||||
#include "protocol-types.h"
|
||||
#include "socket-types.h"
|
||||
#include "stream-types.h"
|
||||
@ -217,6 +218,75 @@ int guac_protocol_send_select(guac_socket* socket, const char* protocol);
|
||||
*/
|
||||
int guac_protocol_send_sync(guac_socket* socket, guac_timestamp timestamp);
|
||||
|
||||
/* OBJECT INSTRUCTIONS */
|
||||
|
||||
/**
|
||||
* Sends a body instruction over the given guac_socket connection.
|
||||
*
|
||||
* If an error occurs sending the instruction, a non-zero value is
|
||||
* returned, and guac_error is set appropriately.
|
||||
*
|
||||
* @param socket
|
||||
* The guac_socket connection to use.
|
||||
*
|
||||
* @param object
|
||||
* The object to associated with the stream being used.
|
||||
*
|
||||
* @param stream
|
||||
* The stream to use.
|
||||
*
|
||||
* @param mimetype
|
||||
* The mimetype of the data being sent.
|
||||
*
|
||||
* @param name
|
||||
* The name of the stream whose body is being sent, as requested by a "get"
|
||||
* instruction.
|
||||
*
|
||||
* @return
|
||||
* Zero on success, non-zero on error.
|
||||
*/
|
||||
int guac_protocol_send_body(guac_socket* socket, const guac_object* object,
|
||||
const guac_stream* stream, const char* mimetype, const char* name);
|
||||
|
||||
/**
|
||||
* Sends a filesystem instruction over the given guac_socket connection.
|
||||
*
|
||||
* If an error occurs sending the instruction, a non-zero value is
|
||||
* returned, and guac_error is set appropriately.
|
||||
*
|
||||
* @param socket
|
||||
* The guac_socket connection to use.
|
||||
*
|
||||
* @param object
|
||||
* The object representing the filesystem being exposed.
|
||||
*
|
||||
* @param name
|
||||
* A name describing the filesystem being exposed.
|
||||
*
|
||||
* @return
|
||||
* Zero on success, non-zero on error.
|
||||
*/
|
||||
int guac_protocol_send_filesystem(guac_socket* socket,
|
||||
const guac_object* object, const char* name);
|
||||
|
||||
/**
|
||||
* Sends an undefine instruction over the given guac_socket connection.
|
||||
*
|
||||
* If an error occurs sending the instruction, a non-zero value is
|
||||
* returned, and guac_error is set appropriately.
|
||||
*
|
||||
* @param socket
|
||||
* The guac_socket connection to use.
|
||||
*
|
||||
* @param object
|
||||
* The object being undefined.
|
||||
*
|
||||
* @return
|
||||
* Zero on success, non-zero on error.
|
||||
*/
|
||||
int guac_protocol_send_undefine(guac_socket* socket,
|
||||
const guac_object* object);
|
||||
|
||||
/* MEDIA INSTRUCTIONS */
|
||||
|
||||
/**
|
||||
|
@ -24,6 +24,7 @@
|
||||
|
||||
#include "error.h"
|
||||
#include "layer.h"
|
||||
#include "object.h"
|
||||
#include "palette.h"
|
||||
#include "protocol.h"
|
||||
#include "socket.h"
|
||||
@ -463,6 +464,28 @@ int guac_protocol_send_blob(guac_socket* socket, const guac_stream* stream,
|
||||
|
||||
}
|
||||
|
||||
int guac_protocol_send_body(guac_socket* socket, const guac_object* object,
|
||||
const guac_stream* stream, const char* mimetype, const char* name) {
|
||||
|
||||
int ret_val;
|
||||
|
||||
guac_socket_instruction_begin(socket);
|
||||
ret_val =
|
||||
guac_socket_write_string(socket, "4.body,")
|
||||
|| __guac_socket_write_length_int(socket, object->index)
|
||||
|| guac_socket_write_string(socket, ",")
|
||||
|| __guac_socket_write_length_int(socket, stream->index)
|
||||
|| guac_socket_write_string(socket, ",")
|
||||
|| __guac_socket_write_length_string(socket, mimetype)
|
||||
|| guac_socket_write_string(socket, ",")
|
||||
|| __guac_socket_write_length_string(socket, name)
|
||||
|| guac_socket_write_string(socket, ";");
|
||||
|
||||
guac_socket_instruction_end(socket);
|
||||
return ret_val;
|
||||
|
||||
}
|
||||
|
||||
int guac_protocol_send_cfill(guac_socket* socket,
|
||||
guac_composite_mode mode, const guac_layer* layer,
|
||||
int r, int g, int b, int a) {
|
||||
@ -833,6 +856,24 @@ int guac_protocol_send_file(guac_socket* socket, const guac_stream* stream,
|
||||
|
||||
}
|
||||
|
||||
int guac_protocol_send_filesystem(guac_socket* socket,
|
||||
const guac_object* object, const char* name) {
|
||||
|
||||
int ret_val;
|
||||
|
||||
guac_socket_instruction_begin(socket);
|
||||
ret_val =
|
||||
guac_socket_write_string(socket, "10.filesystem,")
|
||||
|| __guac_socket_write_length_int(socket, object->index)
|
||||
|| guac_socket_write_string(socket, ",")
|
||||
|| __guac_socket_write_length_string(socket, name)
|
||||
|| guac_socket_write_string(socket, ";");
|
||||
|
||||
guac_socket_instruction_end(socket);
|
||||
return ret_val;
|
||||
|
||||
}
|
||||
|
||||
int guac_protocol_send_identity(guac_socket* socket, const guac_layer* layer) {
|
||||
|
||||
int ret_val;
|
||||
@ -1284,6 +1325,22 @@ int guac_protocol_send_transform(guac_socket* socket, const guac_layer* layer,
|
||||
|
||||
}
|
||||
|
||||
int guac_protocol_send_undefine(guac_socket* socket,
|
||||
const guac_object* object) {
|
||||
|
||||
int ret_val;
|
||||
|
||||
guac_socket_instruction_begin(socket);
|
||||
ret_val =
|
||||
guac_socket_write_string(socket, "8.undefine,")
|
||||
|| __guac_socket_write_length_int(socket, object->index)
|
||||
|| guac_socket_write_string(socket, ";");
|
||||
|
||||
guac_socket_instruction_end(socket);
|
||||
return ret_val;
|
||||
|
||||
}
|
||||
|
||||
int guac_protocol_send_video(guac_socket* socket, const guac_stream* stream,
|
||||
const guac_layer* layer, const char* mimetype, double duration) {
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user