#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#

menuconfig VNCSERVER
	bool "VNC server"
	default n
	depends on NET_TCP && !NX_LCDDRIVER && EXPERIMENTAL
	select NET_TCP_READAHEAD
	select NX_UPDATE
	---help---
		Enable support for a VNC Remote Frame Buffer (RFB) server.

if VNCSERVER

choice
	prompt "VNC server protocol"
	default VNCSERVER_PROTO3p3

config VNCSERVER_PROTO3p3
	bool "Version 3.3"

config VNCSERVER_PROTO3p8
	bool "Version 3.8"
	depends on EXPERIMENTAL

endchoice # VNC server protocol

config VNCSERVER_NDISPLAYS
	int "Number of displays"
	default 1
	range 1 99
	---help---
		Specifies the number of RFB displays supported by the server.
		Normally this should be one.

config VNCSERVER_PRIO
	int "VNC server task priority"
	default 100

config VNCSERVER_STACKSIZE
	int "VNC server stack size"
	default 2048

config VNCSERVER_UPDATER_PRIO
	int "VNC updater thread priority"
	default 100

config VNCSERVER_UPDATER_STACKSIZE
	int "VNC updater thread stack size"
	default 2048

choice
	prompt "VNC color format"
	default VNCSERVER_COLORFMT_RGB16

config VNCSERVER_COLORFMT_RGB16
	bool "RGB16 5:6:5"

config VNCSERVER_COLORFMT_RGB32
	bool "RGB24 (32-bit) or RGB32 (w/tranparency)"

endchoice # VNC color format

config VNCSERVER_SCREENWIDTH
	int "Framebuffer width (pixels)"
	default 320

config VNCSERVER_SCREENHEIGHT
	int "Framebuffer height (rows)"
	default 240

config VNCSERVER_NUPDATES
	int "Number of pre-allocate update structures"
	default 48
	---help---
		This setting provides the number of pre-allocated update structures
		that will be used.  Dynamic memory allocations are never made.  In
		the likely event that we run out of update structures, the graphics
		subsystem will pause and wait for the next structures to be released.

		Overhead is 12-bytes per update structure.

config VNCSERVER_UPDATE_BUFSIZE
	int "Max update buffer size (bytes)"
	default 4096
	---help---
		A single buffer is pre-allocated for rendering updates.  This
		setting specifies the maximum in bytes of that update buffer.  For
		example, an update buffers of 32 pixels at 32-bits per pixel and
		32-rows would yield a buffer size of 4096.

config VNCSERVER_KBDENCODE
	bool "Encode keyboard input"
	default n
	depends on NXTERM_NXKBDIN
	---help---
		Use a special encoding of keyboard characters as defined in
		include/nuttx/input/kbd_coded.h.

config VNCSERVER_INBUFFER_SIZE
	int "Input buffer size
	default 80

endif # VNCSERVER
