libguac  0.9.12-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 
118 
123 
128 
134 
136 
141 typedef enum guac_composite_mode {
142 
143  /*
144  * A: Source where destination transparent = S n D'
145  * B: Source where destination opaque = S n D
146  * C: Destination where source transparent = D n S'
147  * D: Destination where source opaque = D n S
148  *
149  * 0 = Active, 1 = Inactive
150  */
151  /* ABCD */
152  GUAC_COMP_ROUT = 0x2, /* 0010 - Clears destination where source opaque */
153  GUAC_COMP_ATOP = 0x6, /* 0110 - Fill where destination opaque only */
154  GUAC_COMP_XOR = 0xA, /* 1010 - XOR */
155  GUAC_COMP_ROVER = 0xB, /* 1011 - Fill where destination transparent only */
156  GUAC_COMP_OVER = 0xE, /* 1110 - Draw normally */
157  GUAC_COMP_PLUS = 0xF, /* 1111 - Add */
158 
159  /* Unimplemented in client: */
160  /* NOT IMPLEMENTED: 0000 - Clear */
161  /* NOT IMPLEMENTED: 0011 - No operation */
162  /* NOT IMPLEMENTED: 0101 - Additive IN */
163  /* NOT IMPLEMENTED: 0111 - Additive ATOP */
164  /* NOT IMPLEMENTED: 1101 - Additive RATOP */
165 
166  /* Buggy in webkit browsers, as they keep channel C on in all cases: */
167  GUAC_COMP_RIN = 0x1, /* 0001 */
168  GUAC_COMP_IN = 0x4, /* 0100 */
169  GUAC_COMP_OUT = 0x8, /* 1000 */
170  GUAC_COMP_RATOP = 0x9, /* 1001 */
171  GUAC_COMP_SRC = 0xC /* 1100 */
172 
173  /* Bitwise composite operations (binary) */
174 
175  /*
176  * A: S' & D'
177  * B: S' & D
178  * C: S & D'
179  * D: S & D
180  *
181  * 0 = Active, 1 = Inactive
182  */
183 
185 
191 
192  /* Constant functions */ /* ABCD */
193  GUAC_TRANSFER_BINARY_BLACK = 0x0, /* 0000 */
194  GUAC_TRANSFER_BINARY_WHITE = 0xF, /* 1111 */
195 
196  /* Copy functions */
197  GUAC_TRANSFER_BINARY_SRC = 0x3, /* 0011 */
198  GUAC_TRANSFER_BINARY_DEST = 0x5, /* 0101 */
199  GUAC_TRANSFER_BINARY_NSRC = 0xC, /* 1100 */
200  GUAC_TRANSFER_BINARY_NDEST = 0xA, /* 1010 */
201 
202  /* AND / NAND */
203  GUAC_TRANSFER_BINARY_AND = 0x1, /* 0001 */
204  GUAC_TRANSFER_BINARY_NAND = 0xE, /* 1110 */
205 
206  /* OR / NOR */
207  GUAC_TRANSFER_BINARY_OR = 0x7, /* 0111 */
208  GUAC_TRANSFER_BINARY_NOR = 0x8, /* 1000 */
209 
210  /* XOR / XNOR */
211  GUAC_TRANSFER_BINARY_XOR = 0x6, /* 0110 */
212  GUAC_TRANSFER_BINARY_XNOR = 0x9, /* 1001 */
213 
214  /* AND / NAND with inverted source */
215  GUAC_TRANSFER_BINARY_NSRC_AND = 0x4, /* 0100 */
216  GUAC_TRANSFER_BINARY_NSRC_NAND = 0xB, /* 1011 */
217 
218  /* OR / NOR with inverted source */
219  GUAC_TRANSFER_BINARY_NSRC_OR = 0xD, /* 1101 */
220  GUAC_TRANSFER_BINARY_NSRC_NOR = 0x2, /* 0010 */
221 
222  /* AND / NAND with inverted destination */
223  GUAC_TRANSFER_BINARY_NDEST_AND = 0x2, /* 0010 */
224  GUAC_TRANSFER_BINARY_NDEST_NAND = 0xD, /* 1101 */
225 
226  /* OR / NOR with inverted destination */
227  GUAC_TRANSFER_BINARY_NDEST_OR = 0xB, /* 1011 */
228  GUAC_TRANSFER_BINARY_NDEST_NOR = 0x4 /* 0100 */
229 
231 
235 typedef enum guac_line_cap_style {
236  GUAC_LINE_CAP_BUTT = 0x0,
237  GUAC_LINE_CAP_ROUND = 0x1,
238  GUAC_LINE_CAP_SQUARE = 0x2
240 
244 typedef enum guac_line_join_style {
245  GUAC_LINE_JOIN_BEVEL = 0x0,
246  GUAC_LINE_JOIN_MITER = 0x1,
247  GUAC_LINE_JOIN_ROUND = 0x2
249 
250 #endif
251 
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:112
Permission was denied to perform the operation, as the user is not yet authorized (not yet logged in...
Definition: protocol-types.h:106
The operation could not be performed because bad parameters were given.
Definition: protocol-types.h:100
The operation failed because the current client is already using too many resources.
Definition: protocol-types.h:133
guac_line_join_style
Supported line join styles.
Definition: protocol-types.h:244
guac_transfer_function
Default transfer functions.
Definition: protocol-types.h:190
The requested operation is unsupported.
Definition: protocol-types.h:54
guac_line_cap_style
Supported line cap styles.
Definition: protocol-types.h:235
The client sent too much data.
Definition: protocol-types.h:122
The client took too long to respond.
Definition: protocol-types.h:117
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:127
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:141
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 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