Struct libvnc_sys::rfb::_rfbScreenInfo
source · #[repr(C)]pub struct _rfbScreenInfo {Show 90 fields
pub scaledScreenNext: *mut _rfbScreenInfo,
pub scaledScreenRefCount: c_int,
pub width: c_int,
pub paddedWidthInBytes: c_int,
pub height: c_int,
pub depth: c_int,
pub bitsPerPixel: c_int,
pub sizeInBytes: c_int,
pub blackPixel: rfbPixel,
pub whitePixel: rfbPixel,
pub screenData: *mut c_void,
pub serverFormat: rfbPixelFormat,
pub colourMap: rfbColourMap,
pub desktopName: *const c_char,
pub thisHost: [c_char; 255],
pub autoPort: rfbBool,
pub port: c_int,
pub listenSock: c_int,
pub maxSock: c_int,
pub maxFd: c_int,
pub allFds: fd_set,
pub socketState: rfbSocketState,
pub inetdSock: c_int,
pub inetdInitDone: rfbBool,
pub udpPort: c_int,
pub udpSock: c_int,
pub udpClient: *mut _rfbClientRec,
pub udpSockConnected: rfbBool,
pub udpRemoteAddr: sockaddr_in,
pub maxClientWait: c_int,
pub httpInitDone: rfbBool,
pub httpEnableProxyConnect: rfbBool,
pub httpPort: c_int,
pub httpDir: *mut c_char,
pub httpListenSock: c_int,
pub httpSock: c_int,
pub passwordCheck: rfbPasswordCheckProcPtr,
pub authPasswdData: *mut c_void,
pub authPasswdFirstViewOnly: c_int,
pub maxRectsPerUpdate: c_int,
pub deferUpdateTime: c_int,
pub alwaysShared: rfbBool,
pub neverShared: rfbBool,
pub dontDisconnect: rfbBool,
pub clientHead: *mut _rfbClientRec,
pub pointerClient: *mut _rfbClientRec,
pub cursorX: c_int,
pub cursorY: c_int,
pub underCursorBufferLen: c_int,
pub underCursorBuffer: *mut c_char,
pub dontConvertRichCursorToXCursor: rfbBool,
pub cursor: *mut rfbCursor,
pub frameBuffer: *mut c_char,
pub kbdAddEvent: rfbKbdAddEventProcPtr,
pub kbdReleaseAllKeys: rfbKbdReleaseAllKeysProcPtr,
pub ptrAddEvent: rfbPtrAddEventProcPtr,
pub setXCutText: rfbSetXCutTextProcPtr,
pub getCursorPtr: rfbGetCursorProcPtr,
pub setTranslateFunction: rfbSetTranslateFunctionProcPtr,
pub setSingleWindow: rfbSetSingleWindowProcPtr,
pub setServerInput: rfbSetServerInputProcPtr,
pub getFileTransferPermission: rfbFileTransferPermitted,
pub setTextChat: rfbSetTextChat,
pub newClientHook: rfbNewClientHookPtr,
pub displayHook: rfbDisplayHookPtr,
pub getKeyboardLedStateHook: rfbGetKeyboardLedStateHookPtr,
pub cursorMutex: pthread_mutex_t,
pub backgroundLoop: rfbBool,
pub ignoreSIGPIPE: rfbBool,
pub progressiveSliceHeight: c_int,
pub listenInterface: in_addr_t,
pub deferPtrUpdateTime: c_int,
pub handleEventsEagerly: rfbBool,
pub versionString: *mut c_char,
pub protocolMajorVersion: c_int,
pub protocolMinorVersion: c_int,
pub permitFileTransfer: rfbBool,
pub displayFinishedHook: rfbDisplayFinishedHookPtr,
pub xvpHook: rfbXvpHookPtr,
pub sslkeyfile: *mut c_char,
pub sslcertfile: *mut c_char,
pub ipv6port: c_int,
pub listen6Interface: *mut c_char,
pub listen6Sock: c_int,
pub http6Port: c_int,
pub httpListen6Sock: c_int,
pub setDesktopSizeHook: rfbSetDesktopSizeHookPtr,
pub numberOfExtDesktopScreensHook: rfbNumberOfExtDesktopScreensPtr,
pub getExtDesktopScreenHook: rfbGetExtDesktopScreenPtr,
pub fdQuota: f32,
}Expand description
Per-screen (framebuffer) structure. There can be as many as you wish, each serving different clients. However, you have to call rfbProcessEvents for each of these.
Fields§
§scaledScreenNext: *mut _rfbScreenInfothis structure has children that are scaled versions of this screen
scaledScreenRefCount: c_int§width: c_int§paddedWidthInBytes: c_int§height: c_int§depth: c_int§bitsPerPixel: c_int§sizeInBytes: c_int§blackPixel: rfbPixel§whitePixel: rfbPixel§screenData: *mut c_voidsome screen specific data can be put into a struct where screenData points to. You need this if you have more than one screen at the same time while using the same functions.
serverFormat: rfbPixelFormat§colourMap: rfbColourMap< set this if rfbServerFormat.trueColour==FALSE
desktopName: *const c_char§thisHost: [c_char; 255]§autoPort: rfbBool§port: c_int§listenSock: c_int§maxSock: c_int§maxFd: c_int§allFds: fd_set§socketState: rfbSocketState§inetdSock: c_int§inetdInitDone: rfbBool§udpPort: c_int§udpSock: c_int§udpClient: *mut _rfbClientRec§udpSockConnected: rfbBool§udpRemoteAddr: sockaddr_in§maxClientWait: c_int§httpInitDone: rfbBool§httpEnableProxyConnect: rfbBool§httpPort: c_int§httpDir: *mut c_char§httpListenSock: c_int§httpSock: c_int§passwordCheck: rfbPasswordCheckProcPtr§authPasswdData: *mut c_void§authPasswdFirstViewOnly: c_intIf rfbAuthPasswdData is given a list, this is the first view only password.
maxRectsPerUpdate: c_intsend only this many rectangles in one update
deferUpdateTime: c_intthis is the amount of milliseconds to wait at least before sending an update.
dontDisconnect: rfbBool§clientHead: *mut _rfbClientRec§pointerClient: *mut _rfbClientRec< “Mutex” for pointer events
cursorX: c_int§cursorY: c_int§underCursorBufferLen: c_int§underCursorBuffer: *mut c_char§dontConvertRichCursorToXCursor: rfbBool§cursor: *mut rfbCursor§frameBuffer: *mut c_charthe frameBuffer has to be supplied by the serving process. The buffer will not be freed by
kbdAddEvent: rfbKbdAddEventProcPtr§kbdReleaseAllKeys: rfbKbdReleaseAllKeysProcPtr§ptrAddEvent: rfbPtrAddEventProcPtr§setXCutText: rfbSetXCutTextProcPtr§getCursorPtr: rfbGetCursorProcPtr§setTranslateFunction: rfbSetTranslateFunctionProcPtr§setSingleWindow: rfbSetSingleWindowProcPtr§setServerInput: rfbSetServerInputProcPtr§getFileTransferPermission: rfbFileTransferPermitted§setTextChat: rfbSetTextChat§newClientHook: rfbNewClientHookPtrnewClientHook is called just after a new client is created
displayHook: rfbDisplayHookPtrdisplayHook is called just before a frame buffer update
getKeyboardLedStateHook: rfbGetKeyboardLedStateHookPtrThese hooks are called to pass keyboard state back to the client
cursorMutex: pthread_mutex_t§backgroundLoop: rfbBool§ignoreSIGPIPE: rfbBoolif TRUE, an ignoring signal handler is installed for SIGPIPE
progressiveSliceHeight: c_intif not zero, only a slice of this height is processed every time an update should be sent. This should make working on a slow link more interactive.
listenInterface: in_addr_t§deferPtrUpdateTime: c_int§handleEventsEagerly: rfbBoolhandle as many input events as possible (default off)
versionString: *mut c_charrfbEncodingServerIdentity
protocolMajorVersion: c_intWhat does the server tell the new clients which version it supports
protocolMinorVersion: c_int§permitFileTransfer: rfbBoolcommand line authorization of file transfers
displayFinishedHook: rfbDisplayFinishedHookPtrdisplayFinishedHook is called just after a frame buffer update
xvpHook: rfbXvpHookPtrxvpHook is called to handle an xvp client message
sslkeyfile: *mut c_char§sslcertfile: *mut c_char§ipv6port: c_int< The port to listen on when using IPv6.
listen6Interface: *mut c_char§listen6Sock: c_int§http6Port: c_int§httpListen6Sock: c_int§setDesktopSizeHook: rfbSetDesktopSizeHookPtrhook to let client set resolution
numberOfExtDesktopScreensHook: rfbNumberOfExtDesktopScreensPtrOptional hooks to query ExtendedDesktopSize screen information. If not set it is assumed only one screen is present spanning entire fb
getExtDesktopScreenHook: rfbGetExtDesktopScreenPtr§fdQuota: f32This value between 0 and 1.0 defines which fraction of the maximum number of file descriptors LibVNCServer uses before denying new client connections. It is set to 0.5 per default.
Trait Implementations§
source§impl Clone for _rfbScreenInfo
impl Clone for _rfbScreenInfo
source§fn clone(&self) -> _rfbScreenInfo
fn clone(&self) -> _rfbScreenInfo
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more