40 #include <nuttx/config.h> 96 (void)pthread_kill(
m_thread, CONFIG_NXWM_KEYBOARD_SIGNO);
116 ginfo(
"Starting listener\n");
120 (void)pthread_attr_init(&attr);
122 struct sched_param param;
123 param.sched_priority = CONFIG_NXWM_KEYBOARD_LISTENERPRIO;
124 (void)pthread_attr_setschedparam(&attr, ¶m);
126 (void)pthread_attr_setstacksize(&attr, CONFIG_NXWM_KEYBOARD_LISTENERSTACK);
133 gerr(
"ERROR: CKeyboard::start: pthread_create failed: %d\n", ret);
155 ginfo(
"Listener m_state=%d\n", (
int)
m_state);
185 fd = std::open(CONFIG_NXWM_KEYBOARD_DEVPATH, O_RDONLY);
189 DEBUGASSERT(errcode > 0);
194 if (errcode != EINTR)
196 #ifdef CONFIG_NXWM_KEYBOARD_USBHOST 202 if (errcode == ENOENT || errcode == ENODEV)
210 ginfo(
"WAITING for a USB device\n");
222 gerr(
"ERROR: Failed to open %s for reading: %d\n",
223 CONFIG_NXWM_KEYBOARD_DEVPATH, errcode);
249 ginfo(
"Session started\n");
257 ginfo(
"Listening for keyboard input\n");
259 uint8_t rxbuffer[CONFIG_NXWM_KEYBOARD_BUFSIZE];
260 ssize_t nbytes = read(
m_kbdFd, rxbuffer,
261 CONFIG_NXWM_KEYBOARD_BUFSIZE);
268 DEBUGASSERT(errcode > 0);
274 if (errcode != EINTR)
279 gerr(
"ERROR: read %s failed: %d\n",
280 CONFIG_NXWM_KEYBOARD_DEVPATH, errcode);
284 fwarn(
"WARNING: Awakened with EINTR\n");
298 int ret = nx_kbdin(handle, (uint8_t)nbytes, rxbuffer);
301 gerr(
"ERROR: nx_kbdin failed: %d\n", ret);
329 ginfo(
"Listener started\n");
331 #ifdef CONFIG_NXWM_KEYBOARD_USBHOST 348 gerr(
"ERROR: open failed: %d\n", This->
m_kbdFd);
351 return (FAR
void *)0;
354 #ifndef CONFIG_NXWM_KEYBOARD_USBHOST 370 #ifdef CONFIG_NXWM_KEYBOARD_USBHOST 373 ferr(
"ERROR: CKeyboard::session() returned %d\n", ret);
378 DEBUGASSERT(ret == OK);
384 (void)std::close(This->
m_kbdFd);
392 ginfo(
"Listener exiting\n");
394 return (FAR
void *)0;
enum EListenerState m_state
CKeyboard(NXWidgets::CNxServer *server)
static FAR void * listener(FAR void *arg)
NXWidgets::CNxServer * m_server