diff options
author | Gregory Nutt <gnutt@nuttx.org> | 2014-09-20 14:51:48 -0600 |
---|---|---|
committer | Gregory Nutt <gnutt@nuttx.org> | 2014-09-20 14:51:48 -0600 |
commit | 53287415d45ecb9402fe7d838e040c9309120a68 (patch) | |
tree | ae5e824c5bd264e67ad80d84a34753e64be3409b /apps/examples/nxconsole | |
parent | 919f57e16e3a7319cf7d05c9342bf79c393381a0 (diff) | |
download | nuttx-53287415d45ecb9402fe7d838e040c9309120a68.tar.gz nuttx-53287415d45ecb9402fe7d838e040c9309120a68.tar.bz2 nuttx-53287415d45ecb9402fe7d838e040c9309120a68.zip |
Rename all occurences of NxConsole to NxTerm
Diffstat (limited to 'apps/examples/nxconsole')
-rw-r--r-- | apps/examples/nxconsole/.gitignore | 10 | ||||
-rw-r--r-- | apps/examples/nxconsole/Kconfig | 13 | ||||
-rw-r--r-- | apps/examples/nxconsole/Makefile | 124 | ||||
-rw-r--r-- | apps/examples/nxconsole/nxcon_internal.h | 310 | ||||
-rw-r--r-- | apps/examples/nxconsole/nxcon_main.c | 416 | ||||
-rw-r--r-- | apps/examples/nxconsole/nxcon_server.c | 189 | ||||
-rw-r--r-- | apps/examples/nxconsole/nxcon_toolbar.c | 172 | ||||
-rw-r--r-- | apps/examples/nxconsole/nxcon_wndo.c | 208 |
8 files changed, 0 insertions, 1442 deletions
diff --git a/apps/examples/nxconsole/.gitignore b/apps/examples/nxconsole/.gitignore deleted file mode 100644 index b14460823..000000000 --- a/apps/examples/nxconsole/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -/Make.dep -/.depend -/.built -/*.asm -/*.rel -/*.lst -/*.sym -/*.adb -/*.lib -/*.src diff --git a/apps/examples/nxconsole/Kconfig b/apps/examples/nxconsole/Kconfig deleted file mode 100644 index 1ca517842..000000000 --- a/apps/examples/nxconsole/Kconfig +++ /dev/null @@ -1,13 +0,0 @@ -# -# For a description of the syntax of this configuration file, -# see misc/tools/kconfig-language.txt. -# - -config EXAMPLES_NXTERM - bool "NxConsole example" - default n - ---help--- - Enable the NxConsole example - -if EXAMPLES_NXTERM -endif diff --git a/apps/examples/nxconsole/Makefile b/apps/examples/nxconsole/Makefile deleted file mode 100644 index 5060cbeab..000000000 --- a/apps/examples/nxconsole/Makefile +++ /dev/null @@ -1,124 +0,0 @@ -############################################################################ -# apps/examples/nxconsole/Makefile -# -# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. -# Author: Gregory Nutt <gnutt@nuttx.org> -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in -# the documentation and/or other materials provided with the -# distribution. -# 3. Neither the name NuttX nor the names of its contributors may be -# used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED -# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# -############################################################################ - --include $(TOPDIR)/.config --include $(TOPDIR)/Make.defs -include $(APPDIR)/Make.defs - -# NuttX NX Console Example. - -ASRCS = -CSRCS = nxcon_toolbar.c nxcon_wndo.c nxcon_server.c -MAINSRC = nxcon_main.c - -AOBJS = $(ASRCS:.S=$(OBJEXT)) -COBJS = $(CSRCS:.c=$(OBJEXT)) -MAINOBJ = $(MAINSRC:.c=$(OBJEXT)) - -SRCS = $(ASRCS) $(CSRCS) $(MAINSRC) -OBJS = $(AOBJS) $(COBJS) - -ifneq ($(CONFIG_BUILD_KERNEL),y) - OBJS += $(MAINOBJ) -endif - -ifeq ($(CONFIG_WINDOWS_NATIVE),y) - BIN = ..\..\libapps$(LIBEXT) -else -ifeq ($(WINTOOL),y) - BIN = ..\\..\\libapps$(LIBEXT) -else - BIN = ../../libapps$(LIBEXT) -endif -endif - -ifeq ($(WINTOOL),y) - INSTALL_DIR = "${shell cygpath -w $(BIN_DIR)}" -else - INSTALL_DIR = $(BIN_DIR) -endif - -CONFIG_XYZ_PROGNAME ?= nxconsole$(EXEEXT) -PROGNAME = $(CONFIG_XYZ_PROGNAME) - -ROOTDEPPATH = --dep-path . - -# Common build - -VPATH = - -all: .built -.PHONY: context clean depend distclean - -$(AOBJS): %$(OBJEXT): %.S - $(call ASSEMBLE, $<, $@) - -$(COBJS) $(MAINOBJ): %$(OBJEXT): %.c - $(call COMPILE, $<, $@) - -.built: $(OBJS) - $(call ARCHIVE, $(BIN), $(OBJS)) - @touch .built - -ifeq ($(CONFIG_BUILD_KERNEL),y) -$(BIN_DIR)$(DELIM)$(PROGNAME): $(OBJS) $(MAINOBJ) - @echo "LD: $(PROGNAME)" - $(Q) $(LD) $(LDELFFLAGS) $(LDLIBPATH) -o $(INSTALL_DIR)$(DELIM)$(PROGNAME) $(ARCHCRT0OBJ) $(MAINOBJ) $(LDLIBS) - $(Q) $(NM) -u $(INSTALL_DIR)$(DELIM)$(PROGNAME) - -install: $(BIN_DIR)$(DELIM)$(PROGNAME) - -else -install: - -endif - -context: - -.depend: Makefile $(SRCS) - @$(MKDEP) $(ROOTDEPPATH) "$(CC)" -- $(CFLAGS) -- $(SRCS) >Make.dep - @touch $@ - -depend: .depend - -clean: - $(call DELFILE, .built) - $(call CLEAN) - -distclean: clean - $(call DELFILE, Make.dep) - $(call DELFILE, .depend) - --include Make.dep diff --git a/apps/examples/nxconsole/nxcon_internal.h b/apps/examples/nxconsole/nxcon_internal.h deleted file mode 100644 index 548a9f883..000000000 --- a/apps/examples/nxconsole/nxcon_internal.h +++ /dev/null @@ -1,310 +0,0 @@ -/**************************************************************************** - * examples/nxconsole/nxcon_internal.h - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -#ifndef __EXAMPLES_NXTERM_NXCON_INTERNAL_H -#define __EXAMPLES_NXTERM_NXCON_INTERNAL_H - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdint.h> -#include <stdbool.h> -#include <semaphore.h> - -#include <nuttx/video/rgbcolors.h> - -#include <nuttx/nx/nx.h> -#include <nuttx/nx/nxglib.h> -#include <nuttx/nx/nxtk.h> -#include <nuttx/nx/nxconsole.h> - -/**************************************************************************** - * Definitions - ****************************************************************************/ -/* Configuration ************************************************************/ -/* Need NX graphics support */ - -#ifndef CONFIG_NX -# error "NX is not enabled (CONFIG_NX=y)" -#endif - -/* Can't do the NxConsole example if the NxConsole driver is not built */ - -#ifndef CONFIG_NXTERM -# error "NxConsole is not enabled (CONFIG_NXTERM=y)" -#endif - -/* NxConsole requires NX Multi-user mode */ - -#ifndef CONFIG_NX_MULTIUSER -# error "Multi-user NX support is required (CONFIG_NX_MULTIUSER=y)" -#endif - -/* If there is no NSH console, then why are we running this example? */ - -#ifndef CONFIG_NSH_CONSOLE -# warning "Expected CONFIG_NSH_CONSOLE=y" -#endif - -/* The NSH telnet console requires networking support (and TCP/IP) */ - -#ifndef CONFIG_NET -# undef CONFIG_NSH_TELNET -#endif - -/* If not specified, assume that the hardware supports one video plane */ - -#if CONFIG_NX_NPLANES != 1 -# error "Only CONFIG_NX_NPLANES==1 supported" -#endif - -#ifndef CONFIG_EXAMPLES_NXCON_VPLANE -# define CONFIG_EXAMPLES_NXCON_VPLANE 0 -#endif - -/* Pixel depth. If none provided, pick the smallest enabled pixel depth */ - -#ifndef CONFIG_EXAMPLES_NXCON_BPP -# if !defined(CONFIG_NX_DISABLE_1BPP) -# define CONFIG_EXAMPLES_NXCON_BPP 1 -# elif !defined(CONFIG_NX_DISABLE_2BPP) -# define CONFIG_EXAMPLES_NXCON_BPP 2 -# elif !defined(CONFIG_NX_DISABLE_4BPP) -# define CONFIG_EXAMPLES_NXCON_BPP 4 -# elif !defined(CONFIG_NX_DISABLE_8BPP) -# define CONFIG_EXAMPLES_NXCON_BPP 8 -# elif !defined(CONFIG_NX_DISABLE_16BPP) -# define CONFIG_EXAMPLES_NXCON_BPP 16 -//#elif !defined(CONFIG_NX_DISABLE_24BPP) -//# define CONFIG_NXTERM_BPP 24 -# elif !defined(CONFIG_NX_DISABLE_32BPP) -# define CONFIG_EXAMPLES_NXCON_BPP 32 -# else -# error "No pixel depth provided" -# endif -#endif - -/* Background color (default is darker royal blue) */ - -#ifndef CONFIG_EXAMPLES_NXCON_BGCOLOR -# if CONFIG_EXAMPLES_NXCON_BPP == 24 || CONFIG_EXAMPLES_NXCON_BPP == 32 -# define CONFIG_EXAMPLES_NXCON_BGCOLOR RGBTO24(39, 64, 139) -# elif CONFIG_EXAMPLES_NXCON_BPP == 16 -# define CONFIG_EXAMPLES_NXCON_BGCOLOR RGBTO16(39, 64, 139) -# else -# define CONFIG_EXAMPLES_NXCON_BGCOLOR RGBTO8(39, 64, 139) -# endif -#endif - -/* Window color (lighter steel blue) */ - -#ifndef CONFIG_EXAMPLES_NXCON_WCOLOR -# if CONFIG_EXAMPLES_NXCON_BPP == 24 || CONFIG_EXAMPLES_NXCON_BPP == 32 -# define CONFIG_EXAMPLES_NXCON_WCOLOR RGBTO24(202, 225, 255) -# elif CONFIG_EXAMPLES_NXCON_BPP == 16 -# define CONFIG_EXAMPLES_NXCON_WCOLOR RGBTO16(202, 225, 255) -# else -# define CONFIG_EXAMPLES_NXCON_WCOLOR RGBTO8(202, 225, 255) -# endif -#endif - -/* Toolbar color (medium grey) */ - -#ifndef CONFIG_EXAMPLES_NXCON_TBCOLOR -# if CONFIG_EXAMPLES_NX_BPP == 24 || CONFIG_EXAMPLES_NX_BPP == 32 -# define CONFIG_EXAMPLES_NXCON_TBCOLOR RGBTO24(188, 188, 188) -# elif CONFIG_EXAMPLES_NX_BPP == 16 -# define CONFIG_EXAMPLES_NXCON_TBCOLOR RGBTO16(188, 188, 188) -# else -# define CONFIG_EXAMPLES_NXCON_TBCOLOR RGBTO8(188, 188, 188) -# endif -#endif - -/* Font ID */ - -#ifndef CONFIG_EXAMPLES_NXCON_FONTID -# define CONFIG_EXAMPLES_NXCON_FONTID NXFONT_DEFAULT -#endif - -/* Font color */ - -#ifndef CONFIG_EXAMPLES_NXCON_FONTCOLOR -# if CONFIG_EXAMPLES_NXCON_BPP == 24 || CONFIG_EXAMPLES_NXCON_BPP == 32 -# define CONFIG_EXAMPLES_NXCON_FONTCOLOR RGBTO24(0, 0, 0) -# elif CONFIG_EXAMPLES_NXCON_BPP == 16 -# define CONFIG_EXAMPLES_NXCON_FONTCOLOR RGBTO16(0, 0, 0) -# else -# define CONFIG_EXAMPLES_NXCON_FONTCOLOR RGBTO8(0, 0, 0) -# endif -#endif - -/* Height of the toolbar */ - -#ifndef CONFIG_EXAMPLES_NXCON_TOOLBAR_HEIGHT -# define CONFIG_EXAMPLES_NXCON_TOOLBAR_HEIGHT 16 -#endif - -/* Multi-user NX support */ - -#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_NXCON_STACKSIZE -# define CONFIG_EXAMPLES_NXCON_STACKSIZE 2048 -#endif -#ifndef CONFIG_EXAMPLES_NXCON_LISTENERPRIO -# define CONFIG_EXAMPLES_NXCON_LISTENERPRIO 100 -#endif -#ifndef CONFIG_EXAMPLES_NXCON_CLIENTPRIO -# define CONFIG_EXAMPLES_NXCON_CLIENTPRIO 100 -#endif -#ifndef CONFIG_EXAMPLES_NXCON_SERVERPRIO -# define CONFIG_EXAMPLES_NXCON_SERVERPRIO 120 -#endif -#ifndef CONFIG_EXAMPLES_NXCON_NOTIFYSIGNO -# define CONFIG_EXAMPLES_NXCON_NOTIFYSIGNO 4 -#endif - -/* Graphics Device */ - -#ifndef CONFIG_EXAMPLES_NXCON_DEVNO -# define CONFIG_EXAMPLES_NXCON_DEVNO 0 -#endif - -/* NX Console Device */ - -#ifndef CONFIG_EXAMPLES_NXCON_MINOR -# define CONFIG_EXAMPLES_NXCON_MINOR 0 -#endif - -#ifndef CONFIG_EXAMPLES_NXCON_DEVNAME -# define CONFIG_EXAMPLES_NXCON_DEVNAME "/dev/nxcon0" -#endif - -/* NxConsole task */ - -#ifndef CONFIG_EXAMPLES_NXTERM_PRIO -# define CONFIG_EXAMPLES_NXTERM_PRIO SCHED_PRIORITY_DEFAULT -#endif - -#ifndef CONFIG_EXAMPLES_NXTERM_STACKSIZE -# define CONFIG_EXAMPLES_NXTERM_STACKSIZE 2048 -#endif - -/* Debug ********************************************************************/ - -#ifdef CONFIG_CPP_HAVE_VARARGS -# ifdef CONFIG_DEBUG -# define message(...) lowsyslog(__VA_ARGS__) -# define msgflush() -# else -# define message(...) printf(__VA_ARGS__) -# define msgflush() fflush(stdout) -# endif -#else -# ifdef CONFIG_DEBUG -# define message lowsyslog -# define msgflush() -# else -# define message printf -# define msgflush() fflush(stdout) -# endif -#endif - -/**************************************************************************** - * Public Types - ****************************************************************************/ - -/* All example global variables are retained in a structure to minimize - * the chance of name collisions. - */ - -struct nxcon_state_s -{ - volatile bool haveres; /* True: Have screen resolution */ - volatile bool connected; /* True: Connected to server */ - sem_t eventsem; /* Control waiting for display events */ - pid_t pid; /* Console task ID */ - NXHANDLE hnx; /* The connection handler */ - NXTKWINDOW hwnd; /* The window */ - NXCONSOLE hdrvr; /* The console driver */ - struct nxcon_window_s wndo; /* Describes the window */ - nxgl_coord_t xres; /* Screen X resolution */ - nxgl_coord_t yres; /* Screen Y resolution */ - struct nxgl_size_s wsize; /* Window size */ - struct nxgl_point_s wpos; /* Window position */ -}; - -/**************************************************************************** - * Public Variables - ****************************************************************************/ -/* All example global variables are retained in a structure to minimize - * the chance of name collisions. - */ - -extern struct nxcon_state_s g_nxcon_vars; - -/* NX callback vtables */ - -extern const struct nx_callback_s g_nxconcb; -extern const struct nx_callback_s g_nxtoolcb; - -/**************************************************************************** - * Public Function Prototypes - ****************************************************************************/ -/* Board-specific driver intiialization */ - -#ifdef CONFIG_EXAMPLES_NXCON_EXTERNINIT -extern FAR NX_DRIVERTYPE *up_nxdrvinit(unsigned int devno); -#endif - -/* Server thread support */ - -extern int nxcon_server(int argc, char *argv[]); -extern FAR void *nxcon_listener(FAR void *arg); - -#endif /* __EXAMPLES_NXTERM_NXCON_INTERNAL_H */ diff --git a/apps/examples/nxconsole/nxcon_main.c b/apps/examples/nxconsole/nxcon_main.c deleted file mode 100644 index ca27acd62..000000000 --- a/apps/examples/nxconsole/nxcon_main.c +++ /dev/null @@ -1,416 +0,0 @@ -/**************************************************************************** - * examples/nxconsole/nxcon_main.c - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <sys/types.h> - -#include <stdint.h> -#include <stdbool.h> -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <fcntl.h> -#include <string.h> -#include <errno.h> -#include <debug.h> - -#ifdef CONFIG_NX_LCDDRIVER -# include <nuttx/lcd/lcd.h> -#else -# include <nuttx/video/fb.h> -#endif - -#include <nuttx/arch.h> -#include <nuttx/nx/nx.h> -#include <nuttx/nx/nxglib.h> -#include <nuttx/nx/nxfonts.h> -#include <nuttx/nx/nxconsole.h> - -#include <apps/nsh.h> - -#include "nxcon_internal.h" - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Types - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Public Data - ****************************************************************************/ - -/* All example global variables are retained in a structure to minimize - * the chance of name collisions. - */ - -struct nxcon_state_s g_nxcon_vars; - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: nxcon_initialize - ****************************************************************************/ - -static int nxcon_initialize(void) -{ - struct sched_param param; - pthread_t thread; - pid_t servrid; - int ret; - - /* Set the client task priority */ - - param.sched_priority = CONFIG_EXAMPLES_NXCON_CLIENTPRIO; - ret = sched_setparam(0, ¶m); - if (ret < 0) - { - message("nxcon_initialize: sched_setparam failed: %d\n" , ret); - return ERROR; - } - - /* Start the server task */ - - message("nxcon_initialize: Starting nxcon_server task\n"); - servrid = task_create("NX Server", CONFIG_EXAMPLES_NXCON_SERVERPRIO, - CONFIG_EXAMPLES_NXCON_STACKSIZE, nxcon_server, NULL); - if (servrid < 0) - { - message("nxcon_initialize: Failed to create nxcon_server task: %d\n", errno); - return ERROR; - } - - /* Wait a bit to let the server get started */ - - sleep(1); - - /* Connect to the server */ - - g_nxcon_vars.hnx = nx_connect(); - if (g_nxcon_vars.hnx) - { - pthread_attr_t attr; - - /* Start a separate thread to listen for server events. This is probably - * the least efficient way to do this, but it makes this example flow more - * smoothly. - */ - - (void)pthread_attr_init(&attr); - param.sched_priority = CONFIG_EXAMPLES_NXCON_LISTENERPRIO; - (void)pthread_attr_setschedparam(&attr, ¶m); - (void)pthread_attr_setstacksize(&attr, CONFIG_EXAMPLES_NXCON_STACKSIZE); - - ret = pthread_create(&thread, &attr, nxcon_listener, NULL); - if (ret != 0) - { - printf("nxcon_initialize: pthread_create failed: %d\n", ret); - return ERROR; - } - - /* Don't return until we are connected to the server */ - - while (!g_nxcon_vars.connected) - { - /* Wait for the listener thread to wake us up when we really - * are connected. - */ - - (void)sem_wait(&g_nxcon_vars.eventsem); - } - } - else - { - message("nxcon_initialize: nx_connect failed: %d\n", errno); - return ERROR; - } - return OK; -} - -/**************************************************************************** - * Name: nxcon_task - ****************************************************************************/ - -static int nxcon_task(int argc, char **argv) -{ - /* If the console front end is selected, then run it on this thread */ - -#ifdef CONFIG_NSH_CONSOLE - (void)nsh_consolemain(0, NULL); -#endif - - printf("nxcon_task: Unregister the NX console device\n"); - (void)nxcon_unregister(g_nxcon_vars.hdrvr); - - printf("nxcon_task: Close the window\n"); - (void)nxtk_closewindow(g_nxcon_vars.hwnd); - - /* Disconnect from the server */ - - printf("nxcon_task: Disconnect from the server\n"); - nx_disconnect(g_nxcon_vars.hnx); - - return EXIT_SUCCESS; -} - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: nxcon_main - ****************************************************************************/ - -#ifdef CONFIG_BUILD_KERNEL -int main(int argc, FAR char *argv[]) -#else -int nxcon_main(int argc, char **argv) -#endif -{ - nxgl_mxpixel_t color; - int fd; - int ret; - - /* General Initialization *************************************************/ - /* Reset all global data */ - - message("nxcon_main: Started\n"); - memset(&g_nxcon_vars, 0, sizeof(struct nxcon_state_s)); - - /* Call all C++ static constructors */ - -#if defined(CONFIG_HAVE_CXX) && defined(CONFIG_HAVE_CXXINITIALIZE) - up_cxxinitialize(); -#endif - - /* NSH Initialization *****************************************************/ - /* Initialize the NSH library */ - - message("nxcon_main: Initialize NSH\n"); - nsh_initialize(); - - /* If the Telnet console is selected as a front-end, then start the - * Telnet daemon. - */ - -#ifdef CONFIG_NSH_TELNET - ret = nsh_telnetstart(); - if (ret < 0) - { - /* The daemon is NOT running. Report the the error then fail... - * either with the serial console up or just exiting. - */ - - fprintf(stderr, "ERROR: Failed to start TELNET daemon: %d\n", ret); - } -#endif - /* NX Initialization ******************************************************/ - /* Initialize NX */ - - message("nxcon_main: Initialize NX\n"); - ret = nxcon_initialize(); - message("nxcon_main: NX handle=%p\n", g_nxcon_vars.hnx); - if (!g_nxcon_vars.hnx || ret < 0) - { - message("nxcon_main: Failed to get NX handle: %d\n", errno); - goto errout; - } - - /* Set the background to the configured background color */ - - message("nxcon_main: Set background color=%d\n", CONFIG_EXAMPLES_NXCON_BGCOLOR); - color = CONFIG_EXAMPLES_NXCON_BGCOLOR; - ret = nx_setbgcolor(g_nxcon_vars.hnx, &color); - if (ret < 0) - { - message("nxcon_main: nx_setbgcolor failed: %d\n", errno); - goto errout_with_nx; - } - - /* Window Configuration ***************************************************/ - /* Create a window */ - - message("nxcon_main: Create window\n"); - g_nxcon_vars.hwnd = nxtk_openwindow(g_nxcon_vars.hnx, &g_nxconcb, NULL); - if (!g_nxcon_vars.hwnd) - { - message("nxcon_main: nxtk_openwindow failed: %d\n", errno); - goto errout_with_nx; - } - message("nxcon_main: hwnd=%p\n", g_nxcon_vars.hwnd); - - /* Wait until we have the screen resolution. We'll have this immediately - * unless we are dealing with the NX server. - */ - - while (!g_nxcon_vars.haveres) - { - (void)sem_wait(&g_nxcon_vars.eventsem); - } - message("nxcon_main: Screen resolution (%d,%d)\n", g_nxcon_vars.xres, g_nxcon_vars.yres); - - /* Determine the size and position of the window */ - - g_nxcon_vars.wndo.wsize.w = g_nxcon_vars.xres / 2 + g_nxcon_vars.xres / 4; - g_nxcon_vars.wndo.wsize.h = g_nxcon_vars.yres / 2 + g_nxcon_vars.yres / 4; - - g_nxcon_vars.wpos.x = g_nxcon_vars.xres / 8; - g_nxcon_vars.wpos.y = g_nxcon_vars.yres / 8; - - /* Set the window position */ - - message("nxcon_main: Set window position to (%d,%d)\n", - g_nxcon_vars.wpos.x, g_nxcon_vars.wpos.y); - - ret = nxtk_setposition(g_nxcon_vars.hwnd, &g_nxcon_vars.wpos); - if (ret < 0) - { - message("nxcon_main: nxtk_setposition failed: %d\n", errno); - goto errout_with_hwnd; - } - - /* Set the window size */ - - message("nxcon_main: Set window size to (%d,%d)\n", - g_nxcon_vars.wndo.wsize.w, g_nxcon_vars.wndo.wsize.h); - - ret = nxtk_setsize(g_nxcon_vars.hwnd, &g_nxcon_vars.wndo.wsize); - if (ret < 0) - { - message("nxcon_main: nxtk_setsize failed: %d\n", errno); - goto errout_with_hwnd; - } - - /* Open the toolbar */ - - message("nxcon_main: Add toolbar to window\n"); - ret = nxtk_opentoolbar(g_nxcon_vars.hwnd, CONFIG_EXAMPLES_NXCON_TOOLBAR_HEIGHT, &g_nxtoolcb, NULL); - if (ret < 0) - { - message("nxcon_main: nxtk_opentoolbar failed: %d\n", errno); - goto errout_with_hwnd; - } - - /* Sleep a little bit to allow the server to catch up */ - - sleep(2); - - /* NxConsole Configuration ************************************************/ - /* Use the window to create an NX console */ - - g_nxcon_vars.wndo.wcolor[0] = CONFIG_EXAMPLES_NXCON_WCOLOR; - g_nxcon_vars.wndo.fcolor[0] = CONFIG_EXAMPLES_NXCON_FONTCOLOR; - g_nxcon_vars.wndo.fontid = CONFIG_EXAMPLES_NXCON_FONTID; - - g_nxcon_vars.hdrvr = nxtk_register(g_nxcon_vars.hwnd, &g_nxcon_vars.wndo, CONFIG_EXAMPLES_NXCON_MINOR); - if (!g_nxcon_vars.hdrvr) - { - message("nxcon_main: nxtk_register failed: %d\n", errno); - goto errout_with_hwnd; - } - - /* Open the NxConsole driver */ - - fd = open(CONFIG_EXAMPLES_NXCON_DEVNAME, O_WRONLY); - if (fd < 0) - { - message("nxcon_main: open %s read-only failed: %d\n", - CONFIG_EXAMPLES_NXCON_DEVNAME, errno); - goto errout_with_driver; - } - - /* Start Console Task *****************************************************/ - /* Now re-direct stdout and stderr so that they use the NX console driver. - * Note that stdin is retained (file descriptor 0, probably the the serial console). - */ - - message("nxcon_main: Starting the console task\n"); - msgflush(); - - (void)fflush(stdout); - (void)fflush(stderr); - - (void)fclose(stdout); - (void)fclose(stderr); - - (void)dup2(fd, 1); - (void)dup2(fd, 2); - - /* And we can close our original driver file descriptor */ - - close(fd); - - /* And start the console task. It will inherit stdin, stdout, and stderr - * from this task. - */ - - g_nxcon_vars.pid = task_create("NxConsole", CONFIG_EXAMPLES_NXTERM_PRIO, - CONFIG_EXAMPLES_NXTERM_STACKSIZE, - nxcon_task, NULL); - ASSERT(g_nxcon_vars.pid > 0); - return EXIT_SUCCESS; - - /* Error Exits ************************************************************/ - -errout_with_driver: - (void)nxcon_unregister(g_nxcon_vars.hdrvr); - -errout_with_hwnd: - (void)nxtk_closewindow(g_nxcon_vars.hwnd); - -errout_with_nx: - /* Disconnect from the server */ - - nx_disconnect(g_nxcon_vars.hnx); -errout: - return EXIT_FAILURE; -} diff --git a/apps/examples/nxconsole/nxcon_server.c b/apps/examples/nxconsole/nxcon_server.c deleted file mode 100644 index e42271c1f..000000000 --- a/apps/examples/nxconsole/nxcon_server.c +++ /dev/null @@ -1,189 +0,0 @@ -/**************************************************************************** - * examples/nxconsole/nxcon_server.c - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <sched.h> -#include <errno.h> -#include <debug.h> - -#include <nuttx/arch.h> -#include <nuttx/nx/nx.h> - -#ifdef CONFIG_NX_LCDDRIVER -# include <nuttx/lcd/lcd.h> -#else -# include <nuttx/video/fb.h> -#endif - -#include "nxcon_internal.h" - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Types - ****************************************************************************/ - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Public Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: nxcon_server - ****************************************************************************/ - -int nxcon_server(int argc, char *argv[]) -{ - FAR NX_DRIVERTYPE *dev; - int ret; - -#if defined(CONFIG_EXAMPLES_NXCON_EXTERNINIT) - /* Use external graphics driver initialization */ - - message("nxcon_server: Initializing external graphics device\n"); - dev = up_nxdrvinit(CONFIG_EXAMPLES_NXCON_DEVNO); - if (!dev) - { - message("nxcon_server: up_nxdrvinit failed, devno=%d\n", CONFIG_EXAMPLES_NXCON_DEVNO); - return ERROR; - } - -#elif defined(CONFIG_NX_LCDDRIVER) - /* Initialize the LCD device */ - - message("nxcon_server: Initializing LCD\n"); - ret = up_lcdinitialize(); - if (ret < 0) - { - message("nxcon_server: up_lcdinitialize failed: %d\n", -ret); - return 1; - } - - /* Get the device instance */ - - dev = up_lcdgetdev(CONFIG_EXAMPLES_NXCON_DEVNO); - if (!dev) - { - message("nxcon_server: up_lcdgetdev failed, devno=%d\n", CONFIG_EXAMPLES_NXCON_DEVNO); - return 2; - } - - /* Turn the LCD on at 75% power */ - - (void)dev->setpower(dev, ((3*CONFIG_LCD_MAXPOWER + 3)/4)); -#else - /* Initialize the frame buffer device */ - - message("nxcon_server: Initializing framebuffer\n"); - ret = up_fbinitialize(); - if (ret < 0) - { - message("nxcon_server: up_fbinitialize failed: %d\n", -ret); - return 1; - } - - dev = up_fbgetvplane(CONFIG_EXAMPLES_NXCON_VPLANE); - if (!dev) - { - message("nxcon_server: up_fbgetvplane failed, vplane=%d\n", CONFIG_EXAMPLES_NXCON_VPLANE); - return 2; - } -#endif - - /* Then start the server */ - - ret = nx_run(dev); - gvdbg("nx_run returned: %d\n", errno); - return 3; -} - -/**************************************************************************** - * Name: nxcon_listener - ****************************************************************************/ - -FAR void *nxcon_listener(FAR void *arg) -{ - int ret; - - /* Process events forever */ - - for (;;) - { - /* Handle the next event. If we were configured blocking, then - * we will stay right here until the next event is received. Since - * we have dedicated a while thread to servicing events, it would - * be most natural to also select CONFIG_NX_BLOCKING -- if not, the - * following would be a tight infinite loop (unless we added addition - * logic with nx_eventnotify and sigwait to pace it). - */ - - ret = nx_eventhandler(g_nxcon_vars.hnx); - if (ret < 0) - { - /* An error occurred... assume that we have lost connection with - * the server. - */ - - message("nxcon_listener: Lost server connection: %d\n", errno); - exit(EXIT_FAILURE); - } - - /* If we received a message, we must be connected */ - - if (!g_nxcon_vars.connected) - { - g_nxcon_vars.connected = true; - sem_post(&g_nxcon_vars.eventsem); - message("nxcon_listener: Connected\n"); - } - } -} diff --git a/apps/examples/nxconsole/nxcon_toolbar.c b/apps/examples/nxconsole/nxcon_toolbar.c deleted file mode 100644 index 767a1a3f3..000000000 --- a/apps/examples/nxconsole/nxcon_toolbar.c +++ /dev/null @@ -1,172 +0,0 @@ -/**************************************************************************** - * examples/nxconsole/nxcon_toolbar.c - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdint.h> -#include <stdbool.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <semaphore.h> -#include <errno.h> -#include <debug.h> - -#include <nuttx/nx/nx.h> -#include <nuttx/nx/nxfonts.h> - -#include "nxcon_internal.h" - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Types - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -static void nxtool_redraw(NXWINDOW hwnd, FAR const struct nxgl_rect_s *rect, - bool morem, FAR void *arg); -static void nxtool_position(NXWINDOW hwnd, FAR const struct nxgl_size_s *size, - FAR const struct nxgl_point_s *pos, - FAR const struct nxgl_rect_s *bounds, - FAR void *arg); -#ifdef CONFIG_NX_XYINPUT -static void nxtool_mousein(NXWINDOW hwnd, FAR const struct nxgl_point_s *pos, - uint8_t buttons, FAR void *arg); -#endif - -#ifdef CONFIG_NX_KBD -static void nxtool_kbdin(NXWINDOW hwnd, uint8_t nch, FAR const uint8_t *ch, - FAR void *arg); -#endif - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Public Data - ****************************************************************************/ - -/* Background window call table */ - -const struct nx_callback_s g_nxtoolcb = -{ - nxtool_redraw, /* redraw */ - nxtool_position /* position */ -#ifdef CONFIG_NX_XYINPUT - , nxtool_mousein /* mousein */ -#endif -#ifdef CONFIG_NX_KBD - , nxtool_kbdin /* my kbdin */ -#endif -}; - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: nxtool_redraw - ****************************************************************************/ - -static void nxtool_redraw(NXWINDOW hwnd, FAR const struct nxgl_rect_s *rect, - bool more, FAR void *arg) -{ - nxgl_mxpixel_t color[CONFIG_NX_NPLANES]; - int ret; - - gvdbg("hwnd=%p rect={(%d,%d),(%d,%d)} more=%s\n", - hwnd, rect->pt1.x, rect->pt1.y, rect->pt2.x, rect->pt2.y, - more ? "true" : "false"); - - color[0] = CONFIG_EXAMPLES_NXCON_TBCOLOR; - ret = nxtk_filltoolbar(hwnd, rect, color); - if (ret < 0) - { - gdbg("nxtk_filltoolbar failed: %d\n", errno); - } -} - -/**************************************************************************** - * Name: nxtool_position - ****************************************************************************/ - -static void nxtool_position(NXWINDOW hwnd, FAR const struct nxgl_size_s *size, - FAR const struct nxgl_point_s *pos, - FAR const struct nxgl_rect_s *bounds, - FAR void *arg) -{ - gvdbg("hwnd=%p size=(%d,%d) pos=(%d,%d) bounds={(%d,%d),(%d,%d)}\n", - hwnd, size->w, size->h, pos->x, pos->y, - bounds->pt1.x, bounds->pt1.y, bounds->pt2.x, bounds->pt2.y); -} - -/**************************************************************************** - * Name: nxtool_mousein - ****************************************************************************/ - -#ifdef CONFIG_NX_XYINPUT -static void nxtool_mousein(NXWINDOW hwnd, FAR const struct nxgl_point_s *pos, - uint8_t buttons, FAR void *arg) -{ - gvdbg("hwnd=%p pos=(%d,%d) button=%02x\n", hwnd, pos->x, pos->y, buttons); -} -#endif - -/**************************************************************************** - * Name: nxtool_kbdin - ****************************************************************************/ - -#ifdef CONFIG_NX_KBD -static void nxtool_kbdin(NXWINDOW hwnd, uint8_t nch, FAR const uint8_t *ch, - FAR void *arg) -{ - gvdbg("hwnd=%p nch=%d\n", hwnd, nch); -} -#endif - -/**************************************************************************** - * Public Functions - ****************************************************************************/ diff --git a/apps/examples/nxconsole/nxcon_wndo.c b/apps/examples/nxconsole/nxcon_wndo.c deleted file mode 100644 index 23a981b0f..000000000 --- a/apps/examples/nxconsole/nxcon_wndo.c +++ /dev/null @@ -1,208 +0,0 @@ -/**************************************************************************** - * examples/nxconsole/nxcon_wndo.c - * - * Copyright (C) 2012 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt <gnutt@nuttx.org> - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * 3. Neither the name NuttX nor the names of its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - ****************************************************************************/ - -/**************************************************************************** - * Included Files - ****************************************************************************/ - -#include <nuttx/config.h> - -#include <stdint.h> -#include <stdbool.h> -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <string.h> -#include <semaphore.h> -#include <errno.h> -#include <debug.h> - -#include <nuttx/nx/nx.h> -#include <nuttx/nx/nxfonts.h> - -#include "nxcon_internal.h" - -/**************************************************************************** - * Definitions - ****************************************************************************/ - -/**************************************************************************** - * Private Types - ****************************************************************************/ - -/**************************************************************************** - * Private Function Prototypes - ****************************************************************************/ - -static void nxwndo_redraw(NXWINDOW hwnd, FAR const struct nxgl_rect_s *rect, - bool morem, FAR void *arg); -static void nxwndo_position(NXWINDOW hwnd, FAR const struct nxgl_size_s *size, - FAR const struct nxgl_point_s *pos, - FAR const struct nxgl_rect_s *bounds, - FAR void *arg); -#ifdef CONFIG_NX_XYINPUT -static void nxwndo_mousein(NXWINDOW hwnd, FAR const struct nxgl_point_s *pos, - uint8_t buttons, FAR void *arg); -#endif - -#ifdef CONFIG_NX_KBD -static void nxwndo_kbdin(NXWINDOW hwnd, uint8_t nch, FAR const uint8_t *ch, - FAR void *arg); -#endif - -/**************************************************************************** - * Private Data - ****************************************************************************/ - -/**************************************************************************** - * Public Data - ****************************************************************************/ - -/* Background window call table */ - -const struct nx_callback_s g_nxconcb = -{ - nxwndo_redraw, /* redraw */ - nxwndo_position /* position */ -#ifdef CONFIG_NX_XYINPUT - , nxwndo_mousein /* mousein */ -#endif -#ifdef CONFIG_NX_KBD - , nxwndo_kbdin /* my kbdin */ -#endif -}; - -/**************************************************************************** - * Private Functions - ****************************************************************************/ - -/**************************************************************************** - * Name: nxwndo_redraw - ****************************************************************************/ - -static void nxwndo_redraw(NXWINDOW hwnd, FAR const struct nxgl_rect_s *rect, - bool more, FAR void *arg) -{ - nxgl_mxpixel_t wcolor[CONFIG_NX_NPLANES]; - - gvdbg("hwnd=%p rect={(%d,%d),(%d,%d)} more=%s\n", - hwnd, rect->pt1.x, rect->pt1.y, rect->pt2.x, rect->pt2.y, - more ? "true" : "false"); - - /* Don't attempt to redraw if the driver has not yet been opened */ - - if (g_nxcon_vars.hdrvr) - { - /* Inform the NX console of the redraw request */ - - nxcon_redraw(g_nxcon_vars.hdrvr, rect, more); - } - else - { - /* If the driver has not been opened, then just redraw the window color */ - - wcolor[0] = CONFIG_EXAMPLES_NXCON_WCOLOR; - (void)nxtk_fillwindow(hwnd, rect, wcolor); - } -} - -/**************************************************************************** - * Name: nxwndo_position - ****************************************************************************/ - -static void nxwndo_position(NXWINDOW hwnd, FAR const struct nxgl_size_s *size, - FAR const struct nxgl_point_s *pos, - FAR const struct nxgl_rect_s *bounds, - FAR void *arg) -{ - /* Report the position */ - - gvdbg("hwnd=%p size=(%d,%d) pos=(%d,%d) bounds={(%d,%d),(%d,%d)}\n", - hwnd, size->w, size->h, pos->x, pos->y, - bounds->pt1.x, bounds->pt1.y, bounds->pt2.x, bounds->pt2.y); - - /* Have we picked off the window bounds yet? */ - - if (!g_nxcon_vars.haveres) - { - /* Save the background window handle */ - - g_nxcon_vars.hwnd = hwnd; - - /* Save the background window size */ - - g_nxcon_vars.wndo.wsize.w = size->w; - g_nxcon_vars.wndo.wsize.h = size->h; - - /* Save the window limits (these should be the same for all places and all windows */ - - g_nxcon_vars.xres = bounds->pt2.x + 1; - g_nxcon_vars.yres = bounds->pt2.y + 1; - - g_nxcon_vars.haveres = true; - sem_post(&g_nxcon_vars.eventsem); - gvdbg("Have xres=%d yres=%d\n", g_nxcon_vars.xres, g_nxcon_vars.yres); - } -} - -/**************************************************************************** - * Name: nxwndo_mousein - ****************************************************************************/ - -#ifdef CONFIG_NX_XYINPUT -static void nxwndo_mousein(NXWINDOW hwnd, FAR const struct nxgl_point_s *pos, - uint8_t buttons, FAR void *arg) -{ - gvdbg("hwnd=%p pos=(%d,%d) button=%02x\n", - hwnd, pos->x, pos->y, buttons); -} -#endif - -/**************************************************************************** - * Name: nxwndo_kbdin - ****************************************************************************/ - -#ifdef CONFIG_NX_KBD -static void nxwndo_kbdin(NXWINDOW hwnd, uint8_t nch, FAR const uint8_t *ch, - FAR void *arg) -{ - gvdbg("hwnd=%p nch=%d\n", hwnd, nch); - (void)write(1, ch, nch); -} -#endif - -/**************************************************************************** - * Public Functions - ****************************************************************************/ |