libguac
0.9.2
Main Page
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
guacamole
client.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2013 Glyptodon LLC
3
*
4
* Permission is hereby granted, free of charge, to any person obtaining a copy
5
* of this software and associated documentation files (the "Software"), to deal
6
* in the Software without restriction, including without limitation the rights
7
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
* copies of the Software, and to permit persons to whom the Software is
9
* furnished to do so, subject to the following conditions:
10
*
11
* The above copyright notice and this permission notice shall be included in
12
* all copies or substantial portions of the Software.
13
*
14
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
* THE SOFTWARE.
21
*/
22
23
#ifndef _GUAC_CLIENT_H
24
#define _GUAC_CLIENT_H
25
32
#include "
client-fntypes.h
"
33
#include "
client-types.h
"
34
#include "
client-constants.h
"
35
#include "
instruction-types.h
"
36
#include "
layer-types.h
"
37
#include "
pool-types.h
"
38
#include "
socket-types.h
"
39
#include "
stream-types.h
"
40
#include "
timestamp-types.h
"
41
42
#include <stdarg.h>
43
44
struct
guac_client_info
{
45
52
int
optimal_width
;
53
60
int
optimal_height
;
61
66
const
char
**
audio_mimetypes
;
67
72
const
char
**
video_mimetypes
;
73
81
int
optimal_resolution
;
82
83
};
84
85
struct
guac_client
{
86
94
guac_socket
*
socket
;
95
102
guac_client_state
state
;
103
108
guac_timestamp
last_received_timestamp
;
109
114
guac_timestamp
last_sent_timestamp
;
115
120
guac_client_info
info
;
121
127
void
*
data
;
128
143
guac_client_handle_messages
*
handle_messages
;
144
170
guac_client_mouse_handler
*
mouse_handler
;
171
188
guac_client_key_handler
*
key_handler
;
189
209
guac_client_clipboard_handler
*
clipboard_handler
;
210
226
guac_client_size_handler
*
size_handler
;
227
245
guac_client_file_handler
*
file_handler
;
246
264
guac_client_pipe_handler
*
pipe_handler
;
265
283
guac_client_ack_handler
*
ack_handler
;
284
302
guac_client_blob_handler
*
blob_handler
;
303
320
guac_client_end_handler
*
end_handler
;
321
343
guac_client_free_handler
*
free_handler
;
344
367
guac_client_log_handler
*
log_info_handler
;
368
391
guac_client_log_handler
*
log_error_handler
;
392
398
guac_pool
* __buffer_pool;
399
405
guac_pool
* __layer_pool;
406
410
guac_pool
* __stream_pool;
411
415
guac_stream
* __output_streams;
416
420
guac_stream
* __input_streams;
421
429
char
*
connection_id
;
430
431
};
432
439
guac_client
*
guac_client_alloc
();
440
446
void
guac_client_free
(
guac_client
* client);
447
458
int
guac_client_handle_instruction
(
guac_client
* client,
guac_instruction
* instruction);
459
470
void
guac_client_log_info
(
guac_client
* client,
const
char
* format, ...);
471
482
void
guac_client_log_error
(
guac_client
* client,
const
char
* format, ...);
483
495
void
vguac_client_log_info
(
guac_client
* client,
const
char
* format, va_list ap);
496
508
void
vguac_client_log_error
(
guac_client
* client,
const
char
* format, va_list ap);
509
517
void
guac_client_stop
(
guac_client
* client);
518
530
void
guac_client_abort
(
guac_client
* client,
guac_protocol_status
status,
531
const
char
* format, ...);
532
545
void
vguac_client_abort
(
guac_client
* client,
guac_protocol_status
status,
546
const
char
* format, va_list ap);
547
555
guac_layer
*
guac_client_alloc_buffer
(
guac_client
* client);
556
564
guac_layer
*
guac_client_alloc_layer
(
guac_client
* client);
565
573
void
guac_client_free_buffer
(
guac_client
* client,
guac_layer
* layer);
574
582
void
guac_client_free_layer
(
guac_client
* client,
guac_layer
* layer);
583
591
guac_stream
*
guac_client_alloc_stream
(
guac_client
* client);
592
600
void
guac_client_free_stream
(
guac_client
* client,
guac_stream
* stream);
601
605
extern
const
guac_layer
*
GUAC_DEFAULT_LAYER
;
606
607
#endif
608
Generated on Mon Jul 21 2014 14:14:14 for libguac by
1.8.1.2