apps/graphics/twm4nx: Add option to use touschreen instead of mouse input.

This commit is contained in:
Gregory Nutt 2019-05-04 12:26:14 -06:00
parent f3b3d1fc72
commit afbb51eb1e
4 changed files with 47 additions and 12 deletions
graphics/twm4nx
include/graphics/twm4nx

@ -81,7 +81,7 @@ config TWM4NX_NOKEYBOARD
environment (it is also used if VNC is selected) environment (it is also used if VNC is selected)
config TWM4NX_NOMOUSE config TWM4NX_NOMOUSE
bool "Disable mouse" bool "Disable mouse/touchscreen"
default n default n
---help--- ---help---
Normally you would never disable mouse input. That would make using Normally you would never disable mouse input. That would make using
@ -89,6 +89,24 @@ config TWM4NX_NOMOUSE
debugging Twm4Nx bringup in a simpler environment (it is also used debugging Twm4Nx bringup in a simpler environment (it is also used
if VNC is selected) if VNC is selected)
choice
prompt "Position device"
default TWM4NX_MOUSE
depends on !TWM4NX_NOMOUSE
config TWM4NX_MOUSE
bool "Mouse"
config TWM4NX_TOUCHSCREEN
bool "Touchscreen"
endchoice # Position device
config TWM4NX_MOUSE_DEVPATH
string "Path to input device"
default "/dev/mouse0" if TWM4NX_MOUSE
default "/dev/input0" if TWM4NX_TOUCHSCREEN
config TWM4NX_DEBUG config TWM4NX_DEBUG
bool "Force debug output" bool "Force debug output"
default n default n

@ -49,6 +49,11 @@
#include <assert.h> #include <assert.h>
#include <nuttx/nx/nxglib.h> #include <nuttx/nx/nxglib.h>
#ifdef CONFIG_TWM4NX_MOUSE
# include <nuttx/input/mouse.h>
#else
# include <nuttx/input/touchscreen.h>
#endif
#include "graphics/twm4nx/twm4nx_config.hxx" #include "graphics/twm4nx/twm4nx_config.hxx"
#include "graphics/twm4nx/ctwm4nx.hxx" #include "graphics/twm4nx/ctwm4nx.hxx"
@ -235,7 +240,7 @@ int CInput::keyboardOpen(void)
} }
/** /**
* Open the mouse input devices. Not very interesting for the * Open the mouse/touchscreen input devices. Not very interesting for the
* case of standard character device but much more interesting for * case of standard character device but much more interesting for
* USB mouse devices that may disappear when disconnected but later * USB mouse devices that may disappear when disconnected but later
* reappear when reconnected. In this case, this function will * reappear when reconnected. In this case, this function will
@ -373,11 +378,12 @@ int CInput::keyboardInput(void)
} }
/** /**
* Read data from the mouse device, update the cursor position, and * Read data from the mouse/touchscreen device. if the input device is a
* inject the mouse data into NX for proper distribution. * mouse, then update the cursor position. And, in either case, inject
* the mouse data into NX for proper distribution.
* *
* @return On success, then method returns a valid file descriptor. A * @return On success, then method returns zero (OK). A negated errno
* negated errno value is returned if an irrecoverable error occurs. * value is returned if an irrecoverable error occurs.
*/ */
int CInput::mouseInput(void) int CInput::mouseInput(void)

@ -112,7 +112,7 @@ namespace Twm4Nx
inline int keyboardOpen(void); inline int keyboardOpen(void);
/** /**
* Open the mouse input devices. Not very interesting for the * Open the mouse/touchscreen input device. Not very interesting for the
* case of standard character device but much more interesting for * case of standard character device but much more interesting for
* USB mouse devices that may disappear when disconnected but later * USB mouse devices that may disappear when disconnected but later
* reappear when reconnected. In this case, this function will * reappear when reconnected. In this case, this function will
@ -138,11 +138,12 @@ namespace Twm4Nx
inline int keyboardInput(void); inline int keyboardInput(void);
/** /**
* Read data from the mouse device, update the cursor position, and * Read data from the mouse/touchscreen device. if the input device
* is a mouse, then update the cursor position. And, in either case,
* inject the mouse data into NX for proper distribution. * inject the mouse data into NX for proper distribution.
* *
* @return On success, then method returns a valid file descriptor. A * @return On success, then method returns zero (OK). A negated errno
* negated errno value is returned if an irrecoverable error occurs. * value is returned if an irrecoverable error occurs.
*/ */
inline int mouseInput(void); inline int mouseInput(void);

@ -425,6 +425,8 @@
* Mouse device settings * Mouse device settings
* *
* CONFIG_TWM4NX_NOMOUSE - Can be used to disable mouse input. * CONFIG_TWM4NX_NOMOUSE - Can be used to disable mouse input.
* CONFIG_TWM4NX_MOUSE - Input is from a mouse.
* CONFIG_TWM4NX_TOUSCREEN - Input is from a touchscreen.
* CONFIG_TWM4NX_MOUSE_DEVPATH - The full path to the mouse device. * CONFIG_TWM4NX_MOUSE_DEVPATH - The full path to the mouse device.
* Default: "/dev/console" * Default: "/dev/console"
* CONFIG_TWM4NX_MOUSE_USBHOST - Indicates the the mouse is attached via * CONFIG_TWM4NX_MOUSE_USBHOST - Indicates the the mouse is attached via
@ -434,11 +436,19 @@
*/ */
#ifndef CONFIG_TWM4NX_MOUSE_DEVPATH #ifndef CONFIG_TWM4NX_MOUSE_DEVPATH
# ifdef CONFIG_TWM4NX_MOUSE
# define CONFIG_TWM4NX_MOUSE_DEVPATH "/dev/mouse0" # define CONFIG_TWM4NX_MOUSE_DEVPATH "/dev/mouse0"
# else
# define CONFIG_TWM4NX_MOUSE_DEVPATH "/dev/input0"
# endif
#endif #endif
#ifndef CONFIG_TWM4NX_MOUSE_BUFSIZE #ifndef CONFIG_TWM4NX_MOUSE_BUFSIZE
# ifdef CONFIG_TWM4NX_MOUSE
# define CONFIG_TWM4NX_MOUSE_BUFSIZE sizeof(struct mouse_report_s) # define CONFIG_TWM4NX_MOUSE_BUFSIZE sizeof(struct mouse_report_s)
# else
# define CONFIG_TWM4NX_MOUSE_BUFSIZE sizeof(SIZEOF_TOUCH_SAMPLE_S(1))
# endif
#endif #endif
// Keyboard device /////////////////////////////////////////////////////////// // Keyboard device ///////////////////////////////////////////////////////////