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 _rfbScreenInfo

this 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_void

some 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_int

If rfbAuthPasswdData is given a list, this is the first view only password.

§maxRectsPerUpdate: c_int

send only this many rectangles in one update

§deferUpdateTime: c_int

this is the amount of milliseconds to wait at least before sending an update.

§alwaysShared: rfbBool§neverShared: rfbBool§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_char

the 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: rfbNewClientHookPtr

newClientHook is called just after a new client is created

§displayHook: rfbDisplayHookPtr

displayHook is called just before a frame buffer update

§getKeyboardLedStateHook: rfbGetKeyboardLedStateHookPtr

These hooks are called to pass keyboard state back to the client

§cursorMutex: pthread_mutex_t§backgroundLoop: rfbBool§ignoreSIGPIPE: rfbBool

if TRUE, an ignoring signal handler is installed for SIGPIPE

§progressiveSliceHeight: c_int

if 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: rfbBool

handle as many input events as possible (default off)

§versionString: *mut c_char

rfbEncodingServerIdentity

§protocolMajorVersion: c_int

What does the server tell the new clients which version it supports

§protocolMinorVersion: c_int§permitFileTransfer: rfbBool

command line authorization of file transfers

§displayFinishedHook: rfbDisplayFinishedHookPtr

displayFinishedHook is called just after a frame buffer update

§xvpHook: rfbXvpHookPtr

xvpHook 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: rfbSetDesktopSizeHookPtr

hook to let client set resolution

§numberOfExtDesktopScreensHook: rfbNumberOfExtDesktopScreensPtr

Optional hooks to query ExtendedDesktopSize screen information. If not set it is assumed only one screen is present spanning entire fb

§getExtDesktopScreenHook: rfbGetExtDesktopScreenPtr§fdQuota: f32

This 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

source§

fn clone(&self) -> _rfbScreenInfo

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Copy for _rfbScreenInfo

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.