From 273dd9dd3f5e60f7c761ca97db27c0e29e17c8c5 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 14 Oct 2017 10:55:12 -0600 Subject: [PATCH] examples/nx: The NX example no longer supports single user mode. --- examples/README.txt | 14 +--- examples/nx/Kconfig | 23 +----- examples/nx/nx_events.c | 2 - examples/nx/nx_internal.h | 60 +++++++------- examples/nx/nx_main.c | 163 +++----------------------------------- 5 files changed, 48 insertions(+), 214 deletions(-) diff --git a/examples/README.txt b/examples/README.txt index 005612af2..26c202504 100644 --- a/examples/README.txt +++ b/examples/README.txt @@ -1072,10 +1072,6 @@ examples/nx CONFIG_NSH_BUILTIN_APPS -- Build the NX example as a "built-in" that can be executed from the NSH command line - CONFIG_EXAMPLES_NX_VPLANE -- The plane to select from the frame- - buffer driver for use in the test. Default: 0 - CONFIG_EXAMPLES_NX_DEVNO - The LCD device to select from the LCD - driver for use in the test: Default: 0 CONFIG_EXAMPLES_NX_BGCOLOR -- The color of the background. Default depends on CONFIG_EXAMPLES_NX_BPP. CONFIG_EXAMPLES_NX_COLOR1 -- The color of window 1. Default depends on @@ -1108,10 +1104,8 @@ examples/nx CONFIG_BOARDCTL_GRAPHICS=y so that the boardctl() interface will be available in order to access this function. - This test can be performed with either the single-user version of - NX or with the multiple user version of NX selected with CONFIG_NX_MULTIUSER. - If CONFIG_NX_MULTIUSER is defined, then the following configuration - options also apply: + This test requires the multiple user vrsion of NX selected with + CONFIG_NX_MULTIUSER. Then the following configuration options also apply: CONFIG_EXAMPLES_NX_STACKSIZE -- The stacksize to use when creating the NX server. Default 2048 @@ -1122,8 +1116,8 @@ examples/nx CONFIG_EXAMPLES_NX_NOTIFYSIGNO -- The signal number to use with nx_eventnotify(). Default: 4 - If CONFIG_NX_MULTIUSER is defined, then the example also expects the - following settings and will generate an error if they are not as expected: + The example also has the following settings and will generate an error + if they are not as expected: CONFIG_DISABLE_MQUEUE=n CONFIG_DISABLE_SIGNALS=n diff --git a/examples/nx/Kconfig b/examples/nx/Kconfig index f2c7f8b43..9aa43f548 100644 --- a/examples/nx/Kconfig +++ b/examples/nx/Kconfig @@ -6,27 +6,12 @@ config EXAMPLES_NX bool "NX graphics example" default n + depends on NX_MULTIUSER ---help--- Enable the NX graphics example if EXAMPLES_NX -config EXAMPLES_NX_VPLANE - int "Video Plane" - default 0 - depends on !NX_MULTIUSER - ---help--- - The plane to select from the framebuffer driver for use in the test. - Default: 0 - -config EXAMPLES_NX_DEVNO - int "Video Device Number" - default 0 - depends on !NX_MULTIUSER - ---help--- - The LCD device to select from the LCD driver for use in the test: - Default: 0 - config EXAMPLES_NX_DEFAULT_COLORS bool "Use Default Colors" default y @@ -96,7 +81,7 @@ config EXAMPLES_NX_EXTERNINIT default n depends on LIB_BOARDCTL select BOARDCTL_GRAPHICS - select NXSTART_EXTERNINIT if NX_MULTIUSER + select NXSTART_EXTERNINIT ---help--- The driver for the graphics device on this platform requires some unusual initialization. This is the for, for example, SPI LCD/OLED @@ -113,8 +98,7 @@ config EXAMPLES_NX_EXTERNINIT CONFIG_BOARDCTL_GRAPHICS=y so that the boardctl() interface will be available in order to access this function. -if NX_MULTIUSER -comment "Multi-User Configuration Options" +comment "NX Server Options" config EXAMPLES_NX_STACKSIZE int "NX Server Stack Size" @@ -147,4 +131,3 @@ config EXAMPLES_NX_NOTIFYSIGNO The signal number to use with nx_eventnotify(). Default: 4 endif -endif diff --git a/examples/nx/nx_events.c b/examples/nx/nx_events.c index fb389003a..4d2a3ee45 100644 --- a/examples/nx/nx_events.c +++ b/examples/nx/nx_events.c @@ -296,7 +296,6 @@ static void nxeg_tbmousein(NXEGWINDOW hwnd, FAR const struct nxgl_point_s *pos, * Name: nx_listenerthread ****************************************************************************/ -#ifdef CONFIG_NX_MULTIUSER FAR void *nx_listenerthread(FAR void *arg) { int ret; @@ -334,4 +333,3 @@ FAR void *nx_listenerthread(FAR void *arg) } } } -#endif diff --git a/examples/nx/nx_internal.h b/examples/nx/nx_internal.h index 5d8a2a155..f20d69f71 100644 --- a/examples/nx/nx_internal.h +++ b/examples/nx/nx_internal.h @@ -126,34 +126,34 @@ # define CONFIG_EXAMPLES_NX_TOOLBAR_HEIGHT 16 #endif -#ifdef CONFIG_NX_MULTIUSER -# ifdef CONFIG_DISABLE_MQUEUE -# error "The multi-threaded example requires MQ support (CONFIG_DISABLE_MQUEUE=n)" -# endif -# ifdef CONFIG_DISABLE_SIGNALS -# error "This example requires signal support (CONFIG_DISABLE_SIGNALS=n)" -# endif -# ifdef CONFIG_DISABLE_PTHREAD -# error "This example requires pthread support (CONFIG_DISABLE_PTHREAD=n)" -# endif -# ifndef CONFIG_NX_BLOCKING -# error "This example depends on CONFIG_NX_BLOCKING" -# endif -# ifndef CONFIG_EXAMPLES_NX_STACKSIZE -# define CONFIG_EXAMPLES_NX_STACKSIZE 2048 -# endif -# ifndef CONFIG_EXAMPLES_NX_LISTENERPRIO -# define CONFIG_EXAMPLES_NX_LISTENERPRIO 100 -# endif -# ifndef CONFIG_EXAMPLES_NX_CLIENTPRIO -# define CONFIG_EXAMPLES_NX_CLIENTPRIO 100 -# endif -# ifndef CONFIG_EXAMPLES_NX_SERVERPRIO -# define CONFIG_EXAMPLES_NX_SERVERPRIO 120 -# endif -# ifndef CONFIG_EXAMPLES_NX_NOTIFYSIGNO -# define CONFIG_EXAMPLES_NX_NOTIFYSIGNO 4 -# endif +/* NX Server Options */ + +#ifdef CONFIG_DISABLE_MQUEUE +# error "The multi-threaded example requires MQ support (CONFIG_DISABLE_MQUEUE=n)" +#endif +#ifdef CONFIG_DISABLE_SIGNALS +# error "This example requires signal support (CONFIG_DISABLE_SIGNALS=n)" +#endif +#ifdef CONFIG_DISABLE_PTHREAD +# error "This example requires pthread support (CONFIG_DISABLE_PTHREAD=n)" +#endif +#ifndef CONFIG_NX_BLOCKING +# error "This example depends on CONFIG_NX_BLOCKING" +#endif +#ifndef CONFIG_EXAMPLES_NX_STACKSIZE +# define CONFIG_EXAMPLES_NX_STACKSIZE 2048 +#endif +#ifndef CONFIG_EXAMPLES_NX_LISTENERPRIO +# define CONFIG_EXAMPLES_NX_LISTENERPRIO 100 +#endif +#ifndef CONFIG_EXAMPLES_NX_CLIENTPRIO +# define CONFIG_EXAMPLES_NX_CLIENTPRIO 100 +#endif +#ifndef CONFIG_EXAMPLES_NX_SERVERPRIO +# define CONFIG_EXAMPLES_NX_SERVERPRIO 120 +#endif +#ifndef CONFIG_EXAMPLES_NX_NOTIFYSIGNO +# define CONFIG_EXAMPLES_NX_NOTIFYSIGNO 4 #endif #ifdef CONFIG_EXAMPLES_NX_RAWWINDOWS @@ -259,9 +259,7 @@ extern nxgl_coord_t g_xres; extern nxgl_coord_t g_yres; extern bool b_haveresolution; -#ifdef CONFIG_NX_MULTIUSER extern bool g_connected; -#endif extern sem_t g_semevent; /* Colors used to fill window 1 & 2 */ @@ -276,9 +274,7 @@ extern nxgl_mxpixel_t g_tbcolor[CONFIG_NX_NPLANES]; * Public Function Prototypes ****************************************************************************/ -#if defined(CONFIG_NX) && defined(CONFIG_NX_MULTIUSER) FAR void *nx_listenerthread(FAR void *arg); -#endif #ifdef CONFIG_NX_KBD void nxeg_kbdin(NXWINDOW hwnd, uint8_t nch, const uint8_t *ch, FAR void *arg); diff --git a/examples/nx/nx_main.c b/examples/nx/nx_main.c index 0f569f54d..25381310d 100644 --- a/examples/nx/nx_main.c +++ b/examples/nx/nx_main.c @@ -119,9 +119,7 @@ nxgl_coord_t g_xres; nxgl_coord_t g_yres; bool b_haveresolution = false; -#ifdef CONFIG_NX_MULTIUSER bool g_connected = false; -#endif sem_t g_semevent = {0}; /* Colors used to fill window 1 & 2 */ @@ -412,129 +410,27 @@ static inline int nxeg_raise(NXEGWINDOW hwnd) } #endif -/**************************************************************************** - * Name: nxeg_suinitialize - ****************************************************************************/ - -#ifndef CONFIG_NX_MULTIUSER -static inline int nxeg_suinitialize(void) -{ - FAR NX_DRIVERTYPE *dev; - int ret; - -#if defined(CONFIG_EXAMPLES_NX_EXTERNINIT) - struct boardioc_graphics_s devinfo; - - /* Use external graphics driver initialization */ - - printf("nxeg_initialize: Initializing external graphics device\n"); - - devinfo.devno = CONFIG_EXAMPLES_NX_DEVNO; - devinfo.dev = NULL; - - ret = boardctl(BOARDIOC_GRAPHICS_SETUP, (uintptr_t)&devinfo); - if (ret < 0) - { - printf("nxeg_initialize: boardctl failed, devno=%d: %d\n", - CONFIG_EXAMPLES_NX_DEVNO, errno); - g_exitcode = NXEXIT_EXTINITIALIZE; - return ERROR; - } - - dev = devinfo.dev; - -#elif defined(CONFIG_NX_LCDDRIVER) - /* Initialize the LCD device */ - - printf("nxeg_initialize: Initializing LCD\n"); - ret = board_lcd_initialize(); - if (ret < 0) - { - printf("nxeg_initialize: board_lcd_initialize failed: %d\n", -ret); - g_exitcode = NXEXIT_LCDINITIALIZE; - return ERROR; - } - - /* Get the device instance */ - - dev = board_lcd_getdev(CONFIG_EXAMPLES_NX_DEVNO); - if (!dev) - { - printf("nxeg_initialize: board_lcd_getdev failed, devno=%d\n", - CONFIG_EXAMPLES_NX_DEVNO); - g_exitcode = NXEXIT_LCDGETDEV; - return ERROR; - } - - /* Turn the LCD on at 75% power */ - - (void)dev->setpower(dev, ((3*CONFIG_LCD_MAXPOWER + 3)/4)); - -#else - /* Initialize the frame buffer device */ - - printf("nxeg_initialize: Initializing framebuffer\n"); - - ret = up_fbinitialize(0); - if (ret < 0) - { - printf("nxeg_initialize: up_fbinitialize failed: %d\n", -ret); - - g_exitcode = NXEXIT_FBINITIALIZE; - return ERROR; - } - - dev = up_fbgetvplane(0, CONFIG_EXAMPLES_NX_VPLANE); - if (!dev) - { - printf("nxeg_initialize: up_fbgetvplane failed, vplane=%d\n", - CONFIG_EXAMPLES_NX_VPLANE); - - g_exitcode = NXEXIT_FBGETVPLANE; - return ERROR; - } -#endif - - /* Then open NX */ - - printf("nxeg_initialize: Open NX\n"); - - g_hnx = nx_open(dev); - if (!g_hnx) - { - printf("nxeg_suinitialize: nx_open failed: %d\n", errno); - - g_exitcode = NXEXIT_NXOPEN; - return ERROR; - } - -#ifdef CONFIG_VNCSERVER - /* Setup the VNC server to support keyboard/mouse inputs */ - - ret = vnc_default_fbinitialize(0, g_hnx); - if (ret < 0) - { - printf("vnc_default_fbinitialize failed: %d\n", ret); - nx_close(g_hnx); - g_exitcode = NXEXIT_FBINITIALIZE; - return ERROR; - } -#endif - - return OK; -} -#endif - /**************************************************************************** * Name: nxeg_initialize ****************************************************************************/ -#ifdef CONFIG_NX_MULTIUSER -static inline int nxeg_muinitialize(void) +static int nxeg_initialize(void) { struct sched_param param; pthread_t thread; int ret; + int i; + + /* Initialize window colors */ + + for (i = 0; i < CONFIG_NX_NPLANES; i++) + { + g_color1[i] = CONFIG_EXAMPLES_NX_COLOR1; + g_color2[i] = CONFIG_EXAMPLES_NX_COLOR2; +#ifndef CONFIG_EXAMPLES_NX_RAWWINDOWS + g_tbcolor[i] = CONFIG_EXAMPLES_NX_TBCOLOR; +#endif + } /* Set the client task priority */ @@ -614,33 +510,6 @@ static inline int nxeg_muinitialize(void) return OK; } -#endif - -/**************************************************************************** - * Name: nxeg_initialize - ****************************************************************************/ - -static int nxeg_initialize(void) -{ - int i; - - /* Initialize window colors */ - - for (i = 0; i < CONFIG_NX_NPLANES; i++) - { - g_color1[i] = CONFIG_EXAMPLES_NX_COLOR1; - g_color2[i] = CONFIG_EXAMPLES_NX_COLOR2; -#ifndef CONFIG_EXAMPLES_NX_RAWWINDOWS - g_tbcolor[i] = CONFIG_EXAMPLES_NX_TBCOLOR; -#endif - } - -#ifdef CONFIG_NX_MULTIUSER - return nxeg_muinitialize(); -#else - return nxeg_suinitialize(); -#endif -} /**************************************************************************** * Public Functions @@ -921,17 +790,11 @@ errout_with_hwnd1: (void)nxeg_closewindow(hwnd1, &g_wstate[0]); errout_with_nx: -#ifdef CONFIG_NX_MULTIUSER /* Disconnect from the server */ printf("nx_main: Disconnect from the server\n"); nx_disconnect(g_hnx); -#else - /* Close the window */ - printf("nx_main: Close NX\n"); - nx_close(g_hnx); -#endif errout: return g_exitcode; }