/[rdesktop]/sourceforge.net/trunk/rdesktop/types.h
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /sourceforge.net/trunk/rdesktop/types.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1368 - (hide annotations)
Thu Jan 4 23:19:54 2007 UTC (17 years, 5 months ago) by stargo
File MIME type: text/plain
File size: 5157 byte(s)
ignore PCSCs idea of BOOL

1 matty 10 /*
2     rdesktop: A Remote Desktop Protocol client.
3     Common data types
4 jsorg71 1365 Copyright (C) Matthew Chapman 1999-2007
5 jsorg71 1364
6 matty 10 This program is free software; you can redistribute it and/or modify
7     it under the terms of the GNU General Public License as published by
8     the Free Software Foundation; either version 2 of the License, or
9     (at your option) any later version.
10 n-ki 569
11 matty 10 This program is distributed in the hope that it will be useful,
12     but WITHOUT ANY WARRANTY; without even the implied warranty of
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14     GNU General Public License for more details.
15 jsorg71 1364
16 matty 10 You should have received a copy of the GNU General Public License
17     along with this program; if not, write to the Free Software
18     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19     */
20    
21     typedef int BOOL;
22    
23     #ifndef True
24     #define True (1)
25     #define False (0)
26     #endif
27    
28     typedef unsigned char uint8;
29 matthewc 299 typedef signed char sint8;
30 matty 10 typedef unsigned short uint16;
31 matthewc 299 typedef signed short sint16;
32 matty 10 typedef unsigned int uint32;
33 matthewc 299 typedef signed int sint32;
34 matty 10
35 jsorg71 1364 typedef void *RD_HBITMAP;
36     typedef void *RD_HGLYPH;
37     typedef void *RD_HCOLOURMAP;
38     typedef void *RD_HCURSOR;
39 matty 10
40 jsorg71 1364 typedef struct _RD_POINT
41 jdmeijer 831 {
42     sint16 x, y;
43     }
44 jsorg71 1364 RD_POINT;
45 jdmeijer 831
46 matty 10 typedef struct _COLOURENTRY
47     {
48     uint8 red;
49     uint8 green;
50     uint8 blue;
51    
52 astrand 64 }
53     COLOURENTRY;
54 matty 10
55     typedef struct _COLOURMAP
56     {
57     uint16 ncolours;
58     COLOURENTRY *colours;
59    
60 astrand 64 }
61     COLOURMAP;
62 matty 10
63     typedef struct _BOUNDS
64     {
65 jsorg71 375 sint16 left;
66     sint16 top;
67     sint16 right;
68     sint16 bottom;
69 matty 10
70 astrand 64 }
71     BOUNDS;
72 matty 10
73     typedef struct _PEN
74     {
75     uint8 style;
76     uint8 width;
77 jsorg71 309 uint32 colour;
78 matty 10
79 astrand 64 }
80     PEN;
81 matty 10
82     typedef struct _BRUSH
83     {
84     uint8 xorigin;
85     uint8 yorigin;
86     uint8 style;
87     uint8 pattern[8];
88    
89 astrand 64 }
90     BRUSH;
91 matty 10
92     typedef struct _FONTGLYPH
93     {
94 matthewc 299 sint16 offset;
95     sint16 baseline;
96 matty 10 uint16 width;
97     uint16 height;
98 jsorg71 1364 RD_HBITMAP pixmap;
99 matty 10
100 astrand 64 }
101     FONTGLYPH;
102 matty 10
103     typedef struct _DATABLOB
104     {
105     void *data;
106     int size;
107    
108 astrand 64 }
109     DATABLOB;
110 astrand 66
111     typedef struct _key_translation
112     {
113 astrand 949 /* For normal scancode translations */
114 astrand 66 uint8 scancode;
115     uint16 modifiers;
116 astrand 949 /* For sequences. If keysym is nonzero, the fields above are not used. */
117     uint32 seq_keysym; /* Really KeySym */
118     struct _key_translation *next;
119 astrand 66 }
120     key_translation;
121 forsberg 413
122 matthewc 432 typedef struct _VCHANNEL
123     {
124     uint16 mcs_id;
125     char name[8];
126     uint32 flags;
127     struct stream in;
128     void (*process) (STREAM);
129     }
130     VCHANNEL;
131 forsberg 413
132 jsorg71 725 /* PSTCACHE */
133 jdmeijer 830 typedef uint8 HASH_KEY[8];
134 jsorg71 725
135     /* Header for an entry in the persistent bitmap cache file */
136     typedef struct _PSTCACHE_CELLHEADER
137     {
138 jdmeijer 830 HASH_KEY key;
139 jsorg71 725 uint8 width, height;
140     uint16 length;
141     uint32 stamp;
142     }
143     CELLHEADER;
144    
145 stargo 492 #define MAX_CBSIZE 256
146    
147 matthewc 474 /* RDPSND */
148 jsorg71 1364 typedef struct _RD_WAVEFORMATEX
149 astrand 499 {
150     uint16 wFormatTag;
151     uint16 nChannels;
152     uint32 nSamplesPerSec;
153     uint32 nAvgBytesPerSec;
154     uint16 nBlockAlign;
155     uint16 wBitsPerSample;
156     uint16 cbSize;
157     uint8 cb[MAX_CBSIZE];
158 jsorg71 1364 } RD_WAVEFORMATEX;
159 matthewc 474
160 n-ki 683 typedef struct _RDPCOMP
161     {
162     uint32 roff;
163     uint8 hist[RDP_MPPC_DICT_SIZE];
164     struct stream ns;
165     }
166     RDPCOMP;
167    
168 matthewc 432 /* RDPDR */
169 jsorg71 1364 typedef uint32 RD_NTSTATUS;
170     typedef uint32 RD_NTHANDLE;
171 matthewc 432
172     typedef struct _DEVICE_FNS
173 forsberg 413 {
174 jsorg71 1364 RD_NTSTATUS(*create) (uint32 device, uint32 desired_access, uint32 share_mode,
175     uint32 create_disposition, uint32 flags_and_attributes,
176     char *filename, RD_NTHANDLE * handle);
177     RD_NTSTATUS(*close) (RD_NTHANDLE handle);
178     RD_NTSTATUS(*read) (RD_NTHANDLE handle, uint8 * data, uint32 length, uint32 offset,
179     uint32 * result);
180     RD_NTSTATUS(*write) (RD_NTHANDLE handle, uint8 * data, uint32 length, uint32 offset,
181     uint32 * result);
182     RD_NTSTATUS(*device_control) (RD_NTHANDLE handle, uint32 request, STREAM in, STREAM out);
183 forsberg 413 }
184 matthewc 432 DEVICE_FNS;
185 n-ki 569
186    
187     typedef struct rdpdr_device_info
188     {
189 astrand 580 uint32 device_type;
190 jsorg71 1364 RD_NTHANDLE handle;
191 astrand 580 char name[8];
192     char *local_path;
193     void *pdevice_data;
194 n-ki 569 }
195     RDPDR_DEVICE;
196    
197     typedef struct rdpdr_serial_device_info
198     {
199 astrand 580 int dtr;
200 n-ki 627 int rts;
201 stargo 795 uint32 control, xonoff, onlimit, offlimit;
202 astrand 580 uint32 baud_rate,
203     queue_in_size,
204     queue_out_size,
205     wait_mask,
206     read_interval_timeout,
207     read_total_timeout_multiplier,
208     read_total_timeout_constant,
209     write_total_timeout_multiplier, write_total_timeout_constant, posix_wait_mask;
210     uint8 stop_bits, parity, word_length;
211 stargo 795 uint8 chars[6];
212 astrand 580 struct termios *ptermios, *pold_termios;
213 stargo 795 int event_txempty, event_cts, event_dsr, event_rlsd, event_pending;
214 n-ki 569 }
215     SERIAL_DEVICE;
216    
217     typedef struct rdpdr_parallel_device_info
218     {
219 astrand 580 char *driver, *printer;
220     uint32 queue_in_size,
221     queue_out_size,
222     wait_mask,
223     read_interval_timeout,
224     read_total_timeout_multiplier,
225     read_total_timeout_constant,
226     write_total_timeout_multiplier,
227     write_total_timeout_constant, posix_wait_mask, bloblen;
228     uint8 *blob;
229 n-ki 569 }
230     PARALLEL_DEVICE;
231    
232     typedef struct rdpdr_printer_info
233     {
234 astrand 580 FILE *printer_fp;
235     char *driver, *printer;
236     uint32 bloblen;
237     uint8 *blob;
238     BOOL default_printer;
239 n-ki 569 }
240     PRINTER;
241 n-ki 627
242 stargo 795 typedef struct notify_data
243     {
244     time_t modify_time;
245     time_t status_time;
246     time_t total_time;
247     unsigned int num_entries;
248     }
249     NOTIFY;
250    
251 stargo 978 #ifndef PATH_MAX
252     #define PATH_MAX 256
253     #endif
254    
255 n-ki 627 typedef struct fileinfo
256     {
257 stargo 795 uint32 device_id, flags_and_attributes, accessmask;
258 stargo 978 char path[PATH_MAX];
259 n-ki 627 DIR *pdir;
260     struct dirent *pdirent;
261 stargo 978 char pattern[PATH_MAX];
262 n-ki 627 BOOL delete_on_close;
263 stargo 795 NOTIFY notify;
264     uint32 info_class;
265 n-ki 627 }
266     FILEINFO;
267 astrand 1053
268     typedef BOOL(*str_handle_lines_t) (const char *line, void *data);

  ViewVC Help
Powered by ViewVC 1.1.26