FramebufferVNC.h revision 566ba99f1b0ecc5a63b18d296c467e3e2d3d9826
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * VBox Remote Desktop Protocol - VNC server interface.
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync * Contributed by Ivo Smits <Ivo@UFO-Net.nl>
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * Copyright (C) 2006-2007 Sun Microsystems, Inc.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * available from http://www.virtualbox.org. This file is free software;
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * you can redistribute it and/or modify it under the terms of the GNU
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * General Public License (GPL) as published by the Free Software
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * Clara, CA 95054 USA or visit http://www.sun.com if you need
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync * additional information or have any questions.
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync VNCFB(ComPtr <IConsole> console, int port, char const *password);
afed5ab737f4aacfae3fe73776f40e989190a7cavboxsync // public methods only for internal purposes
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync STDMETHOD(COMGETTER(BitsPerPixel))(ULONG *bitsPerPixel);
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync STDMETHOD(COMGETTER(BytesPerLine))(ULONG *bytesPerLine);
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync STDMETHOD(COMGETTER(PixelFormat)) (ULONG *pixelFormat);
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync STDMETHOD(COMGETTER(UsesGuestVRAM)) (BOOL *usesGuestVRAM);
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync STDMETHOD(COMGETTER(HeightReduction)) (ULONG *heightReduction);
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync STDMETHOD(COMGETTER(Overlay)) (IFramebufferOverlay **aOverlay);
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync STDMETHOD(NotifyUpdate)(ULONG x, ULONG y, ULONG w, ULONG h);
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync STDMETHOD(RequestResize)(ULONG aScreenId, ULONG pixelFormat, BYTE *vram,
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync STDMETHOD(VideoModeSupported)(ULONG width, ULONG height, ULONG bpp, BOOL *supported);
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync STDMETHOD(GetVisibleRegion)(BYTE *rectangles, ULONG count, ULONG *countCopied);
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync STDMETHOD(SetVisibleRegion)(BYTE *rectangles, ULONG count);
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync /** Guest framebuffer pixel format */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync /** Guest framebuffer color depth */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync /** Guest framebuffer line length */
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync //Our own framebuffer, in case we can't use the VRAM
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync //The source framebuffer (either our own mRGBBuffer or the guest VRAM)
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync //VNC display framebuffer (RGB -> BGR converted)
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync void kbdPutCodeShift(int shift, int code, int down);
fdea543f71872a3ec3909536a4fce37ab7aa3a8bvboxsync static DECLCALLBACK(int) vncThreadFn(RTTHREAD hThreadSelf, void *pvUser);
fdea543f71872a3ec3909536a4fce37ab7aa3a8bvboxsync /** The password that was passed to the constructor. NULL if no
fdea543f71872a3ec3909536a4fce37ab7aa3a8bvboxsync * authentication required. */
fdea543f71872a3ec3909536a4fce37ab7aa3a8bvboxsync static void vncKeyboardEvent(rfbBool down, rfbKeySym keySym, rfbClientPtr cl);
8f7bc6ad2b7bbcb4b3b96248cd2478e45f2e3b88vboxsync static void vncMouseEvent(int buttonMask, int x, int y, rfbClientPtr cl);
d408b82da0773c7e8cd4b3a01cb8a065a2c73a2dvboxsync void handleVncMouseEvent(int buttonMask, int x, int y);