From f4298e0aa867f79829a7ca0c630a4f32c10b8023 Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sat, 14 Oct 2017 10:13:34 -0600 Subject: [PATCH] Remove all support for single user mode. --- Kconfig | 29 +---- libnxwidgets/include/ccallback.hxx | 2 - libnxwidgets/include/cnxserver.hxx | 8 -- libnxwidgets/include/cwidgetcontrol.hxx | 16 --- libnxwidgets/include/nxconfig.hxx | 30 +----- libnxwidgets/src/ccallback.cxx | 2 - libnxwidgets/src/cnxserver.cxx | 137 +----------------------- libnxwidgets/src/cwidgetcontrol.cxx | 6 -- 8 files changed, 13 insertions(+), 217 deletions(-) diff --git a/Kconfig b/Kconfig index 68ba99a5d..886830ce9 100644 --- a/Kconfig +++ b/Kconfig @@ -8,7 +8,7 @@ menu "NxWidgets/NxWM" config NXWIDGETS bool "Enable NxWidgets" default n - depends on NX && HAVE_CXX + depends on NX && HAVE_CXX && NX_MULTIUSER ---help--- Enable support for NxWidgets @@ -36,23 +36,6 @@ config NXWIDGETS_EXTERNINIT ---help--- Define to support external display initialization. -config NXWIDGETS_DEVNO - int "LCD Device Number" - default 0 - depends on (NXWIDGETS_EXTERNINIT || NX_LCDDRIVER) && !NX_MULTIUSER - ---help--- - LCD device number (in case there are more than one LCDs connected). - Default: 0 - -config NXWIDGETS_VPLANE - int "Plane Number" - default 0 - depends on !NX_LCDDRIVER && !NXWIDGETS_EXTERNINIT && !NX_MULTIUSER - ---help--- - Only a single video plane is supported. Default: 0 - -if NX_MULTIUSER - config NXWIDGET_SERVERINIT bool "Start server" default y @@ -70,15 +53,13 @@ config NXWIDGETS_CLIENTPRIO default 100 ---help--- The thread that calls CNxServer::connect() will be re-prioritized to - this priority. This applies only if NX is configured in multi-user - mode (NX_MULTIUSER=y). Default: 100 + this priority. Default: 100 config NXWIDGETS_LISTENERPRIO int "NX Listener Priority" default 100 ---help--- - Priority of the NX event listener thread. This applies only if NX - is configured in multi-user mode (NX_MULTIUSER=y). Default: 100 + Priority of the NX event listener thread. Default: 100 config NXWIDGETS_LISTENERSTACK int "NX Listener Stack Size" @@ -86,8 +67,6 @@ config NXWIDGETS_LISTENERSTACK ---help--- NX listener thread stack size (in multi-user mode). Default 2048 -endif # NX_MULTIUSER - config NXWIDGET_EVENTWAIT bool "Event Waiting" default n @@ -294,7 +273,7 @@ endif # NxWidgets config NXWM bool "Enable NxWM" default n - depends on NXWIDGETS && NX_MULTIUSER + depends on NXWIDGETS ---help--- Enable support for the NuttX Tiny Window Manager (NxWM) diff --git a/libnxwidgets/include/ccallback.hxx b/libnxwidgets/include/ccallback.hxx index 9b641f8e7..28e309c9b 100644 --- a/libnxwidgets/include/ccallback.hxx +++ b/libnxwidgets/include/ccallback.hxx @@ -207,9 +207,7 @@ namespace NXWidgets * @param arg2 - User provided argument (see nx_block or nxtk_block) */ -#ifdef CONFIG_NX_MULTIUSER static void windowBlocked(NXWINDOW hwnd, FAR void *arg1, FAR void *arg2); -#endif public: diff --git a/libnxwidgets/include/cnxserver.hxx b/libnxwidgets/include/cnxserver.hxx index 3c07f24b2..251048ce9 100644 --- a/libnxwidgets/include/cnxserver.hxx +++ b/libnxwidgets/include/cnxserver.hxx @@ -82,12 +82,10 @@ namespace NXWidgets private: FAR NX_DRIVERTYPE *m_hDevice; /**< LCD/Framebuffer device handle */ NXHANDLE m_hNxServer; /**< NX server handle */ -#ifdef CONFIG_NX_MULTIUSER volatile bool m_running; /**< True: The listener thread is running */ volatile bool m_connected; /**< True: Connected to the server */ volatile bool m_stop; /**< True: Waiting for the listener thread to stop */ sem_t m_connsem; /**< Wait for server connection */ -#endif static uint8_t m_nServers; /**< The number of NX server instances */ /** @@ -95,9 +93,7 @@ namespace NXWidgets * dispatches events from the NX server. */ -#ifdef CONFIG_NX_MULTIUSER static FAR void *listener(FAR void *arg); -#endif public: @@ -147,11 +143,7 @@ namespace NXWidgets inline bool connected(void) { -#ifdef CONFIG_NX_MULTIUSER return m_connected; -#else - return true; -#endif } /** diff --git a/libnxwidgets/include/cwidgetcontrol.hxx b/libnxwidgets/include/cwidgetcontrol.hxx index 69bbd1798..c80ce068b 100644 --- a/libnxwidgets/include/cwidgetcontrol.hxx +++ b/libnxwidgets/include/cwidgetcontrol.hxx @@ -215,10 +215,8 @@ namespace NXWidgets struct nxgl_size_s m_size; /**< Size of the window */ struct nxgl_point_s m_pos; /**< Position in display space */ struct nxgl_rect_s m_bounds; /**< Size of the display */ -#ifdef CONFIG_NX_MULTIUSER sem_t m_geoSem; /**< Posted when geometry is valid */ sem_t m_boundsSem; /**< Posted when bounds are valid */ -#endif CWindowEventHandlerList m_eventHandlers; /**< List of event handlers. */ /** @@ -312,11 +310,7 @@ namespace NXWidgets * Take the geometry semaphore (handling signal interruptions) */ -#ifdef CONFIG_NX_MULTIUSER void takeGeoSem(void); -#else - inline void takeGeoSem(void) {} -#endif /** * Give the geometry semaphore @@ -324,9 +318,7 @@ namespace NXWidgets inline void giveGeoSem(void) { -#ifdef CONFIG_NX_MULTIUSER sem_post(&m_geoSem); -#endif } /** @@ -343,11 +335,7 @@ namespace NXWidgets * Take the bounds semaphore (handling signal interruptions) */ -#ifdef CONFIG_NX_MULTIUSER void takeBoundsSem(void); -#else - inline void takeBoundsSem(void) {} -#endif /** * Give the bounds semaphore @@ -355,9 +343,7 @@ namespace NXWidgets inline void giveBoundsSem(void) { -#ifdef CONFIG_NX_MULTIUSER sem_post(&m_boundsSem); -#endif } /** @@ -660,12 +646,10 @@ namespace NXWidgets * @param arg - User provided argument (see nx_block or nxtk_block) */ -#ifdef CONFIG_NX_MULTIUSER inline void windowBlocked(FAR void *arg) { m_eventHandlers.raiseBlockedEvent(arg); } -#endif /** * This event means that cursor control data is available for the window. diff --git a/libnxwidgets/include/nxconfig.hxx b/libnxwidgets/include/nxconfig.hxx index f7452f873..0836e746f 100644 --- a/libnxwidgets/include/nxconfig.hxx +++ b/libnxwidgets/include/nxconfig.hxx @@ -1,7 +1,7 @@ /**************************************************************************** * NxWidgets/libnxwidgets/include/nxconfig.hxx * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. + * Copyright (C) 2012-2017 Gregory Nutt. All rights reserved. * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without @@ -63,22 +63,16 @@ * * NX Server/Device Configuration * - * CONFIG_NXWIDGETS_DEVNO - LCD device number (in case there are more than - * one LCDs connected (single user mode only). Default: 0 - * CONFIG_NXWIDGETS_VPLANE - Only a single video plane is supported. Default: 0 - * CONFIG_NXSTART_SERVERPRIO - Priority of the NX server. This applies - * only if NX is configured in multi-user mode (CONFIG_NX_MULTIUSER=y). + * CONFIG_NXSTART_SERVERPRIO - Priority of the NX server. * Default: (SCHED_PRIORITY_DEFAULT+10). NOTE: Of the three priority * definitions here, CONFIG_NXSTART_SERVERPRIO should have the highest * priority to avoid data overrun race conditions. Such errors would most * likely appear as duplicated rows of data on the display. * CONFIG_NXWIDGETS_CLIENTPRIO - The thread that calls CNxServer::connect() - * will be re-prioritized to this priority. This applies only if NX is - * configured in multi-user mode (CONFIG_NX_MULTIUSER=y). Default: + * will be re-prioritized to this priority. Default: * SCHED_PRIORITY_DEFAULT * CONFIG_NXWIDGETS_LISTENERPRIO - Priority of the NX event listener thread. - * This applies only if NX is configured in multi-user mode - * (CONFIG_NX_MULTIUSER=y). Default: SCHED_PRIORITY_DEFAULT + * Default: SCHED_PRIORITY_DEFAULT * CONFIG_NXWIDGETS_EXTERNINIT - Define to support external display * initialization. * CONFIG_NXWIDGETS_LISTENERSTACK - NX listener thread stack size (in multi-user @@ -191,22 +185,6 @@ #endif /* NX Server/Device Configuration *******************************************/ -/** - * LCD device number (in case there are more than one LCDs connected) - */ - -#ifndef CONFIG_NXWIDGETS_DEVNO -# define CONFIG_NXWIDGETS_DEVNO 0 -#endif - -/** - * Only a single video plane is supported - */ - -#ifndef CONFIG_NXWIDGETS_VPLANE -# define CONFIG_NXWIDGETS_VPLANE 0 -#endif - /** * Priority of the NX server (in multi-user mode) */ diff --git a/libnxwidgets/src/ccallback.cxx b/libnxwidgets/src/ccallback.cxx index 4bc96dbeb..36eb2f85b 100644 --- a/libnxwidgets/src/ccallback.cxx +++ b/libnxwidgets/src/ccallback.cxx @@ -246,7 +246,6 @@ void CCallback::newKeyboardEvent(NXHANDLE hwnd, uint8_t nCh, * @param arg2 - User provided argument (see nx_block or nxtk_block) */ -#ifdef CONFIG_NX_MULTIUSER void CCallback::windowBlocked(NXWINDOW hwnd, FAR void *arg1, FAR void *arg2) { ginfo("hwnd=%p arg1=%p arg2=%p\n", hwnd, arg1, arg2); @@ -259,5 +258,4 @@ void CCallback::windowBlocked(NXWINDOW hwnd, FAR void *arg1, FAR void *arg2) This->m_widgetControl->windowBlocked(arg2); } -#endif diff --git a/libnxwidgets/src/cnxserver.cxx b/libnxwidgets/src/cnxserver.cxx index eab149f2d..3cc56e3c8 100644 --- a/libnxwidgets/src/cnxserver.cxx +++ b/libnxwidgets/src/cnxserver.cxx @@ -48,15 +48,12 @@ #include #include #include +#include +#include #include #include -#ifdef CONFIG_NX_MULTIUSER -# include -# include -#endif - #ifdef CONFIG_VNCSERVER # include #endif @@ -87,10 +84,8 @@ CNxServer::CNxServer(void) m_hDevice = (FAR NX_DRIVERTYPE *)NULL; // LCD/Framebuffer device handle m_hNxServer = (NXHANDLE)NULL; // NX server handle -#ifdef CONFIG_NX_MULTIUSER m_connected = false; // True: Connected to the server sem_init(&m_connsem, 0, 0); // Wait for server connection -#endif // Increment the global count of NX servers. Normally there is only one // but we don't want to preclude the case where there might be multiple @@ -125,110 +120,9 @@ CNxServer::~CNxServer(void) } /** - * Connect to the NX Server -- Single user version + * Connect to the NX Server */ -#ifndef CONFIG_NX_MULTIUSER -bool CNxServer::connect(void) -{ -#if defined(CONFIG_NXWIDGETS_EXTERNINIT) - struct boardioc_graphics_s devinfo; - int ret; - - // Use external graphics driver initialization - - printf("nxtext_initialize: Initializing external graphics device\n"); - - devinfo.devno = CONFIG_NXWIDGETS_DEVNO; - devinfo.dev = NULL; - - ret = boardctl(BOARDIOC_GRAPHICS_SETUP, (uintptr_t)&devinfo); - if (ret < 0) - { - gerr("ERROR: boardctl failed, devno=%d: %d\n", CONFIG_NXWIDGETS_DEVNO, errno); - return false; - } - - m_hDevice = devinfo.dev; - -#elif defined(CONFIG_NX_LCDDRIVER) - int ret; - - // Initialize the LCD device - - ret = board_lcd_initialize(); - if (ret < 0) - { - gerr("ERROR: board_lcd_initialize failed: %d\n", -ret); - return false; - } - - // Get the device instance - - m_hDevice = board_lcd_getdev(CONFIG_NXWIDGETS_DEVNO); - if (!m_hDevice) - { - gerr("ERROR: board_lcd_getdev failed, devno=%d\n", CONFIG_NXWIDGETS_DEVNO); - return false; - } - - // Turn the LCD on at 75% power - - (void)m_hDevice->setpower(m_hDevice, ((3*CONFIG_LCD_MAXPOWER + 3)/4)); - -#else // CONFIG_NX_LCDDRIVER - int ret; - - // Initialize the frame buffer device - // REVISIT: display == 0 is assumed - - ret = up_fbinitialize(0); - if (ret < 0) - { - gerr("ERROR: up_fbinitialize failed: %d\n", -ret); - return false; - } - - m_hDevice = up_fbgetvplane(0, CONFIG_NXWIDGETS_VPLANE); - if (!m_hDevice) - { - gerr("ERROR: CNxServer::connect: up_fbgetvplane failed, vplane=%d\n", - CONFIG_NXWIDGETS_VPLANE); - return false; - } - -#endif // CONFIG_NX_LCDDRIVER - - // Then open NX - - m_hNxServer = nx_open(m_hDevice); - if (!m_hNxServer) - { - gerr("ERROR: CNxServer::connect: nx_open failed: %d\n", errno); - return false; - } - -#ifdef CONFIG_VNCSERVER - // Setup the VNC server to support keyboard/mouse inputs - - ret = vnc_default_fbinitialize(0, m_hNxServer); - if (ret < 0) - { - gerr("ERROR: CNxServer::connect: vnc_default_fbinitialize failed: %d\n", ret); - disconnect(); - return false; - } -#endif - - return true; -} -#endif // CONFIG_NX_MULTIUSER - -/** - * Connect to the NX Server -- Multi user version - */ - -#ifdef CONFIG_NX_MULTIUSER bool CNxServer::connect(void) { struct sched_param param; @@ -329,30 +223,11 @@ bool CNxServer::connect(void) return true; } -#endif // CONFIG_NX_MULTIUSER /** - * Disconnect to the NX Server -- Single user version + * Disconnect from the NX Server */ -#ifndef CONFIG_NX_MULTIUSER -void CNxServer::disconnect(void) -{ - // Close the server - - if (m_hNxServer) - { - nx_close(m_hNxServer); - m_hNxServer = NULL; - } -} -#endif // CONFIG_NX_MULTIUSER - -/** - * Disconnect to the NX Server -- Single user version - */ - -#ifdef CONFIG_NX_MULTIUSER void CNxServer::disconnect(void) { // Is the listener running? @@ -379,14 +254,12 @@ void CNxServer::disconnect(void) m_hNxServer = NULL; } } -#endif // CONFIG_NX_MULTIUSER /** * This is the entry point of a thread that listeners for and dispatches * events from the NX server. */ -#ifdef CONFIG_NX_MULTIUSER FAR void *CNxServer::listener(FAR void *arg) { // The argument must be the CNxServer instance @@ -436,4 +309,4 @@ FAR void *CNxServer::listener(FAR void *arg) sem_post(&This->m_connsem); return NULL; } -#endif // CONFIG_NX_MULTIUSER + diff --git a/libnxwidgets/src/cwidgetcontrol.cxx b/libnxwidgets/src/cwidgetcontrol.cxx index 989cb5293..24dbaec76 100644 --- a/libnxwidgets/src/cwidgetcontrol.cxx +++ b/libnxwidgets/src/cwidgetcontrol.cxx @@ -118,10 +118,8 @@ CWidgetControl::CWidgetControl(FAR const CWidgetStyle *style) m_waiting = false; sem_init(&m_waitSem, 0, 0); #endif -#ifdef CONFIG_NX_MULTIUSER sem_init(&m_boundsSem, 0, 0); sem_init(&m_geoSem, 0, 0); -#endif // Do we need to fetch the default style? @@ -908,7 +906,6 @@ bool CWidgetControl::pollCursorControlEvents(void) * Take the geometry semaphore (handling signal interruptions) */ -#ifdef CONFIG_NX_MULTIUSER void CWidgetControl::takeGeoSem(void) { // Take the geometry semaphore. Retry is an error occurs (only if @@ -921,13 +918,11 @@ void CWidgetControl::takeGeoSem(void) } while (ret < 0 && errno == EINTR); } -#endif /** * Take the bounds semaphore (handling signal interruptions) */ -#ifdef CONFIG_NX_MULTIUSER void CWidgetControl::takeBoundsSem(void) { // Take the bounds semaphore. Retry is an error occurs (only if @@ -940,7 +935,6 @@ void CWidgetControl::takeBoundsSem(void) } while (ret < 0 && errno == EINTR); } -#endif /** * Clear all mouse events