From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LSYj7-0005rd-8H for qemu-devel@nongnu.org; Thu, 29 Jan 2009 10:22:45 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LSYj6-0005pV-Fi for qemu-devel@nongnu.org; Thu, 29 Jan 2009 10:22:44 -0500 Received: from [199.232.76.173] (port=54654 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LSYj6-0005pA-AV for qemu-devel@nongnu.org; Thu, 29 Jan 2009 10:22:44 -0500 Received: from mail-qy0-f20.google.com ([209.85.221.20]:61101) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LSYj6-00010a-0n for qemu-devel@nongnu.org; Thu, 29 Jan 2009 10:22:44 -0500 Received: by qyk13 with SMTP id 13so12444627qyk.10 for ; Thu, 29 Jan 2009 07:22:43 -0800 (PST) Message-ID: <4981C9B2.20709@codemonkey.ws> Date: Thu, 29 Jan 2009 09:22:26 -0600 From: Anthony Liguori MIME-Version: 1.0 References: <1233228298-4844-1-git-send-email-agraf@suse.de> <1233228298-4844-2-git-send-email-agraf@suse.de> In-Reply-To: <1233228298-4844-2-git-send-email-agraf@suse.de> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] Re: [PATCH 1/7] Split VNC defines to vnc.h Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Alexander Graf Cc: qemu-devel@nongnu.org Alexander Graf wrote: > The VNC protocol contains quite some constants, some of which are > currently hardcoded in the vnc.c code. This is not exactly pretty. > > Let's move all those constants out to vnc.h, so they are clearly > separated. While at it, I also included other defines that will be > used later in this patch series. > A much needed change. > diff --git a/vnc.h b/vnc.h > new file mode 100644 > index 0000000..ae69bc3 > --- /dev/null > +++ b/vnc.h > @@ -0,0 +1,130 @@ > +#ifndef __VNCTIGHT_H > +#define __VNCTIGHT_H > + > +/***************************************************************************** > + * > + * Authentication modes > + * > + *****************************************************************************/ > + > +enum { > + VNC_AUTH_INVALID = 0, > + VNC_AUTH_NONE = 1, > + VNC_AUTH_VNC = 2, > + VNC_AUTH_RA2 = 5, > + VNC_AUTH_RA2NE = 6, > + VNC_AUTH_TIGHT = 16, > + VNC_AUTH_ULTRA = 17, > + VNC_AUTH_TLS = 18, > + VNC_AUTH_VENCRYPT = 19 > +}; > + > +#define VNC_AUTH_NONE_SIG "NOAUTH__" > +#define VNC_AUTH_VNC_SIG "VNCAUTH_" > These AUTH sigs are not part of the standard as far as I'm aware of it. This is the VNC_AUTH_TIGHT stuff? I'd rather not do that. > + > +#define VNC_ENCODING_RAW 0x00000000 > +#define VNC_ENCODING_COPYRECT 0x00000001 > +#define VNC_ENCODING_RRE 0x00000002 > +#define VNC_ENCODING_CORRE 0x00000004 > +#define VNC_ENCODING_HEXTILE 0x00000005 > +#define VNC_ENCODING_ZLIB 0x00000006 > +#define VNC_ENCODING_TIGHT 0x00000007 > +#define VNC_ENCODING_ZLIBHEX 0x00000008 > This was never standardized. > +#define VNC_ENCODING_ZRLE 0x00000010 > +#define VNC_ENCODING_COMPRESSLEVEL0 0xFFFFFF00 > +#define VNC_ENCODING_QUALITYLEVEL0 0xFFFFFFE0 > +#define VNC_ENCODING_XCURSOR 0xFFFFFF10 > +#define VNC_ENCODING_RICH_CURSOR 0xFFFFFF11 > +#define VNC_ENCODING_POINTER_POS 0xFFFFFF18 > Nor was this. > +#define VNC_ENCODING_LASTRECT 0xFFFFFF20 > Nor this. > +#define VNC_ENCODING_DESKTOPRESIZE 0xFFFFFF21 > +#define VNC_ENCODING_POINTER_TYPE_CHANGE 0XFFFFFEFF > +#define VNC_ENCODING_EXT_KEY_EVENT 0XFFFFFEFE > +#define VNC_ENCODING_AUDIO 0XFFFFFEFD > +#define VNC_ENCODING_WMVi 0x574D5669 > + > +/* signatures for basic encoding types */ > +#define VNC_ENCODING_RAW_SIG "RAW_____" > +#define VNC_ENCODING_COPYRECT_SIG "COPYRECT" > +#define VNC_ENCODING_RRE_SIG "RRE_____" > +#define VNC_ENCODING_CORRE_SIG "CORRE___" > +#define VNC_ENCODING_HEXTILE_SIG "HEXTILE_" > +#define VNC_ENCODING_ZLIB_SIG "ZLIB____" > +#define VNC_ENCODING_TIGHT_SIG "TIGHT___" > +#define VNC_ENCODING_ZLIBHEX_SIG "ZLIBHEX_" > +#define VNC_ENCODING_ZRLE_SIG "ZRLE____" > +#define VNC_ENCODING_COMPRESSLEVEL0_SIG "COMPRLVL" > +#define VNC_ENCODING_QUALITYLEVEL0_SIG "JPEGQLVL" > These are not part of the standard either. I'm not sure what they do. > +/***************************************************************************** > + * > + * Other tight constants > + * > + *****************************************************************************/ > + > +/* > + * Vendors known by TightVNC: standard VNC/RealVNC, TridiaVNC, and TightVNC. > + */ > + > +#define VNC_VENDOR_STANDARD "STDV" > +#define VNC_VENDOR_TRIDIA "TRDV" > +#define VNC_VENDOR_TIGHT "TGHT" > This also is not part of the standard. Regards, Anthony Liguori > +#define VNC_TIGHT_CCB_RESET_MASK (0x0f) > +#define VNC_TIGHT_CCB_TYPE_MASK (0x0f << 4) > +#define VNC_TIGHT_CCB_TYPE_FILL (0x08 << 4) > +#define VNC_TIGHT_CCB_TYPE_JPEG (0x09 << 4) > +#define VNC_TIGHT_CCB_BASIC_MAX (0x07 << 4) > +#define VNC_TIGHT_CCB_BASIC_ZLIB (0x03 << 4) > +#define VNC_TIGHT_CCB_BASIC_FILTER (0x04 << 4) > + > +/***************************************************************************** > + * > + * Features > + * > + *****************************************************************************/ > + > +#define VNC_FEATURE_RESIZE 0 > +#define VNC_FEATURE_HEXTILE 1 > +#define VNC_FEATURE_POINTER_TYPE_CHANGE 2 > +#define VNC_FEATURE_WMVI 3 > +#define VNC_FEATURE_TIGHT 4 > +#define VNC_FEATURE_TIGHT_PROTOCOL 5 > + > +#define VNC_FEATURE_RESIZE_MASK (1 << VNC_FEATURE_RESIZE) > +#define VNC_FEATURE_HEXTILE_MASK (1 << VNC_FEATURE_HEXTILE) > +#define VNC_FEATURE_POINTER_TYPE_CHANGE_MASK (1 << VNC_FEATURE_POINTER_TYPE_CHANGE) > +#define VNC_FEATURE_WMVI_MASK (1 << VNC_FEATURE_WMVI) > +#define VNC_FEATURE_TIGHT_MASK (1 << VNC_FEATURE_TIGHT) > +#define VNC_FEATURE_TIGHT_PROTOCOL_MASK (1 << VNC_FEATURE_TIGHT_PROTOCOL) > + > +#endif /* __VNCTIGHT_H */ >