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

远程控制编程

开发平台:

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. /* translate.h - prototypes of functions in translate.cpp */
  24. #ifndef TRANSLATE_H__
  25. #define TRANSLATE_H__
  26. #include "stdhdrs.h"
  27. #include "rfb.h"
  28. // Translate function prototype!
  29. typedef void (*rfbTranslateFnType)(char *table, rfbPixelFormat *in,
  30.    rfbPixelFormat *out,
  31.    char *iptr, char *optr,
  32.    int bytesBetweenInputLines,
  33.    int width, int height);
  34. // Init function prototype!
  35. typedef void (*rfbInitTableFnType)(char **table, rfbPixelFormat *in,
  36.    rfbPixelFormat *out);
  37. // External translation stuff
  38. extern void rfbTranslateNone(char *table, rfbPixelFormat *in,
  39.      rfbPixelFormat *out,
  40.      char *iptr, char *optr,
  41.      int bytesBetweenInputLines,
  42.      int width, int height);
  43. // Macro to compare pixel formats.
  44. #define PF_EQ(x,y)
  45. ((x.bitsPerPixel == y.bitsPerPixel) &&
  46.  (x.depth == y.depth) &&
  47.  (x.trueColour == y.trueColour) &&
  48.  ((x.bigEndian == y.bigEndian) || (x.bitsPerPixel == 8)) &&
  49.  (!x.trueColour || ((x.redMax == y.redMax) &&
  50.    (x.greenMax == y.greenMax) &&
  51.    (x.blueMax == y.blueMax) &&
  52.    (x.redShift == y.redShift) &&
  53.    (x.greenShift == y.greenShift) &&
  54.    (x.blueShift == y.blueShift))))
  55. // Translation functions themselves
  56. extern rfbInitTableFnType rfbInitTrueColourSingleTableFns[];
  57. extern rfbInitTableFnType rfbInitColourMapSingleTableFns[];
  58. extern rfbInitTableFnType rfbInitTrueColourRGBTablesFns[];
  59. extern rfbTranslateFnType rfbTranslateWithSingleTableFns[3][3];
  60. extern rfbTranslateFnType rfbTranslateWithRGBTablesFns[3][3];
  61. /*
  62. extern Bool rfbSetTranslateFunction(rfbClientPtr cl);
  63. extern void rfbSetClientColourMaps(int firstColour, int nColours);
  64. extern Bool rfbSetClientColourMap(rfbClientPtr cl, int firstColour,
  65.   int nColours);
  66. */
  67. #endif