libguac  0.9.13-incubating
protocol-types.h
Go to the documentation of this file.
1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one
3  * or more contributor license agreements. See the NOTICE file
4  * distributed with this work for additional information
5  * regarding copyright ownership. The ASF licenses this file
6  * to you under the Apache License, Version 2.0 (the
7  * "License"); you may not use this file except in compliance
8  * with the License. You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing,
13  * software distributed under the License is distributed on an
14  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15  * KIND, either express or implied. See the License for the
16  * specific language governing permissions and limitations
17  * under the License.
18  */
19 
20 #ifndef _GUAC_PROTOCOL_TYPES_H
21 #define _GUAC_PROTOCOL_TYPES_H
22 
44 typedef enum guac_protocol_status {
45 
50 
55 
60 
65 
71 
77 
83 
89 
95 
101 
107 
113 
119 
124 
130 
136 
142 
147 
152 
157 
163 
165 
170 typedef enum guac_composite_mode {
171 
172  /*
173  * A: Source where destination transparent = S n D'
174  * B: Source where destination opaque = S n D
175  * C: Destination where source transparent = D n S'
176  * D: Destination where source opaque = D n S
177  *
178  * 0 = Active, 1 = Inactive
179  */
180  /* ABCD */
181  GUAC_COMP_ROUT = 0x2, /* 0010 - Clears destination where source opaque */
182  GUAC_COMP_ATOP = 0x6, /* 0110 - Fill where destination opaque only */
183  GUAC_COMP_XOR = 0xA, /* 1010 - XOR */
184  GUAC_COMP_ROVER = 0xB, /* 1011 - Fill where destination transparent only */
185  GUAC_COMP_OVER = 0xE, /* 1110 - Draw normally */
186  GUAC_COMP_PLUS = 0xF, /* 1111 - Add */
187 
188  /* Unimplemented in client: */
189  /* NOT IMPLEMENTED: 0000 - Clear */
190  /* NOT IMPLEMENTED: 0011 - No operation */
191  /* NOT IMPLEMENTED: 0101 - Additive IN */
192  /* NOT IMPLEMENTED: 0111 - Additive ATOP */
193  /* NOT IMPLEMENTED: 1101 - Additive RATOP */
194 
195  /* Buggy in webkit browsers, as they keep channel C on in all cases: */
196  GUAC_COMP_RIN = 0x1, /* 0001 */
197  GUAC_COMP_IN = 0x4, /* 0100 */
198  GUAC_COMP_OUT = 0x8, /* 1000 */
199  GUAC_COMP_RATOP = 0x9, /* 1001 */
200  GUAC_COMP_SRC = 0xC /* 1100 */
201 
202  /* Bitwise composite operations (binary) */
203 
204  /*
205  * A: S' & D'
206  * B: S' & D
207  * C: S & D'
208  * D: S & D
209  *
210  * 0 = Active, 1 = Inactive
211  */
212 
214 
220 
221  /* Constant functions */ /* ABCD */
222  GUAC_TRANSFER_BINARY_BLACK = 0x0, /* 0000 */
223  GUAC_TRANSFER_BINARY_WHITE = 0xF, /* 1111 */
224 
225  /* Copy functions */
226  GUAC_TRANSFER_BINARY_SRC = 0x3, /* 0011 */
227  GUAC_TRANSFER_BINARY_DEST = 0x5, /* 0101 */
228  GUAC_TRANSFER_BINARY_NSRC = 0xC, /* 1100 */
229  GUAC_TRANSFER_BINARY_NDEST = 0xA, /* 1010 */
230 
231  /* AND / NAND */
232  GUAC_TRANSFER_BINARY_AND = 0x1, /* 0001 */
233  GUAC_TRANSFER_BINARY_NAND = 0xE, /* 1110 */
234 
235  /* OR / NOR */
236  GUAC_TRANSFER_BINARY_OR = 0x7, /* 0111 */
237  GUAC_TRANSFER_BINARY_NOR = 0x8, /* 1000 */
238 
239  /* XOR / XNOR */
240  GUAC_TRANSFER_BINARY_XOR = 0x6, /* 0110 */
241  GUAC_TRANSFER_BINARY_XNOR = 0x9, /* 1001 */
242 
243  /* AND / NAND with inverted source */
244  GUAC_TRANSFER_BINARY_NSRC_AND = 0x4, /* 0100 */
245  GUAC_TRANSFER_BINARY_NSRC_NAND = 0xB, /* 1011 */
246 
247  /* OR / NOR with inverted source */
248  GUAC_TRANSFER_BINARY_NSRC_OR = 0xD, /* 1101 */
249  GUAC_TRANSFER_BINARY_NSRC_NOR = 0x2, /* 0010 */
250 
251  /* AND / NAND with inverted destination */
252  GUAC_TRANSFER_BINARY_NDEST_AND = 0x2, /* 0010 */
253  GUAC_TRANSFER_BINARY_NDEST_NAND = 0xD, /* 1101 */
254 
255  /* OR / NOR with inverted destination */
256  GUAC_TRANSFER_BINARY_NDEST_OR = 0xB, /* 1011 */
257  GUAC_TRANSFER_BINARY_NDEST_NOR = 0x4 /* 0100 */
258 
260 
264 typedef enum guac_line_cap_style {
265  GUAC_LINE_CAP_BUTT = 0x0,
266  GUAC_LINE_CAP_ROUND = 0x1,
267  GUAC_LINE_CAP_SQUARE = 0x2
269 
273 typedef enum guac_line_join_style {
274  GUAC_LINE_JOIN_BEVEL = 0x0,
275  GUAC_LINE_JOIN_MITER = 0x1,
276  GUAC_LINE_JOIN_ROUND = 0x2
278 
279 #endif
280 
The operation could not be performed due as the server is busy.
Definition: protocol-types.h:64
Permission was denied to perform the operation, and this permission will not be granted even if the u...
Definition: protocol-types.h:141
The session within the upstream server has ended because it conflicted with another session...
Definition: protocol-types.h:112
Permission was denied to perform the operation, as the user is not yet authorized (not yet logged in...
Definition: protocol-types.h:135
The operation could not be performed because bad parameters were given.
Definition: protocol-types.h:129
The operation failed because the current client is already using too many resources.
Definition: protocol-types.h:162
The session within the upstream server has ended because it appeared to be inactive.
Definition: protocol-types.h:118
guac_line_join_style
Supported line join styles.
Definition: protocol-types.h:273
The session within the upstream server has been forcibly terminated.
Definition: protocol-types.h:123
guac_transfer_function
Default transfer functions.
Definition: protocol-types.h:219
The requested operation is unsupported.
Definition: protocol-types.h:54
guac_line_cap_style
Supported line cap styles.
Definition: protocol-types.h:264
The client sent too much data.
Definition: protocol-types.h:151
The operation could not be performed because the upstream server is not available to service the requ...
Definition: protocol-types.h:106
The client took too long to respond.
Definition: protocol-types.h:146
The operation was unsuccessful due to an error or otherwise unexpected condition of the upstream serv...
Definition: protocol-types.h:76
The client sent data of an unsupported or unexpected type.
Definition: protocol-types.h:156
The operation could not be performed as the requested resource does not exist.
Definition: protocol-types.h:82
The operation could not be performed because the upstream server is not responding.
Definition: protocol-types.h:70
guac_composite_mode
Composite modes used by Guacamole draw instructions.
Definition: protocol-types.h:170
The operation could not be performed as the requested resource is now closed.
Definition: protocol-types.h:94
guac_protocol_status
Set of all possible status codes returned by protocol operations.
Definition: protocol-types.h:44
The operation could not be performed because the upstream server does not appear to exist...
Definition: protocol-types.h:100
The operation could not be performed due to an internal failure.
Definition: protocol-types.h:59
The operation could not be performed as the requested resource is already in use. ...
Definition: protocol-types.h:88
The operation succeeded.
Definition: protocol-types.h:49