rfb.h
上传用户:sbftbdw
上传日期:2007-01-03
资源大小:379k
文件大小:2k
源码类别:

远程控制编程

开发平台:

Visual C++

  1. //  Copyright (C) 1997, 1998 Olivetti & Oracle Research Laboratory
  2. //
  3. //  This file is part of the VNC system.
  4. //
  5. //  The VNC system is free software; you can redistribute it and/or modify
  6. //  it under the terms of the GNU General Public License as published by
  7. //  the Free Software Foundation; either version 2 of the License, or
  8. //  (at your option) any later version.
  9. //
  10. //  This program is distributed in the hope that it will be useful,
  11. //  but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13. //  GNU General Public License for more details.
  14. //
  15. //  You should have received a copy of the GNU General Public License
  16. //  along with this program; if not, write to the Free Software
  17. //  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,
  18. //  USA.
  19. //
  20. // If the source code for the VNC system is not available from the place 
  21. // whence you received this file, check http://www.orl.co.uk/vnc or contact
  22. // the authors on vnc@orl.co.uk for information on obtaining it.
  23. // rfb.h
  24. // This includes the rfb spec header, the port numbers,
  25. // the CARD type definitions and various useful macros.
  26. //
  27. #ifndef RFB_H__
  28. #define RFB_H__
  29. // Define the CARD* types as used in X11/Xmd.h
  30. typedef unsigned long CARD32;
  31. typedef unsigned short CARD16;
  32. typedef short INT16;
  33. typedef unsigned char  CARD8;
  34. // Define the port number offsets
  35. #define FLASH_PORT_OFFSET 5400
  36. #define INCOMING_PORT_OFFSET 5500
  37. #define HTTP_PORT_OFFSET 5800 // we don't use this in Venice
  38. #define RFB_PORT_OFFSET 5900
  39. #define PORT_TO_DISPLAY(p) ( (p) - RFB_PORT_OFFSET )
  40. #define DISPLAY_TO_PORT(d) ( (d) + RFB_PORT_OFFSET )
  41. // include the protocol spec
  42. #include "rfbproto.h"
  43. // define some quick endian conversions
  44. // change this if necessary
  45. #define LITTLE_ENDIAN_HOST
  46. #ifdef LITTLE_ENDIAN_HOST
  47. #define Swap16IfLE(s) 
  48.     ((CARD16) ((((s) & 0xff) << 8) | (((s) >> 8) & 0xff)))
  49. #define Swap32IfLE(l) 
  50.     ((CARD32) ((((l) & 0xff000000) >> 24) | 
  51.      (((l) & 0x00ff0000) >> 8)  | 
  52.  (((l) & 0x0000ff00) << 8)  | 
  53.  (((l) & 0x000000ff) << 24)))
  54. #else
  55. #define Swap16IfLE(s) (s)
  56. #define Swap32IfLE(l) (l)
  57. #endif
  58. // unconditional swaps
  59. #define Swap16(s) 
  60.     ((CARD16) ((((s) & 0xff) << 8) | (((s) >> 8) & 0xff)))
  61. #define Swap32(l) 
  62.     ((CARD32) ((((l) & 0xff000000) >> 24) | 
  63.      (((l) & 0x00ff0000) >> 8)  | 
  64.  (((l) & 0x0000ff00) << 8)  | 
  65.  (((l) & 0x000000ff) << 24)))
  66. #endif