~ubuntu-branches/ubuntu/wily/freerdp/wily-proposed

« back to all changes in this revision

Viewing changes to libfreerdp-core/orders.h

  • Committer: Package Import Robot
  • Author(s): Martin Pitt, Jeremy Bicha, Jean-Louis Dupond, Martin Pitt
  • Date: 2012-01-31 10:02:14 UTC
  • mfrom: (1.1.6)
  • Revision ID: package-import@ubuntu.com-20120131100214-jaok3uwvni7sqxth
Tags: 1.0.0-0git1
Upload current Debian packaging git to get this rolling for precise.

[ Jeremy Bicha ]
* New upstream release. Closes: #647498.
* Updated symbols and bumped soname
* debian/control:
  - Added new build dependencies
  - Bump Standards-Version to 3.9.2
* debian/source/format: Set to 3.0 (quilt)
* debian/rules: Turn on strict symbols checking
* debian/watch: Watch github

[ Jean-Louis Dupond ]
* debian/control: Updated homepage
* debian/copyright: Reflect upstream switch to the Apache license

[ Martin Pitt ]
* debian/libfreerdp0.symbols: Fix version number, should
  be 1.0~beta5, not 1.0-beta5.
* debian/control: Add libavcodec-dev build dependency, upstream build system
  checks for that. Thanks Jean-Louis Dupond!

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/**
 
2
 * FreeRDP: A Remote Desktop Protocol Client
 
3
 * Drawing Orders
 
4
 *
 
5
 * Copyright 2011 Marc-Andre Moreau <marcandre.moreau@gmail.com>
 
6
 *
 
7
 * Licensed under the Apache License, Version 2.0 (the "License");
 
8
 * you may not use this file except in compliance with the License.
 
9
 * You may obtain a copy of the License at
 
10
 *
 
11
 *     http://www.apache.org/licenses/LICENSE-2.0
 
12
 *
 
13
 * Unless required by applicable law or agreed to in writing, software
 
14
 * distributed under the License is distributed on an "AS IS" BASIS,
 
15
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
16
 * See the License for the specific language governing permissions and
 
17
 * limitations under the License.
 
18
 */
 
19
 
 
20
#ifndef __ORDERS_H
 
21
#define __ORDERS_H
 
22
 
 
23
#include "rdp.h"
 
24
#include <freerdp/types.h>
 
25
#include <freerdp/update.h>
 
26
#include <freerdp/utils/stream.h>
 
27
 
 
28
/* Order Control Flags */
 
29
#define ORDER_STANDARD                          0x01
 
30
#define ORDER_SECONDARY                         0x02
 
31
#define ORDER_BOUNDS                            0x04
 
32
#define ORDER_TYPE_CHANGE                       0x08
 
33
#define ORDER_DELTA_COORDINATES                 0x10
 
34
#define ORDER_ZERO_BOUNDS_DELTAS                0x20
 
35
#define ORDER_ZERO_FIELD_BYTE_BIT0              0x40
 
36
#define ORDER_ZERO_FIELD_BYTE_BIT1              0x80
 
37
 
 
38
/* Bound Field Flags */
 
39
#define BOUND_LEFT                              0x01
 
40
#define BOUND_TOP                               0x02
 
41
#define BOUND_RIGHT                             0x04
 
42
#define BOUND_BOTTOM                            0x08
 
43
#define BOUND_DELTA_LEFT                        0x10
 
44
#define BOUND_DELTA_TOP                         0x20
 
45
#define BOUND_DELTA_RIGHT                       0x40
 
46
#define BOUND_DELTA_BOTTOM                      0x80
 
47
 
 
48
/* Field Presence Flags */
 
49
#define ORDER_FIELD_01                          0x000001
 
50
#define ORDER_FIELD_02                          0x000002
 
51
#define ORDER_FIELD_03                          0x000004
 
52
#define ORDER_FIELD_04                          0x000008
 
53
#define ORDER_FIELD_05                          0x000010
 
54
#define ORDER_FIELD_06                          0x000020
 
55
#define ORDER_FIELD_07                          0x000040
 
56
#define ORDER_FIELD_08                          0x000080
 
57
#define ORDER_FIELD_09                          0x000100
 
58
#define ORDER_FIELD_10                          0x000200
 
59
#define ORDER_FIELD_11                          0x000400
 
60
#define ORDER_FIELD_12                          0x000800
 
61
#define ORDER_FIELD_13                          0x001000
 
62
#define ORDER_FIELD_14                          0x002000
 
63
#define ORDER_FIELD_15                          0x004000
 
64
#define ORDER_FIELD_16                          0x008000
 
65
#define ORDER_FIELD_17                          0x010000
 
66
#define ORDER_FIELD_18                          0x020000
 
67
#define ORDER_FIELD_19                          0x040000
 
68
#define ORDER_FIELD_20                          0x080000
 
69
#define ORDER_FIELD_21                          0x100000
 
70
#define ORDER_FIELD_22                          0x200000
 
71
#define ORDER_FIELD_23                          0x400000
 
72
 
 
73
/* Bitmap Cache Flags */
 
74
#define CBR2_8BPP                       0x3
 
75
#define CBR2_16BPP                      0x4
 
76
#define CBR2_24BPP                      0x5
 
77
#define CBR2_32BPP                      0x6
 
78
 
 
79
#define CBR23_8BPP                      0x3
 
80
#define CBR23_16BPP                     0x4
 
81
#define CBR23_24BPP                     0x5
 
82
#define CBR23_32BPP                     0x6
 
83
 
 
84
#define CBR3_IGNORABLE_FLAG             0x08
 
85
#define CBR3_DO_NOT_CACHE               0x10
 
86
 
 
87
/* Primary Drawing Orders */
 
88
#define ORDER_TYPE_DSTBLT                       0x00
 
89
#define ORDER_TYPE_PATBLT                       0x01
 
90
#define ORDER_TYPE_SCRBLT                       0x02
 
91
#define ORDER_TYPE_DRAW_NINE_GRID               0x07
 
92
#define ORDER_TYPE_MULTI_DRAW_NINE_GRID         0x08
 
93
#define ORDER_TYPE_LINE_TO                      0x09
 
94
#define ORDER_TYPE_OPAQUE_RECT                  0x0A
 
95
#define ORDER_TYPE_SAVE_BITMAP                  0x0B
 
96
#define ORDER_TYPE_MEMBLT                       0x0D
 
97
#define ORDER_TYPE_MEM3BLT                      0x0E
 
98
#define ORDER_TYPE_MULTI_DSTBLT                 0x0F
 
99
#define ORDER_TYPE_MULTI_PATBLT                 0x10
 
100
#define ORDER_TYPE_MULTI_SCRBLT                 0x11
 
101
#define ORDER_TYPE_MULTI_OPAQUE_RECT            0x12
 
102
#define ORDER_TYPE_FAST_INDEX                   0x13
 
103
#define ORDER_TYPE_POLYGON_SC                   0x14
 
104
#define ORDER_TYPE_POLYGON_CB                   0x15
 
105
#define ORDER_TYPE_POLYLINE                     0x16
 
106
#define ORDER_TYPE_FAST_GLYPH                   0x18
 
107
#define ORDER_TYPE_ELLIPSE_SC                   0x19
 
108
#define ORDER_TYPE_ELLIPSE_CB                   0x1A
 
109
#define ORDER_TYPE_GLYPH_INDEX                  0x1B
 
110
 
 
111
/* Primary Drawing Orders Fields */
 
112
#define DSTBLT_ORDER_FIELDS                     5
 
113
#define PATBLT_ORDER_FIELDS                     12
 
114
#define SCRBLT_ORDER_FIELDS                     7
 
115
#define DRAW_NINE_GRID_ORDER_FIELDS             5
 
116
#define MULTI_DRAW_NINE_GRID_ORDER_FIELDS       7
 
117
#define LINE_TO_ORDER_FIELDS                    10
 
118
#define OPAQUE_RECT_ORDER_FIELDS                7
 
119
#define SAVE_BITMAP_ORDER_FIELDS                6
 
120
#define MEMBLT_ORDER_FIELDS                     9
 
121
#define MEM3BLT_ORDER_FIELDS                    16
 
122
#define MULTI_DSTBLT_ORDER_FIELDS               7
 
123
#define MULTI_PATBLT_ORDER_FIELDS               14
 
124
#define MULTI_SCRBLT_ORDER_FIELDS               9
 
125
#define MULTI_OPAQUE_RECT_ORDER_FIELDS          9
 
126
#define FAST_INDEX_ORDER_FIELDS                 15
 
127
#define POLYGON_SC_ORDER_FIELDS                 7
 
128
#define POLYGON_CB_ORDER_FIELDS                 13
 
129
#define POLYLINE_ORDER_FIELDS                   7
 
130
#define FAST_GLYPH_ORDER_FIELDS                 15
 
131
#define ELLIPSE_SC_ORDER_FIELDS                 7
 
132
#define ELLIPSE_CB_ORDER_FIELDS                 13
 
133
#define GLYPH_INDEX_ORDER_FIELDS                22
 
134
 
 
135
/* Primary Drawing Orders Field Bytes */
 
136
#define DSTBLT_ORDER_FIELD_BYTES                1
 
137
#define PATBLT_ORDER_FIELD_BYTES                2
 
138
#define SCRBLT_ORDER_FIELD_BYTES                1
 
139
#define DRAW_NINE_GRID_ORDER_FIELD_BYTES        1
 
140
#define MULTI_DRAW_NINE_GRID_ORDER_FIELD_BYTES  1
 
141
#define LINE_TO_ORDER_FIELD_BYTES               2
 
142
#define OPAQUE_RECT_ORDER_FIELD_BYTES           1
 
143
#define SAVE_BITMAP_ORDER_FIELD_BYTES           1
 
144
#define MEMBLT_ORDER_FIELD_BYTES                2
 
145
#define MEM3BLT_ORDER_FIELD_BYTES               3
 
146
#define MULTI_DSTBLT_ORDER_FIELD_BYTES          1
 
147
#define MULTI_PATBLT_ORDER_FIELD_BYTES          2
 
148
#define MULTI_SCRBLT_ORDER_FIELD_BYTES          2
 
149
#define MULTI_OPAQUE_RECT_ORDER_FIELD_BYTES     2
 
150
#define FAST_INDEX_ORDER_FIELD_BYTES            2
 
151
#define POLYGON_SC_ORDER_FIELD_BYTES            1
 
152
#define POLYGON_CB_ORDER_FIELD_BYTES            2
 
153
#define POLYLINE_ORDER_FIELD_BYTES              1
 
154
#define FAST_GLYPH_ORDER_FIELD_BYTES            2
 
155
#define ELLIPSE_SC_ORDER_FIELD_BYTES            1
 
156
#define ELLIPSE_CB_ORDER_FIELD_BYTES            2
 
157
#define GLYPH_INDEX_ORDER_FIELD_BYTES           3
 
158
 
 
159
/* Secondary Drawing Orders */
 
160
#define ORDER_TYPE_BITMAP_UNCOMPRESSED          0x00
 
161
#define ORDER_TYPE_CACHE_COLOR_TABLE            0x01
 
162
#define ORDER_TYPE_CACHE_BITMAP_COMPRESSED      0x02
 
163
#define ORDER_TYPE_CACHE_GLYPH                  0x03
 
164
#define ORDER_TYPE_BITMAP_UNCOMPRESSED_V2       0x04
 
165
#define ORDER_TYPE_BITMAP_COMPRESSED_V2         0x05
 
166
#define ORDER_TYPE_CACHE_BRUSH                  0x07
 
167
#define ORDER_TYPE_BITMAP_COMPRESSED_V3         0x08
 
168
 
 
169
/* Alternate Secondary Drawing Orders */
 
170
#define ORDER_TYPE_SWITCH_SURFACE               0x00
 
171
#define ORDER_TYPE_CREATE_OFFSCREEN_BITMAP      0x01
 
172
#define ORDER_TYPE_STREAM_BITMAP_FIRST          0x02
 
173
#define ORDER_TYPE_STREAM_BITMAP_NEXT           0x03
 
174
#define ORDER_TYPE_CREATE_NINE_GRID_BITMAP      0x04
 
175
#define ORDER_TYPE_GDIPLUS_FIRST                0x05
 
176
#define ORDER_TYPE_GDIPLUS_NEXT                 0x06
 
177
#define ORDER_TYPE_GDIPLUS_END                  0x07
 
178
#define ORDER_TYPE_GDIPLUS_CACHE_FIRST          0x08
 
179
#define ORDER_TYPE_GDIPLUS_CACHE_NEXT           0x09
 
180
#define ORDER_TYPE_GDIPLUS_CACHE_END            0x0A
 
181
#define ORDER_TYPE_WINDOW                       0x0B
 
182
#define ORDER_TYPE_COMPDESK_FIRST               0x0C
 
183
#define ORDER_TYPE_FRAME_MARKER                 0x0D
 
184
 
 
185
#define CG_GLYPH_UNICODE_PRESENT                0x0010
 
186
 
 
187
void update_recv_order(rdpUpdate* update, STREAM* s);
 
188
 
 
189
void update_read_dstblt_order(STREAM* s, ORDER_INFO* orderInfo, DSTBLT_ORDER* dstblt);
 
190
void update_read_patblt_order(STREAM* s, ORDER_INFO* orderInfo, PATBLT_ORDER* patblt);
 
191
void update_read_scrblt_order(STREAM* s, ORDER_INFO* orderInfo, SCRBLT_ORDER* scrblt);
 
192
void update_read_opaque_rect_order(STREAM* s, ORDER_INFO* orderInfo, OPAQUE_RECT_ORDER* opaque_rect);
 
193
void update_read_draw_nine_grid_order(STREAM* s, ORDER_INFO* orderInfo, DRAW_NINE_GRID_ORDER* draw_nine_grid);
 
194
void update_read_multi_dstblt_order(STREAM* s, ORDER_INFO* orderInfo, MULTI_DSTBLT_ORDER* multi_dstblt);
 
195
void update_read_multi_patblt_order(STREAM* s, ORDER_INFO* orderInfo, MULTI_PATBLT_ORDER* multi_patblt);
 
196
void update_read_multi_scrblt_order(STREAM* s, ORDER_INFO* orderInfo, MULTI_SCRBLT_ORDER* multi_scrblt);
 
197
void update_read_multi_opaque_rect_order(STREAM* s, ORDER_INFO* orderInfo, MULTI_OPAQUE_RECT_ORDER* multi_opaque_rect);
 
198
void update_read_multi_draw_nine_grid_order(STREAM* s, ORDER_INFO* orderInfo, MULTI_DRAW_NINE_GRID_ORDER* multi_draw_nine_grid);
 
199
void update_read_line_to_order(STREAM* s, ORDER_INFO* orderInfo, LINE_TO_ORDER* line_to);
 
200
void update_read_polyline_order(STREAM* s, ORDER_INFO* orderInfo, POLYLINE_ORDER* polyline);
 
201
void update_read_memblt_order(STREAM* s, ORDER_INFO* orderInfo, MEMBLT_ORDER* memblt);
 
202
void update_read_mem3blt_order(STREAM* s, ORDER_INFO* orderInfo, MEM3BLT_ORDER* mem3blt);
 
203
void update_read_save_bitmap_order(STREAM* s, ORDER_INFO* orderInfo, SAVE_BITMAP_ORDER* save_bitmap);
 
204
void update_read_glyph_index_order(STREAM* s, ORDER_INFO* orderInfo, GLYPH_INDEX_ORDER* glyph_index);
 
205
void update_read_fast_index_order(STREAM* s, ORDER_INFO* orderInfo, FAST_INDEX_ORDER* fast_index);
 
206
void update_read_fast_glyph_order(STREAM* s, ORDER_INFO* orderInfo, FAST_GLYPH_ORDER* fast_glyph);
 
207
void update_read_polygon_sc_order(STREAM* s, ORDER_INFO* orderInfo, POLYGON_SC_ORDER* polygon_sc);
 
208
void update_read_polygon_cb_order(STREAM* s, ORDER_INFO* orderInfo, POLYGON_CB_ORDER* polygon_cb);
 
209
void update_read_ellipse_sc_order(STREAM* s, ORDER_INFO* orderInfo, ELLIPSE_SC_ORDER* ellipse_sc);
 
210
void update_read_ellipse_cb_order(STREAM* s, ORDER_INFO* orderInfo, ELLIPSE_CB_ORDER* ellipse_cb);
 
211
 
 
212
void update_read_cache_bitmap_order(STREAM* s, CACHE_BITMAP_ORDER* cache_bitmap_order, boolean compressed, uint16 flags);
 
213
void update_read_cache_bitmap_v2_order(STREAM* s, CACHE_BITMAP_V2_ORDER* cache_bitmap_v2_order, boolean compressed, uint16 flags);
 
214
void update_read_cache_bitmap_v3_order(STREAM* s, CACHE_BITMAP_V3_ORDER* cache_bitmap_v3_order, boolean compressed, uint16 flags);
 
215
void update_read_cache_color_table_order(STREAM* s, CACHE_COLOR_TABLE_ORDER* cache_color_table_order, uint16 flags);
 
216
void update_read_cache_glyph_order(STREAM* s, CACHE_GLYPH_ORDER* cache_glyph_order, uint16 flags);
 
217
void update_read_cache_glyph_v2_order(STREAM* s, CACHE_GLYPH_V2_ORDER* cache_glyph_v2_order, uint16 flags);
 
218
void update_read_cache_brush_order(STREAM* s, CACHE_BRUSH_ORDER* cache_brush_order, uint16 flags);
 
219
 
 
220
void update_read_create_offscreen_bitmap_order(STREAM* s, CREATE_OFFSCREEN_BITMAP_ORDER* create_offscreen_bitmap);
 
221
void update_read_switch_surface_order(STREAM* s, SWITCH_SURFACE_ORDER* switch_surface);
 
222
void update_read_create_nine_grid_bitmap_order(STREAM* s, CREATE_NINE_GRID_BITMAP_ORDER* create_nine_grid_bitmap);
 
223
void update_read_frame_marker_order(STREAM* s, FRAME_MARKER_ORDER* frame_marker);
 
224
void update_read_stream_bitmap_first_order(STREAM* s, STREAM_BITMAP_FIRST_ORDER* stream_bitmap_first);
 
225
void update_read_stream_bitmap_next_order(STREAM* s, STREAM_BITMAP_FIRST_ORDER* stream_bitmap_next);
 
226
void update_read_draw_gdiplus_first_order(STREAM* s, DRAW_GDIPLUS_FIRST_ORDER* draw_gdiplus_first);
 
227
void update_read_draw_gdiplus_next_order(STREAM* s, DRAW_GDIPLUS_NEXT_ORDER* draw_gdiplus_next);
 
228
void update_read_draw_gdiplus_end_order(STREAM* s, DRAW_GDIPLUS_END_ORDER* draw_gdiplus_end);
 
229
void update_read_draw_gdiplus_cache_first_order(STREAM* s, DRAW_GDIPLUS_CACHE_FIRST_ORDER* draw_gdiplus_cache_first);
 
230
void update_read_draw_gdiplus_cache_next_order(STREAM* s, DRAW_GDIPLUS_CACHE_NEXT_ORDER* draw_gdiplus_cache_next);
 
231
void update_read_draw_gdiplus_cache_end_order(STREAM* s, DRAW_GDIPLUS_CACHE_END_ORDER* draw_gdiplus_cache_end);
 
232
 
 
233
#endif /* __ORDERS_H */