⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vnc-server.h

📁 一个小的RTOS具有UIP网络功能
💻 H
字号:
/* * Copyright (c) 2001, Adam Dunkels. * All rights reserved.  * * Redistribution and use in source and binary forms, with or without  * modification, are permitted provided that the following conditions  * are met:  * 1. Redistributions of source code must retain the above copyright  *    notice, this list of conditions and the following disclaimer.  * 2. Redistributions in binary form must reproduce the above copyright  *    notice, this list of conditions and the following disclaimer in the  *    documentation and/or other materials provided with the distribution.  * 3. All advertising materials mentioning features or use of this software *    must display the following acknowledgement: *      This product includes software developed by Adam Dunkels. * 4. The name of the author may not be used to endorse or promote *    products derived from this software without specific prior *    written permission.   * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.   * * This file is part of the uIP TCP/IP stack. * * $Id: vnc-server.h,v 1.2 2003/09/02 21:47:28 adamdunkels Exp $ * */#ifndef __VNC_SERVER_H__#define __VNC_SERVER_H__/*struct vnc_server_updatearea {  u8_t active;  u8_t x, y;  u8_t w, h;  };*/struct vnc_server_update {  struct vnc_server_update *next;#define VNC_SERVER_UPDATE_NONE  0#define VNC_SERVER_UPDATE_PARTS 1#define VNC_SERVER_UPDATE_FULL  2  u8_t type;  u8_t x, y;  u8_t w, h;  };struct vnc_server_state {  u16_t counter;  u8_t type;  u8_t state;  u16_t height, width;  u8_t update_requested;    /* Variables used when sending screen updates. */  u8_t x, y, x1, y1, x2, y2;  u8_t w, h;    u16_t readlen;  u8_t sendmsg;  u8_t button;    struct vnc_server_update *updates_current;  struct vnc_server_update *updates_pending;  struct vnc_server_update *updates_free;#define VNC_SERVER_MAX_UPDATES 8    struct vnc_server_update updates_pool[VNC_SERVER_MAX_UPDATES];};struct vnc_server_update *     vnc_server_update_alloc(struct vnc_server_state *vs);void vnc_server_update_free(struct vnc_server_state *vs,			    struct vnc_server_update *a);void vnc_server_update_remove(struct vnc_server_state *vs,			      struct vnc_server_update *a);void vnc_server_update_add(struct vnc_server_state *vs,			   struct vnc_server_update *a);struct vnc_server_update *     vnc_server_update_dequeue(struct vnc_server_state *vs);void vnc_server_init(void);void vnc_server_appcall(struct vnc_server_state *state);extern struct vnc_server_state *vs;enum {  VNC_DEALLOCATED,  VNC_VERSION,  VNC_VERSION2,  VNC_AUTH,  VNC_AUTH2,  VNC_INIT,  VNC_INIT2,  VNC_RUNNING};/* Sendmsg */enum {  SEND_NONE,  SEND_BLANK,  SENT_BLANK,  SEND_SCREEN,  SEND_UPDATE};/* Definitions of the RFB (Remote Frame Buffer) protocol   structures and constants. */#include "uipopt.h"void vnc_server_send_data(struct vnc_server_state *vs);u8_t vnc_server_draw_rect(u8_t *ptr, u16_t x, u16_t y, u16_t w, u16_t h, u8_t c);/* Generic rectangle - x, y coordinates, width and height. */struct rfb_rect {  u16_t x;  u16_t y;  u16_t w;  u16_t h;};/* Pixel format definition. */struct rfb_pixel_format {  u8_t bps;       /* Bits per pixel: 8, 16 or 32. */  u8_t depth;     /* Color depth: 8-32 */  u8_t endian;    /* 1 - big endian (motorola), 0 - little endian		     (x86) */  u8_t truecolor; /* 1 - true color is used, 0 - true color is not used. */  /* The following fields are only used if true color is used. */  u16_t red_max, green_max, blue_max;  u8_t red_shift, green_shift, blue_shift;  u8_t pad1;  u16_t pad2;};/* RFB authentication constants. */#define RFB_AUTH_FAILED      0#define RFB_AUTH_NONE        1#define RFB_AUTH_VNC         2#define RFB_VNC_AUTH_OK      0#define RFB_VNC_AUTH_FAILED  1#define RFB_VNC_AUTH_TOOMANY 2/* RFB message types. *//* From server to client: */#define RFB_FB_UPDATE            0#define RFB_SET_COLORMAP_ENTRIES 1#define RFB_BELL                 2#define RFB_SERVER_CUT_TEXT      3/* From client to server. */#define RFB_SET_PIXEL_FORMAT     0#define RFB_FIX_COLORMAP_ENTRIES 1#define RFB_SET_ENCODINGS        2#define RFB_FB_UPDATE_REQ        3#define RFB_KEY_EVENT            4#define RFB_POINTER_EVENT        5#define RFB_CLIENT_CUT_TEXT      6/* Encoding types. */#define RFB_ENC_RAW      0#define RFB_ENC_COPYRECT 1#define RFB_ENC_RRE      2#define RFB_ENC_CORRE    3#define RFB_ENC_HEXTILE  4/* Message definitions. *//* Server to client messages. */struct rfb_server_init {  u16_t width;  u16_t height;  struct rfb_pixel_format format;  u8_t namelength[4];  /* Followed by name. */};struct rfb_fb_update {  u8_t type;  u8_t pad;  u16_t rects; /* Number of rectanges (struct rfb_fb_update_rect_hdr +		  data) that follows. */};struct rfb_fb_update_rect_hdr {  struct rfb_rect rect;  u8_t encoding[4];};struct rfb_copy_rect {  u16_t srcx;  u16_t srcy;};struct rfb_rre_hdr {  u16_t subrects[2];  /* Number of subrectangles (struct			 rfb_rre_subrect) to follow. */  u8_t bgpixel;};struct rfb_rre_subrect {  u8_t pixel;  struct rfb_rect rect;};struct rfb_corre_rect {  u8_t x;  u8_t y;  u8_t w;  u8_t h;};/* Client to server messages. */struct rfb_set_pixel_format {  u8_t type;  u8_t pad;  u16_t pad2;  struct rfb_pixel_format format;};struct rfb_fix_colormap_entries {  u8_t type;  u8_t pad;  u16_t firstcolor;  u16_t colors;};struct rfb_set_encoding {  u8_t type;  u8_t pad;  u16_t encodings;};struct rfb_fb_update_request {  u8_t type;  u8_t incremental;  u16_t x;  u16_t y;  u16_t w;  u16_t h;};struct rfb_key_event {  u8_t type;  u8_t down;  u16_t pad;  u8_t key[4];};#define RFB_BUTTON_MASK1 1#define RFB_BUTTON_MASK2 2#define RFB_BUTTON_MASK3 4struct rfb_pointer_event {  u8_t type;  u8_t buttonmask;  u16_t x;  u16_t y;};struct rfb_client_cut_text {  u8_t type;  u8_t pad[3];  u8_t len[4];};#endif /* __VNC_SERVER_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -