aboutsummaryrefslogtreecommitdiff
path: root/nxcompshad/Shadow.h
diff options
context:
space:
mode:
authorMike Gabriel <mike.gabriel@das-netzwerkteam.de>2011-11-19 15:59:38 +0100
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2011-11-19 15:59:38 +0100
commit9bfca1c2da8a72613ebf7406ef40f74ebe9799cb (patch)
tree54795448b42afda310958ceef128863ad2065a91 /nxcompshad/Shadow.h
parent5e502cbb195be17d5d742295f4a2e6f0c603a8d7 (diff)
parentbf85c6e696693ef5a277c0334c01493dedf4fadd (diff)
downloadnx-libs-9bfca1c2da8a72613ebf7406ef40f74ebe9799cb.tar.gz
nx-libs-9bfca1c2da8a72613ebf7406ef40f74ebe9799cb.tar.bz2
nx-libs-9bfca1c2da8a72613ebf7406ef40f74ebe9799cb.zip
Merge branch 'nxcompshad'
Diffstat (limited to 'nxcompshad/Shadow.h')
-rw-r--r--nxcompshad/Shadow.h101
1 files changed, 101 insertions, 0 deletions
diff --git a/nxcompshad/Shadow.h b/nxcompshad/Shadow.h
new file mode 100644
index 000000000..e1eddb95c
--- /dev/null
+++ b/nxcompshad/Shadow.h
@@ -0,0 +1,101 @@
+/**************************************************************************/
+/* */
+/* Copyright (c) 2001, 2011 NoMachine, http://www.nomachine.com/. */
+/* */
+/* NXCOMPSHAD, NX protocol compression and NX extensions to this software */
+/* are copyright of NoMachine. Redistribution and use of the present */
+/* software is allowed according to terms specified in the file LICENSE */
+/* which comes in the source distribution. */
+/* */
+/* Check http://www.nomachine.com/licensing.html for applicability. */
+/* */
+/* NX and NoMachine are trademarks of Medialogic S.p.A. */
+/* */
+/* All rights reserved. */
+/* */
+/**************************************************************************/
+
+#ifndef Shadow_H
+#define Shadow_H
+
+#include <X11/Xlib.h>
+
+#define NXShadowCorrectColor(length, buffer) \
+\
+{ \
+ unsigned short a; \
+ unsigned short b; \
+ unsigned short *shorts; \
+ int i; \
+\
+ length >>= 1; \
+ shorts = (unsigned short *)buffer; \
+ for (i = 0; i < length ; i++) \
+ { \
+ a = shorts[i]; \
+\
+ b = a & 63; \
+ a <<= 1; \
+ a = (a & ~127) | b; \
+\
+ shorts[i] = a; \
+ } \
+}
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef char* UpdaterHandle;
+
+typedef struct _ShadowOptions
+{
+ char optionShmExtension;
+ char optionDamageExtension;
+ int optionShadowDisplayUid;
+} ShadowOptions;
+
+extern ShadowOptions NXShadowOptions;
+
+extern int NXShadowCreate(void *, char *, char *, void **);
+extern void NXShadowDestroy(void);
+
+/*
+ * Use an already opened Display connection.
+ * We use <void *> instead of <Display *> to avoid
+ * useless dependences from Xlib headers.
+ */
+
+extern int NXShadowAddUpdaterDisplay(void *display, int *width, int *height,
+ unsigned char *depth);
+extern UpdaterHandle NXShadowAddUpdater(char *displayName);
+extern int NXShadowRemoveUpdater(UpdaterHandle handle);
+extern int NXShadowRemoveAllUpdaters(void);
+
+extern void NXShadowHandleInput(void);
+extern int NXShadowHasChanged(int (*)(void *), void *, int *);
+extern void NXShadowExportChanges(long *, char **);
+extern int NXShadowHasUpdaters(void);
+extern int NXShadowCaptureCursor(unsigned int wnd, void *vis);
+extern void NXShadowColorCorrect(int, int, unsigned int, unsigned int, char *);
+extern void NXShadowUpdateBuffer(void **);
+
+extern void NXShadowEvent(Display *, XEvent);
+extern void NXShadowWebKeyEvent(KeySym keysym, Bool isKeyPress);
+
+extern void NXShadowSetDisplayUid(int uid);
+
+extern void NXShadowDisableShm(void);
+extern void NXShadowDisableDamage(void);
+
+extern void NXShadowGetScreenSize(int *width, int *height);
+extern void NXShadowSetScreenSize(int *width, int *height);
+
+extern void NXShadowInitKeymap(void *keysyms);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* Shadow_H */
+