202 lines
5.6 KiB
C
202 lines
5.6 KiB
C
/**************************************************************************/
|
|
/* */
|
|
/* Copyright (c) 2001, 2011 NoMachine (http://www.nomachine.com) */
|
|
/* Copyright (c) 2008-2017 Oleksandr Shneyder <o.shneyder@phoca-gmbh.de> */
|
|
/* Copyright (c) 2014-2022 Ulrich Sibiller <uli42@gmx.de> */
|
|
/* Copyright (c) 2014-2019 Mihai Moldovan <ionic@ionic.de> */
|
|
/* Copyright (c) 2011-2022 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>*/
|
|
/* Copyright (c) 2015-2016 Qindel Group (http://www.qindel.com) */
|
|
/* */
|
|
/* NXCOMP, NX protocol compression and NX extensions to this software */
|
|
/* are copyright of the aforementioned persons and companies. */
|
|
/* */
|
|
/* Redistribution and use of the present software is allowed according */
|
|
/* to terms specified in the file LICENSE.nxcomp which comes in the */
|
|
/* source distribution. */
|
|
/* */
|
|
/* All rights reserved. */
|
|
/* */
|
|
/* NOTE: This software has received contributions from various other */
|
|
/* contributors, only the core maintainers and supporters are listed as */
|
|
/* copyright holders. Please contact us, if you feel you should be listed */
|
|
/* as copyright holder, as well. */
|
|
/* */
|
|
/**************************************************************************/
|
|
|
|
#ifndef NXvars_H
|
|
#define NXvars_H
|
|
|
|
/*
|
|
* This can be included by the proxy or another
|
|
* layer that doesn't use Xlib.
|
|
*/
|
|
|
|
#if !defined(_XLIB_H_) && !defined(_XKBSRV_H_)
|
|
|
|
#define NeedFunctionPrototypes 1
|
|
|
|
#define Display void
|
|
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*
|
|
* Display flush policies.
|
|
*/
|
|
|
|
#define NXPolicyImmediate 1
|
|
#define NXPolicyDeferred 2
|
|
|
|
/*
|
|
* Type of flush.
|
|
*/
|
|
|
|
#define NXFlushBuffer 0
|
|
#define NXFlushLink 1
|
|
|
|
/*
|
|
* Type of statistics.
|
|
*/
|
|
|
|
#define NXStatisticsPartial 0
|
|
#define NXStatisticsTotal 1
|
|
|
|
/*
|
|
* Reason why the display is blocking.
|
|
*/
|
|
|
|
#define NXBlockRead 1
|
|
#define NXBlockWrite 2
|
|
|
|
/*
|
|
* Set if the client is interested in ignoring
|
|
* the display error and continue with the exe-
|
|
* cution of the program. By default the usual
|
|
* Xlib behaviour is gotten, and the library
|
|
* will call an exit().
|
|
*/
|
|
|
|
extern int _NXHandleDisplayError;
|
|
|
|
/*
|
|
* The function below is called whenever Xlib is
|
|
* going to perform an I/O operation. The funct-
|
|
* ion can be redefined to include additional
|
|
* checks aimed at detecting if the display needs
|
|
* to be closed, for example because of an event
|
|
* or a signal mandating the end of the session.
|
|
* In this way the client program can regain the
|
|
* control before Xlib blocks waiting for input
|
|
* from the network.
|
|
*/
|
|
|
|
typedef int (*NXDisplayErrorPredicate)(
|
|
#if NeedFunctionPrototypes
|
|
Display* /* display */,
|
|
int /* reason */
|
|
#endif
|
|
);
|
|
|
|
extern NXDisplayErrorPredicate _NXDisplayErrorFunction;
|
|
|
|
/*
|
|
* This is called when Xlib is going to block
|
|
* waiting for the display to become readable or
|
|
* writable. The client can use the hook to run
|
|
* any arbitrary operation that may require some
|
|
* time to complete. The user should not try to
|
|
* read or write to the display inside the call-
|
|
* back routine.
|
|
*/
|
|
|
|
typedef void (*NXDisplayBlockHandler)(
|
|
#if NeedFunctionPrototypes
|
|
Display* /* display */,
|
|
int /* reason */
|
|
#endif
|
|
);
|
|
|
|
extern NXDisplayBlockHandler _NXDisplayBlockFunction;
|
|
|
|
/*
|
|
* Used to notify the program when more data
|
|
* is written to the socket.
|
|
*/
|
|
|
|
typedef void (*NXDisplayWriteHandler)(
|
|
#if NeedFunctionPrototypes
|
|
Display* /* display */,
|
|
int /* length */
|
|
#endif
|
|
);
|
|
|
|
extern NXDisplayWriteHandler _NXDisplayWriteFunction;
|
|
|
|
/*
|
|
* This callback is used to notify the agent
|
|
* that the proxy link has been flushed.
|
|
*/
|
|
|
|
typedef void (*NXDisplayFlushHandler)(
|
|
#if NeedFunctionPrototypes
|
|
Display* /* display */,
|
|
int /* length */
|
|
#endif
|
|
);
|
|
|
|
extern NXDisplayFlushHandler _NXDisplayFlushFunction;
|
|
|
|
/*
|
|
* Used by the NX transport to get an arbitrary
|
|
* string to add to its protocol statistics.
|
|
*/
|
|
|
|
typedef void (*NXDisplayStatisticsHandler)(
|
|
#if NeedFunctionPrototypes
|
|
Display* /* display */,
|
|
char* /* buffer */,
|
|
int /* size */
|
|
#endif
|
|
);
|
|
|
|
extern NXDisplayStatisticsHandler _NXDisplayStatisticsFunction;
|
|
|
|
/*
|
|
* Let users redefine the function printing an
|
|
* error message in the case of a out-of-order
|
|
* sequence number.
|
|
*/
|
|
|
|
typedef void (*NXLostSequenceHandler)(
|
|
#if NeedFunctionPrototypes
|
|
Display* /* display */,
|
|
unsigned long /* newseq */,
|
|
unsigned long /* lastseq */,
|
|
unsigned int /* type */
|
|
#endif
|
|
);
|
|
|
|
extern NXLostSequenceHandler _NXLostSequenceFunction;
|
|
|
|
/*
|
|
* Let the X server run the children processes
|
|
* (as for example the keyboard initialization
|
|
* utilities) by using the native system libra-
|
|
* ries, instead of the libraries shipped with
|
|
* the NX environment. If set, the Popen() in
|
|
* the X server will remove the LD_LIBRARY_PATH
|
|
* setting from the environment before calling
|
|
* the execl() function in the child process.
|
|
*/
|
|
|
|
extern int _NXUnsetLibraryPath;
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* NXvars_H */
|