Select one of the symbols to view example projects that use it.
 
Outline
#define GUI_VNC_H
#include "GUI_Private.h"
#include "GUI_Type.h"
#include "IP_FS.h"
#define GUI_VNC_NO_ERROR
#define GUI_VNC_ERROR_MISC
#define GUI_VNC_ERROR_WRONGFORMAT
#define GUI_DES_ENCRYPT
#define GUI_DES_DECRYPT
#define GUI_VNC_SUPPORT_FILETRANSFER
#define RFB_EXTENSION
#define RFBX_FILE_LIST_REQUEST
#define RFBX_FILE_LIST_REPLY
#define RFBX_UPLOAD_START_REQUEST
#define RFBX_UPLOAD_START_REPLY
#define RFBX_UPLOAD_DATA_REQUEST
#define RFBX_UPLOAD_DATA_REPLY
#define RFBX_UPLOAD_END_REQUEST
#define RFBX_UPLOAD_END_REPLY
#define RFBX_DOWNLOAD_START_REQUEST
#define RFBX_DOWNLOAD_START_REPLY
#define RFBX_DOWNLOAD_DATA_REQUEST
#define RFBX_DOWNLOAD_DATA_REPLY
#define RFBX_DOWNLOAD_END_REPLY
#define RFBX_MKDIR_REQUEST
#define RFBX_MKDIR_REPLY
#define RFBX_REMOVE_REQUEST
#define RFBX_REMOVE_REPLY
#define RFBX_RENAME_REQUEST
#define RFBX_RENAME_REPLY
BUFFER_CB
GUI_VNC_CONTEXT
GUI_VNC_AUTHENTICATION
GUI_VNC_SetDESKey(unsigned char *, int);
GUI_VNC_DoDES(unsigned char *, unsigned char *);
GUI_VNC_AttachToLayer(GUI_VNC_CONTEXT *, int);
GUI_VNC_EnableKeyboardInput(int);
GUI_VNC_EnableMouseInput(int);
GUI_VNC_EnableFileTransfer(unsigned int);
GUI_VNC_GetNumConnections();
GUI_VNC_Process(GUI_VNC_CONTEXT *, GUI_tSend, GUI_tRecv, void *);
GUI_VNC_RingBell();
GUI_VNC_SetAuthentication(GUI_VNC_AUTHENTICATION *);
GUI_VNC_SetPassword(unsigned char *);
GUI_VNC_SetProgName(const char *);
GUI_VNC_SetSize(unsigned int, unsigned int);
GUI_VNC_SetLockFrame(unsigned int);
GUI_VNC_SetRetryCount(unsigned int);
GUI_VNC_SetFS_API(const IP_FS_API *);
GUI_VNC__SetRFBExtensionHandler(int (*)(unsigned long, GUI_VNC_CONTEXT *, BUFFER_CB *));
GUI_VNC_X_StartServer(int, int);
GUI_VNC_X_StartServerFT(int, int);
GUI_VNC_X_getpeername(unsigned long *);
Files
loading...
CodeScopeSTM32 Libraries and SamplesSTemWininc/GUI_VNC.h
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/********************************************************************* * SEGGER Microcontroller GmbH & Co. KG * * Solutions for real time microcontroller applications * ********************************************************************** * * * (c) 1996 - 2017 SEGGER Microcontroller GmbH & Co. KG * * * * Internet: www.segger.com Support: support@segger.com * * * ********************************************************************** ** emWin V5.44 - Graphical user interface for embedded applications ** All Intellectual Property rights in the Software belongs to SEGGER. emWin is protected by international copyright laws. Knowledge of the source code may not be used to write a similar product. This file may only be used in accordance with the following terms: The software has been licensed to STMicroelectronics International N.V. a Dutch company with a Swiss branch and its headquarters in Plan- les-Ouates, Geneva, 39 Chemin du Champ des Filles, Switzerland for the purposes of creating libraries for ARM Cortex-M-based 32-bit microcon_ troller products commercialized by Licensee only, sublicensed and dis_ tributed under the terms and conditions of the End User License Agree_ ment supplied by STMicroelectronics International N.V. Full source code is available at: www.segger.com We appreciate your understanding and fairness. ---------------------------------------------------------------------- ****************************************************************************** * @attention * * <h2><center>&copy; Copyright (c) 2018 STMicroelectronics. * All rights reserved.</center></h2> * * This software component is licensed by ST under Ultimate Liberty license SLA0044, * the "License"; You may not use this file except in compliance with the License. * You may obtain a copy of the License at: * http://www.st.com/SLA0044 * ****************************************************************************** ---------------------------------------------------------------------- File : GUI_VNC.h Purpose : Publics for the VNC server ---------------------------END-OF-HEADER------------------------------ Attention : Do not modify this file ! If you do, you will not be able do update to a later GUI version ! *//* ... */ #ifndef GUI_VNC_H #define GUI_VNC_H #include "GUI_Private.h" #include "GUI_Type.h" #include "IP_FS.h" #if defined(__cplusplus) extern "C" { /* Make sure we have C-declarations in C++ programs */ #endif /********************************************************************* * * Defines * ********************************************************************** *//* ... */ #define GUI_VNC_NO_ERROR 0 #define GUI_VNC_ERROR_MISC 1 #define GUI_VNC_ERROR_WRONGFORMAT 2 #define GUI_DES_ENCRYPT 0 #define GUI_DES_DECRYPT 1 // // File transfer // #define GUI_VNC_SUPPORT_FILETRANSFER 0x10 // // Extension message (used for file transfer) // #define RFB_EXTENSION 0xFCul // // File transfer protocol // #define RFBX_FILE_LIST_REQUEST (0x000102ul | (RFB_EXTENSION << 24)) #define RFBX_FILE_LIST_REPLY (0x000103ul | (RFB_EXTENSION << 24)) #define RFBX_UPLOAD_START_REQUEST (0x000106ul | (RFB_EXTENSION << 24)) #define RFBX_UPLOAD_START_REPLY (0x000107ul | (RFB_EXTENSION << 24)) #define RFBX_UPLOAD_DATA_REQUEST (0x000108ul | (RFB_EXTENSION << 24)) #define RFBX_UPLOAD_DATA_REPLY (0x000109ul | (RFB_EXTENSION << 24)) #define RFBX_UPLOAD_END_REQUEST (0x00010Aul | (RFB_EXTENSION << 24)) #define RFBX_UPLOAD_END_REPLY (0x00010Bul | (RFB_EXTENSION << 24)) #define RFBX_DOWNLOAD_START_REQUEST (0x00010Cul | (RFB_EXTENSION << 24)) #define RFBX_DOWNLOAD_START_REPLY (0x00010Dul | (RFB_EXTENSION << 24)) #define RFBX_DOWNLOAD_DATA_REQUEST (0x00010Eul | (RFB_EXTENSION << 24)) #define RFBX_DOWNLOAD_DATA_REPLY (0x00010Ful | (RFB_EXTENSION << 24)) #define RFBX_DOWNLOAD_END_REPLY (0x000110ul | (RFB_EXTENSION << 24)) #define RFBX_MKDIR_REQUEST (0x000111ul | (RFB_EXTENSION << 24)) #define RFBX_MKDIR_REPLY (0x000112ul | (RFB_EXTENSION << 24)) #define RFBX_REMOVE_REQUEST (0x000113ul | (RFB_EXTENSION << 24)) #define RFBX_REMOVE_REPLY (0x000114ul | (RFB_EXTENSION << 24)) #define RFBX_RENAME_REQUEST (0x000115ul | (RFB_EXTENSION << 24)) #define RFBX_RENAME_REPLY (0x000116ul | (RFB_EXTENSION << 24)) 26 defines /********************************************************************* * * Types * ********************************************************************** *//* ... */ typedef struct { U8 * pBuffer; int BufferSize; int NumBytesInBuffer; ...} BUFFER_CB; typedef struct GUI_VNC_CONTEXT { GUI_DEVICE * pDevice; struct GUI_VNC_CONTEXT * pNext; int LayerIndex; int BytesPerPixel; int BitsPerPixel; // Note, that from within the VNC server the function LCD_GetBitsBerPixel() can not be used because the VNC server runs in a separate thread and the device chain can change during the function call // // Connection related data // GUI_tSend pfSend; GUI_tRecv pfReceive; void * pConnectInfo; U16 ServerIndex; // // Display related info // int x0Dirty, y0Dirty, x1Dirty, y1Dirty; int xSize, ySize; int xOrg, yOrg, xOrgNew, yOrgNew; // // Status // char ClientSupportsHextile; char IsBigEndian; char OrgLock; char BkFlag; // // Pointer to buffer // U8 * pBuffer; unsigned SizeOfBuffer; int (* pfStoreU8) (struct GUI_VNC_CONTEXT * pContext, BUFFER_CB * pBCB, U8 Data); int (* pfStoreU16) (struct GUI_VNC_CONTEXT * pContext, BUFFER_CB * pBCB, U16 Data); int (* pfStoreU32) (struct GUI_VNC_CONTEXT * pContext, BUFFER_CB * pBCB, U32 Data); int (* pfStoreData)(struct GUI_VNC_CONTEXT * pContext, BUFFER_CB * pBCB, const U8 * pData, int NumBytes); int (* pfFlush) (struct GUI_VNC_CONTEXT * pContext, BUFFER_CB * pBCB); int (* pfRead) (struct GUI_VNC_CONTEXT * pContext, U8 *, int Len); ...} GUI_VNC_CONTEXT; typedef struct { void (* pfGetChallenge)(U8 * pChallenge); void (* pfGetResponse )(U8 * pResponse ); ...} GUI_VNC_AUTHENTICATION; /********************************************************************* * * Private Functions * ********************************************************************** *//* ... */ void GUI_VNC_SetDESKey(U8 * pKey, int Mode); void GUI_VNC_DoDES (U8 * pInblock, U8 * pOutblock); /********************************************************************* * * Public Functions * ********************************************************************** *//* ... */ void GUI_VNC_AttachToLayer (GUI_VNC_CONTEXT * pContext, int LayerIndex); void GUI_VNC_EnableKeyboardInput(int OnOff); void GUI_VNC_EnableMouseInput (int OnOff); void GUI_VNC_EnableFileTransfer (unsigned OnOff); int GUI_VNC_GetNumConnections (void); int GUI_VNC_Process (GUI_VNC_CONTEXT * pContext, GUI_tSend pfSend, GUI_tRecv pfReceive, void * pConnectInfo); void GUI_VNC_RingBell (void); void GUI_VNC_SetAuthentication (GUI_VNC_AUTHENTICATION * pAuthentication); void GUI_VNC_SetPassword (U8 * sPassword); void GUI_VNC_SetProgName (const char * sProgName); void GUI_VNC_SetSize (unsigned xSize, unsigned ySize); void GUI_VNC_SetLockFrame (unsigned OnOff); void GUI_VNC_SetRetryCount (unsigned Cnt); void GUI_VNC_SetFS_API (const IP_FS_API * pFS_API); // // Private function for setting file transfer handler // void GUI_VNC__SetRFBExtensionHandler(int (* pFunc)(U32, GUI_VNC_CONTEXT *, BUFFER_CB *)); // // External routine to link the server to the system ... USER defined ! // int GUI_VNC_X_StartServer (int LayerIndex, int ServerIndex); int GUI_VNC_X_StartServerFT(int LayerIndex, int ServerIndex); void GUI_VNC_X_getpeername (U32 * Addr); #if defined(__cplusplus) }extern "C" { ... } #endif /* ... */ #endif /* Avoid multiple inclusion */ /*************************** End of file ****************************/