Struct libvnc_sys::rfb::_rfbClientRec
source · #[repr(C)]pub struct _rfbClientRec {Show 97 fields
pub screen: rfbScreenInfoPtr,
pub scaledScreen: rfbScreenInfoPtr,
pub PalmVNC: rfbBool,
pub clientData: *mut c_void,
pub clientGoneHook: ClientGoneHookPtr,
pub sock: c_int,
pub host: *mut c_char,
pub protocolMajorVersion: c_int,
pub protocolMinorVersion: c_int,
pub client_thread: pthread_t,
pub state: _rfbClientRec__bindgen_ty_1,
pub reverseConnection: rfbBool,
pub onHold: rfbBool,
pub readyForSetColourMapEntries: rfbBool,
pub useCopyRect: rfbBool,
pub preferredEncoding: c_int,
pub correMaxWidth: c_int,
pub correMaxHeight: c_int,
pub viewOnly: rfbBool,
pub authChallenge: [u8; 16],
pub copyRegion: sraRegionPtr,
pub copyDX: c_int,
pub copyDY: c_int,
pub modifiedRegion: sraRegionPtr,
pub requestedRegion: sraRegionPtr,
pub startDeferring: timeval,
pub startPtrDeferring: timeval,
pub lastPtrX: c_int,
pub lastPtrY: c_int,
pub lastPtrButtons: c_int,
pub translateFn: rfbTranslateFnType,
pub translateLookupTable: *mut c_char,
pub format: rfbPixelFormat,
pub updateBuf: [c_char; 30000],
pub ublen: c_int,
pub statEncList: *mut _rfbStatList,
pub statMsgList: *mut _rfbStatList,
pub rawBytesEquivalent: c_int,
pub bytesSent: c_int,
pub compStream: z_stream_s,
pub compStreamInited: rfbBool,
pub zlibCompressLevel: u32,
pub tightQualityLevel: c_int,
pub zsStruct: [z_stream; 4],
pub zsActive: [rfbBool; 4],
pub zsLevel: [c_int; 4],
pub tightCompressLevel: c_int,
pub compStreamInitedLZO: rfbBool,
pub lzoWrkMem: *mut c_char,
pub fileTransfer: rfbFileTransferData,
pub lastKeyboardLedState: c_int,
pub enableSupportedMessages: rfbBool,
pub enableSupportedEncodings: rfbBool,
pub enableServerIdentity: rfbBool,
pub enableKeyboardLedState: rfbBool,
pub enableLastRectEncoding: rfbBool,
pub enableCursorShapeUpdates: rfbBool,
pub enableCursorPosUpdates: rfbBool,
pub useRichCursorEncoding: rfbBool,
pub cursorWasChanged: rfbBool,
pub cursorWasMoved: rfbBool,
pub cursorX: c_int,
pub cursorY: c_int,
pub useNewFBSize: rfbBool,
pub newFBSizePending: rfbBool,
pub prev: *mut _rfbClientRec,
pub next: *mut _rfbClientRec,
pub refCount: c_int,
pub refCountMutex: pthread_mutex_t,
pub deleteCond: pthread_cond_t,
pub outputMutex: pthread_mutex_t,
pub updateMutex: pthread_mutex_t,
pub updateCond: pthread_cond_t,
pub zrleData: *mut c_void,
pub zywrleLevel: c_int,
pub zywrleBuf: [c_int; 4096],
pub progressiveSliceY: c_int,
pub extensions: *mut rfbExtensionData,
pub zrleBeforeBuf: *mut c_char,
pub paletteHelper: *mut c_void,
pub sendMutex: pthread_mutex_t,
pub beforeEncBuf: *mut c_char,
pub beforeEncBufSize: c_int,
pub afterEncBuf: *mut c_char,
pub afterEncBufSize: c_int,
pub afterEncBufLen: c_int,
pub tightEncoding: u32,
pub turboSubsampLevel: c_int,
pub turboQualityLevel: c_int,
pub sslctx: *mut rfbSslCtx,
pub wsctx: *mut wsCtx,
pub wspath: *mut c_char,
pub pipe_notify_client_thread: [c_int; 2],
pub clientFramebufferUpdateRequestHook: ClientFramebufferUpdateRequestHookPtr,
pub useExtDesktopSize: rfbBool,
pub requestedDesktopSizeChange: c_int,
pub lastDesktopSizeChangeError: c_int,
}Fields§
§screen: rfbScreenInfoPtrback pointer to the screen
scaledScreen: rfbScreenInfoPtrpoints to a scaled version of the screen buffer in cl->scaledScreenList
PalmVNC: rfbBoolhow did the client tell us it wanted the screen changed? Ultra style or palm style?
clientData: *mut c_voidprivate data. You should put any application client specific data into a struct and let clientData point to it. Don’t forget to free the struct via clientGoneHook!
This is useful if the IO functions have to behave client specific.
clientGoneHook: ClientGoneHookPtr§sock: c_int§host: *mut c_char§protocolMajorVersion: c_int§protocolMinorVersion: c_int§client_thread: pthread_t§state: _rfbClientRec__bindgen_ty_1§reverseConnection: rfbBool§onHold: rfbBool§readyForSetColourMapEntries: rfbBool§useCopyRect: rfbBool§preferredEncoding: c_int§correMaxWidth: c_int§correMaxHeight: c_int§viewOnly: rfbBool§authChallenge: [u8; 16]§copyRegion: sraRegionPtr< the destination region of the copy
copyDX: c_int< the translation by which the copy happens
copyDY: c_int< the translation by which the copy happens
modifiedRegion: sraRegionPtr§requestedRegion: sraRegionPtrAs part of the FramebufferUpdateRequest, a client can express interest in a subrectangle of the whole framebuffer. This is stored in the requestedRegion member. In the normal case this is the whole framebuffer if the client is ready, empty if it’s not.
startDeferring: timevalThe following member represents the state of the “deferred update” timer
- when the framebuffer is modified and the client is ready, in most cases it is more efficient to defer sending the update by a few milliseconds so that several changes to the framebuffer can be combined into a single update.
startPtrDeferring: timeval§lastPtrX: c_int§lastPtrY: c_int§lastPtrButtons: c_int§translateFn: rfbTranslateFnTypetranslateFn points to the translation function which is used to copy and translate a rectangle from the framebuffer to an output buffer.
translateLookupTable: *mut c_char§format: rfbPixelFormat§updateBuf: [c_char; 30000]§ublen: c_int§statEncList: *mut _rfbStatList§statMsgList: *mut _rfbStatList§rawBytesEquivalent: c_int§bytesSent: c_int§compStream: z_stream_s§compStreamInited: rfbBool§zlibCompressLevel: u32§tightQualityLevel: c_intthe quality level is also used by ZYWRLE and TightPng
zsStruct: [z_stream; 4]§zsActive: [rfbBool; 4]§zsLevel: [c_int; 4]§tightCompressLevel: c_int§compStreamInitedLZO: rfbBool§lzoWrkMem: *mut c_char§fileTransfer: rfbFileTransferData§lastKeyboardLedState: c_int< keep track of last value so we can send change events
enableSupportedMessages: rfbBool< client supports SupportedMessages encoding
enableSupportedEncodings: rfbBool< client supports SupportedEncodings encoding
enableServerIdentity: rfbBool< client supports ServerIdentity encoding
enableKeyboardLedState: rfbBool< client supports KeyboardState encoding
enableLastRectEncoding: rfbBool< client supports LastRect encoding
enableCursorShapeUpdates: rfbBool< client supports cursor shape updates
enableCursorPosUpdates: rfbBool< client supports cursor position updates
useRichCursorEncoding: rfbBool< rfbEncodingRichCursor is preferred
cursorWasChanged: rfbBool< cursor shape update should be sent
cursorWasMoved: rfbBool< cursor position update should be sent
cursorX: c_int< the coordinates of the cursor, if enableCursorShapeUpdates = FALSE
cursorY: c_int< the coordinates of the cursor, if enableCursorShapeUpdates = FALSE
useNewFBSize: rfbBool< client supports NewFBSize encoding
newFBSizePending: rfbBool< framebuffer size was changed
prev: *mut _rfbClientRec§next: *mut _rfbClientRec§refCount: c_intwhenever a client is referenced, the refCount has to be incremented and afterwards decremented, so that the client is not cleaned up while being referenced. Use the functions rfbIncrClientRef(cl) and rfbDecrClientRef(cl);
refCountMutex: pthread_mutex_t§deleteCond: pthread_cond_t§outputMutex: pthread_mutex_t§updateMutex: pthread_mutex_t§updateCond: pthread_cond_t§zrleData: *mut c_void§zywrleLevel: c_int§zywrleBuf: [c_int; 4096]§progressiveSliceY: c_intif progressive updating is on, this variable holds the current y coordinate of the progressive slice.
extensions: *mut rfbExtensionData§zrleBeforeBuf: *mut c_charfor threaded zrle
paletteHelper: *mut c_void§sendMutex: pthread_mutex_t§beforeEncBuf: *mut c_char§beforeEncBufSize: c_int§afterEncBuf: *mut c_char§afterEncBufSize: c_int§afterEncBufLen: c_int§tightEncoding: u32§turboSubsampLevel: c_int§turboQualityLevel: c_int§sslctx: *mut rfbSslCtx§wsctx: *mut wsCtx§wspath: *mut c_char§pipe_notify_client_thread: [c_int; 2]§clientFramebufferUpdateRequestHook: ClientFramebufferUpdateRequestHookPtrclientFramebufferUpdateRequestHook is called when a client requests a frame buffer update.
useExtDesktopSize: rfbBool§requestedDesktopSizeChange: c_int§lastDesktopSizeChangeError: c_intTrait Implementations§
source§impl Clone for _rfbClientRec
impl Clone for _rfbClientRec
source§fn clone(&self) -> _rfbClientRec
fn clone(&self) -> _rfbClientRec
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more