Skip to content

Commit ee2f135

Browse files
committed
working on the vnc driver
1 parent 4b5e280 commit ee2f135

File tree

7 files changed

+527
-1171
lines changed

7 files changed

+527
-1171
lines changed

ext_mod/lcd_bus/micropython.cmake

Lines changed: 72 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,12 @@ if(ESP_PLATFORM)
1111
get_filename_component(BINDING_DIR ${CMAKE_CURRENT_LIST_DIR}/../.. ABSOLUTE)
1212
set(LIBVNC_DIR ${BINDING_DIR}/lib/libvncserver
1313
set(LIBVNCSERVER_DIR ${LIBVNC_DIR}/src/libvncserver)
14-
14+
set(LIBVNCCLIENT_DIR ${LIBVNC_DIR}/src/libvncclient)
1515
set(LIBVNCCOMMON_DIR ${LIBVNC_DIR}/src/common)
16+
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${LIBVNC_DIR}/cmake/Modules/")
17+
18+
set(FREERTOS_POSIX_DIR ${BINDING_DIR}/lib/Lab-Project-FreeRTOS-POSIX)
19+
set(LWIP_DIR ${BINDING_DIR}/lib/micropythob/lib/lwip)
1620

1721
include(CheckFunctionExists)
1822
include(CheckSymbolExists)
@@ -26,10 +30,18 @@ if(ESP_PLATFORM)
2630
set(LCD_INCLUDES
2731
${CMAKE_CURRENT_LIST_DIR}
2832
${CMAKE_CURRENT_LIST_DIR}/esp32_include
33+
${CMAKE_CURRENT_LIST_DIR}/rfb_bus
2934
${LIBVNC_DIR}/include
3035
${CMAKE_CURRENT_BINARY_DIR}/include
3136
${LIBVNCSERVER_DIR}
37+
${LIBVNCCLIENT_DIR}
3238
${LIBVNCCOMMON_DIR}
39+
${FREERTOS_POSIX_DIR}/include
40+
${FREERTOS_POSIX_DIR}/include/FreeRTOS_POSIX
41+
${FREERTOS_POSIX_DIR}/FreeRTOS-Plus-POSIX/include
42+
${FREERTOS_POSIX_DIR}/FreeRTOS-Plus-POSIX/include/portable/espressif/esp32_devkitc_esp_wrover_kit
43+
${LWIP_DIR}/src/include/lwip
44+
${LWIP_DIR}/src/compat/posix
3345
)
3446

3547
set(LCD_SOURCES
@@ -39,6 +51,10 @@ if(ESP_PLATFORM)
3951
${CMAKE_CURRENT_LIST_DIR}/esp32_src/spi_bus.c
4052
${CMAKE_CURRENT_LIST_DIR}/esp32_src/i80_bus.c
4153
${CMAKE_CURRENT_LIST_DIR}/esp32_src/rgb_bus.c
54+
#
55+
${CMAKE_CURRENT_LIST_DIR}/rfb_bus/rfb_bus.c
56+
${CMAKE_CURRENT_LIST_DIR}/rfb_bus/rfb_keysym.c
57+
#
4258
${LIBVNCSERVER_DIR}/main.c
4359
${LIBVNCSERVER_DIR}/rfbserver.c
4460
${LIBVNCSERVER_DIR}/rfbregion.c
@@ -55,33 +71,61 @@ if(ESP_PLATFORM)
5571
${LIBVNCSERVER_DIR}/font.c
5672
${LIBVNCSERVER_DIR}/draw.c
5773
${LIBVNCSERVER_DIR}/selbox.c
58-
${LIBVNCCOMMON_DIR}/vncauth.c
59-
${LIBVNCCOMMON_DIR}/sockets.c
6074
${LIBVNCSERVER_DIR}/cargs.c
6175
${LIBVNCSERVER_DIR}/ultra.c
6276
${LIBVNCSERVER_DIR}/scale.c
77+
#
78+
${LIBVNCCLIENT_DIR}/cursor.c
79+
${LIBVNCCLIENT_DIR}/listen.c
80+
${LIBVNCCLIENT_DIR}/rfbclient.c
81+
${LIBVNCCLIENT_DIR}/sockets.c
82+
${LIBVNCCLIENT_DIR}/vncviewer.c
83+
#
84+
${LIBVNCCOMMON_DIR}/vncauth.c
85+
${LIBVNCCOMMON_DIR}/sockets.c
86+
${LIBVNCCOMMON_DIR}/sockets.c
87+
#
88+
${FREERTOS_POSIX_DIR}/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_clock.c
89+
${FREERTOS_POSIX_DIR}/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_mqueue.c
90+
${FREERTOS_POSIX_DIR}/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_pthread.c
91+
${FREERTOS_POSIX_DIR}/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_pthread_barrier.c
92+
${FREERTOS_POSIX_DIR}/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_pthread_cond.c
93+
${FREERTOS_POSIX_DIR}/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_pthread_mutex.c
94+
${FREERTOS_POSIX_DIR}/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_sched.c
95+
${FREERTOS_POSIX_DIR}/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_semaphore.c
96+
${FREERTOS_POSIX_DIR}/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_timer.c
97+
${FREERTOS_POSIX_DIR}/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_unistd.c
98+
${FREERTOS_POSIX_DIR}/FreeRTOS-Plus-POSIX/source/FreeRTOS_POSIX_utils.c
6399
)
64100

65-
check_include_file("dirent.h" LIBVNCSERVER_HAVE_DIRENT_H)
66-
check_include_file("endian.h" LIBVNCSERVER_HAVE_ENDIAN_H)
67-
check_include_file("fcntl.h" LIBVNCSERVER_HAVE_FCNTL_H)
68-
check_include_file("netinet/in.h" LIBVNCSERVER_HAVE_NETINET_IN_H)
69-
check_include_file("sys/endian.h" LIBVNCSERVER_HAVE_SYS_ENDIAN_H)
70-
check_include_file("sys/socket.h" LIBVNCSERVER_HAVE_SYS_SOCKET_H)
71-
check_include_file("sys/stat.h" LIBVNCSERVER_HAVE_SYS_STAT_H)
72-
check_include_file("sys/time.h" LIBVNCSERVER_HAVE_SYS_TIME_H)
73-
check_include_file("sys/types.h" LIBVNCSERVER_HAVE_SYS_TYPES_H)
74-
check_include_file("sys/wait.h" LIBVNCSERVER_HAVE_SYS_WAIT_H)
75-
check_include_file("unistd.h" LIBVNCSERVER_HAVE_UNISTD_H)
76-
check_include_file("sys/resource.h" LIBVNCSERVER_HAVE_SYS_RESOURCE_H)
77101

102+
check_include_file("dirent.h" LIBVNCSERVER_HAVE_DIRENT_H)
103+
check_include_file("endian.h" LIBVNCSERVER_HAVE_ENDIAN_H)
104+
check_include_file("fcntl.h" LIBVNCSERVER_HAVE_FCNTL_H)
105+
check_include_file("netinet/in.h" LIBVNCSERVER_HAVE_NETINET_IN_H)
106+
check_include_file("sys/endian.h" LIBVNCSERVER_HAVE_SYS_ENDIAN_H)
107+
check_include_file("sys/socket.h" LIBVNCSERVER_HAVE_SYS_SOCKET_H)
108+
check_include_file("sys/stat.h" LIBVNCSERVER_HAVE_SYS_STAT_H)
109+
check_include_file("sys/time.h" LIBVNCSERVER_HAVE_SYS_TIME_H)
110+
check_include_file("sys/types.h" LIBVNCSERVER_HAVE_SYS_TYPES_H)
111+
check_include_file("sys/wait.h" LIBVNCSERVER_HAVE_SYS_WAIT_H)
112+
check_include_file("unistd.h" LIBVNCSERVER_HAVE_UNISTD_H)
113+
check_include_file("sys/resource.h" LIBVNCSERVER_HAVE_SYS_RESOURCE_H)
114+
115+
116+
# headers needed for check_type_size()
78117
check_include_file("vfork.h" LIBVNCSERVER_HAVE_VFORK_H)
79118
check_include_file("ws2tcpip.h" LIBVNCSERVER_HAVE_WS2TCPIP_H)
80119
check_include_file("arpa/inet.h" HAVE_ARPA_INET_H)
81120
check_include_file("stdint.h" HAVE_STDINT_H)
82121
check_include_file("stddef.h" HAVE_STDDEF_H)
83122
check_include_file("sys/types.h" HAVE_SYS_TYPES_H)
84123

124+
# error out if required headers not found
125+
if(NOT HAVE_STDINT_H)
126+
message(FATAL_ERROR "Could NOT find required header stdint.h")
127+
endif()
128+
85129
check_function_exists(gettimeofday LIBVNCSERVER_HAVE_GETTIMEOFDAY)
86130
check_function_exists(vfork LIBVNCSERVER_HAVE_VFORK)
87131
check_function_exists(vprintf LIBVNCSERVER_HAVE_VPRINTF)
@@ -102,23 +146,29 @@ if(ESP_PLATFORM)
102146
check_function_exists(strerror LIBVNCSERVER_HAVE_STRERROR)
103147
check_function_exists(strstr LIBVNCSERVER_HAVE_STRSTR)
104148

105-
check_type_size(pid_t LIBVNCSERVER_PID_T)
106-
check_type_size(size_t LIBVNCSERVER_SIZE_T)
107-
check_type_size(socklen_t LIBVNCSERVER_SOCKLEN_T)
108-
check_type_size(in_addr_t LIBVNCSERVER_IN_ADDR_T)
109-
110149
check_symbol_exists(htobe64 "endian.h" LIBVNCSERVER_HAVE_HTOBE64)
111150
check_symbol_exists(htobe64 "sys/endian.h" LIBVNCSERVER_HAVE_HTOBE64)
112151
check_symbol_exists(OSSwapHostToBigInt64 "libkern/OSByteOrder.h" LIBVNCSERVER_HAVE_OSSWAPHOSTTOBIGINT64)
113152

153+
if(LIBVNCSERVER_HAVE_SYS_SOCKET_H)
154+
# socklen_t
155+
list(APPEND CMAKE_EXTRA_INCLUDE_FILES "sys/socket.h")
156+
endif(LIBVNCSERVER_HAVE_SYS_SOCKET_H)
114157
if(HAVE_ARPA_INET_H)
115158
# in_addr_t
116159
list(APPEND CMAKE_EXTRA_INCLUDE_FILES "arpa/inet.h")
117160
endif(HAVE_ARPA_INET_H)
118161

119-
set(LIBVNCSERVER_NEED_INADDR_T 1)
162+
check_type_size(pid_t LIBVNCSERVER_PID_T)
163+
check_type_size(size_t LIBVNCSERVER_SIZE_T)
164+
check_type_size(socklen_t LIBVNCSERVER_SOCKLEN_T)
165+
check_type_size(in_addr_t LIBVNCSERVER_IN_ADDR_T)
166+
167+
if(NOT HAVE_LIBVNCSERVER_IN_ADDR_T)
168+
set(LIBVNCSERVER_NEED_INADDR_T 1)
169+
endif(NOT HAVE_LIBVNCSERVER_IN_ADDR_T)
120170

121-
TEST_BIG_ENDIAN(LIBVNCSERVER_WORDS_BIGENDIAN)
171+
TEST_BIG_ENDIAN(LIBVNCSERVER_WORDS_BIGENDIAN)
122172

123173
configure_file(${LIBVNC_DIR}/include/rfb/rfbconfig.h.cmakein ${CMAKE_CURRENT_BINARY_DIR}/include/rfb/rfbconfig.h)
124174

ext_mod/lcd_bus/vnc/vnc_bus.c renamed to ext_mod/lcd_bus/rfb_bus/rfb_bus.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,10 @@
33
* and that license is able to be viewed in the LICENSE file in the root
44
* of this project.
55
*/
6+
7+
8+
#include "rfb_bus.h"
9+
#include "rfb_keysym.h"
10+
#include "FreeRTOS_POSIX.h"
11+
#include "rfb/rfb.h"
12+

ext_mod/lcd_bus/rfb_bus/rfb_bus.h

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
/* Copyright (C) 2024 Kevin G Schlosser
2+
* Code that is written by thE above named is done under the GPL license
3+
* and that license is able to be viewed in the LICENSE file in the root
4+
* of this project.
5+
*/
6+
7+
8+
// https://githuB.Com/FrEERTOS/LAB-ProjECt-FrEERTOS-POSIX
9+
// https://githuB.Com/LiBVNC/liBvnCsErvEr
10+
11+
#ifndef __RFB_BUS_H__
12+
#define __RFB_BUS_H__
13+
14+
#include "rfb_keysym.h"
15+
16+
17+
18+
#endif /* __RFB_BUS_H__ */

0 commit comments

Comments
 (0)