VirtualBox

source: vbox/trunk/src/VBox/Additions/linux/x11include/4.2/include/extensions/lbxdeltastr.h@ 1

Last change on this file since 1 was 1, checked in by vboxsync, 55 years ago

import

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.3 KB
Line 
1/* $Xorg: lbxdeltastr.h,v 1.3 2000/08/18 04:05:45 coskrey Exp $ */
2/*
3 * Copyright 1993 Network Computing Devices
4 *
5 * Permission to use, copy, modify, distribute, and sell this software and its
6 * documentation for any purpose is hereby granted without fee, provided that
7 * the above copyright notice appear in all copies and that both that
8 * copyright notice and this permission notice appear in supporting
9 * documentation, and that the name of NCD. not be used in advertising or
10 * publicity pertaining to distribution of the software without specific,
11 * written prior permission. NCD. makes no representations about the
12 * suitability of this software for any purpose. It is provided "as is"
13 * without express or implied warranty.
14 *
15 * NCD. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NCD.
17 * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
18 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
19 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
20 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
21 *
22 */
23
24#ifndef LBX_DELTA_STRUCT_H
25#define LBX_DELTA_STRUCT_H
26
27#define MIN_CACHEABLE_LEN 8
28
29#define DELTA_CACHEABLE(pcache, len) \
30 ((len) > MIN_CACHEABLE_LEN && (len) <= (pcache)->maxDeltasize)
31
32/*
33 * An entry in the delta compactor cache
34 */
35typedef struct _LBXDeltaElem {
36 int length;
37 unsigned char *buf;
38} LBXDeltaElemRec, *LBXDeltaElemPtr;
39
40
41/*
42 * Delta compactor cache
43 */
44typedef struct _LBXDeltas {
45 unsigned short nDeltas;
46 unsigned short maxDeltasize;
47 LBXDeltaElemPtr deltas;
48 unsigned short nextDelta;
49 unsigned short activeDeltas; /* only needed for outgoing */
50} LBXDeltasRec, *LBXDeltasPtr;
51
52
53/*
54 * Motion delta cache
55 */
56
57typedef struct {
58 BYTE swapped;
59 BYTE detail;
60 CARD16 sequenceNumber B16;
61 Time time B32;
62 Window root B32, event B32, child B32;
63 INT16 rootX B16, rootY B16, eventX B16, eventY B16;
64 KeyButMask state B16;
65 BOOL sameScreen;
66} lbxMotionCache;
67
68
69/*
70 * Motion delta events
71 */
72
73typedef struct {
74 BYTE type; /* always eventBase + LbxQuickMotionDeltaEvent */
75 CARD8 deltaTime;
76 INT8 deltaX;
77 INT8 deltaY;
78} lbxQuickMotionDeltaEvent;
79#define sz_lbxQuickMotionDeltaEvent 4
80
81typedef struct {
82 BYTE type; /* always eventBase + LbxEvent */
83 BYTE lbxType; /* LbxMotionDeltaEvent */
84 INT8 deltaX;
85 INT8 deltaY;
86 CARD16 deltaTime B16;
87 CARD16 deltaSequence B16;
88} lbxMotionDeltaEvent;
89#define sz_lbxMotionDeltaEvent 8
90
91extern int LBXInitDeltaCache ( LBXDeltasPtr pcache, int nDeltas,
92 int maxDeltasize );
93extern void LBXFreeDeltaCache ( LBXDeltasPtr pcache );
94extern int LBXDeltaMinDiffs ( LBXDeltasPtr pcache, unsigned char *inmsg,
95 int inmsglen, int maxdiff, int *pindex );
96extern void LBXEncodeDelta ( LBXDeltasPtr pcache, unsigned char *inmsg,
97 int ndiff, int index, unsigned char *buf );
98extern int LBXDecodeDelta ( LBXDeltasPtr pcache, xLbxDiffItem *deltas,
99 int ndiff, int index, unsigned char **buf );
100extern void LBXAddDeltaOut ( LBXDeltasPtr pcache, unsigned char *inmsg,
101 int inmsglen );
102extern void LBXAddDeltaIn ( LBXDeltasPtr pcache, unsigned char *inmsg,
103 int inmsglen );
104
105#endif /* LBX_DELTA_STRUCT_H */
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette