mirror of
https://github.com/apache/nuttx.git
synced 2026-06-07 09:18:00 +08:00
Enable keypad input
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1411 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
@@ -94,7 +94,7 @@ int nx_kbdchin(NXHANDLE handle, ubyte ch)
|
||||
outmsg.nch = 1;
|
||||
outmsg.ch[0] = ch;
|
||||
|
||||
ret = mq_send(conn->c_cwrmq, &outmsg, sizeof(struct nxsvrmsg_kbdin_s), NX_SVRMSG_PRIO);
|
||||
ret = mq_send(conn->cwrmq, &outmsg, sizeof(struct nxsvrmsg_kbdin_s), NX_SVRMSG_PRIO);
|
||||
if (ret < 0)
|
||||
{
|
||||
gdbg("mq_send failed: %d\n", errno);
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <stdlib.h>
|
||||
#include <errno.h>
|
||||
#include <debug.h>
|
||||
|
||||
@@ -82,7 +83,7 @@
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int int nx_kbdin(NXHANDLE handle, ubyte nch const char *ch)
|
||||
int nx_kbdin(NXHANDLE handle, ubyte nch, FAR const ubyte *ch)
|
||||
{
|
||||
FAR struct nxfe_conn_s *conn = (FAR struct nxfe_conn_s *)handle;
|
||||
FAR struct nxsvrmsg_kbdin_s *outmsg;
|
||||
@@ -104,15 +105,15 @@ int int nx_kbdin(NXHANDLE handle, ubyte nch const char *ch)
|
||||
|
||||
/* Inform the server of the new keypad data */
|
||||
|
||||
outsg->msgid = NX_SVRMSG_KBDIN;
|
||||
outmsg->nch = nch;
|
||||
outmsg->msgid = NX_SVRMSG_KBDIN;
|
||||
outmsg->nch = nch;
|
||||
|
||||
for (i = 0; i < nch; i+)
|
||||
for (i = 0; i < nch; i++)
|
||||
{
|
||||
outmsg->ch[i] = ch[i];
|
||||
}
|
||||
|
||||
ret = mq_send(conn->c_cwrmq, outmsg, size, NX_SVRMSG_PRIO);
|
||||
ret = mq_send(conn->cwrmq, outmsg, size, NX_SVRMSG_PRIO);
|
||||
if (ret < 0)
|
||||
{
|
||||
gdbg("mq_send failed: %d\n", errno);
|
||||
|
||||
@@ -237,11 +237,11 @@ struct nxclimsg_mousein_s
|
||||
/* This message reports a new keypad event to a particular window */
|
||||
|
||||
#ifdef CONFIG_NX_KBD
|
||||
struct nxclimsg_key
|
||||
struct nxclimsg_kbdin_s
|
||||
{
|
||||
uint32 msgid; /* NX_CLIMSG_KBDIN */
|
||||
FAR struct nxbe_window_s *wnd; /* The handle of window receiving keypad input */
|
||||
ubyte nch /* Number of characters received */
|
||||
ubyte nch; /* Number of characters received */
|
||||
ubyte ch[1]; /* Array of received characters */
|
||||
};
|
||||
#endif
|
||||
@@ -408,7 +408,7 @@ struct nxsvrmsg_mousein_s
|
||||
struct nxsvrmsg_kbdin_s
|
||||
{
|
||||
uint32 msgid; /* NX_SVRMSG_KBDIN */
|
||||
ubyte nch /* Number of characters received */
|
||||
ubyte nch ; /* Number of characters received */
|
||||
ubyte ch[1]; /* Array of received characters */
|
||||
};
|
||||
#endif
|
||||
@@ -613,7 +613,7 @@ EXTERN int nxmu_mousein(FAR struct nxfe_state_s *fe,
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_NX_KBD
|
||||
EXTERN void nxmu_kbdin(FAR struct nxfe_state_s *fe, ubyte nch, ubyte *ch);
|
||||
EXTERN void nxmu_kbdin(FAR struct nxfe_state_s *fe, ubyte nch, FAR ubyte *ch);
|
||||
#endif
|
||||
|
||||
#undef EXTERN
|
||||
|
||||
+10
-10
@@ -40,6 +40,7 @@
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <stdlib.h>
|
||||
#include <errno.h>
|
||||
#include <debug.h>
|
||||
|
||||
@@ -82,10 +83,9 @@
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
void nxmu_kbdin(FAR struct nxs_server_s *svr, ubyte nch, ubyte *ch)
|
||||
void nxmu_kbdin(FAR struct nxfe_state_s *fe, ubyte nch, FAR ubyte *ch)
|
||||
{
|
||||
struct nxbe_window_s *wnd;
|
||||
FAR struct nxclimgs_kbdin_s *outmsg;
|
||||
FAR struct nxclimsg_kbdin_s *outmsg;
|
||||
int size;
|
||||
int ret;
|
||||
int i;
|
||||
@@ -94,22 +94,22 @@ void nxmu_kbdin(FAR struct nxs_server_s *svr, ubyte nch, ubyte *ch)
|
||||
* character data.
|
||||
*/
|
||||
|
||||
size = sizeof(struct nxclimgs_kbdin_s) + nch - 1;
|
||||
outmsg = (FAR struct nxclimgs_kbdin_s *)malloc(size);
|
||||
size = sizeof(struct nxclimsg_kbdin_s) + nch - 1;
|
||||
outmsg = (FAR struct nxclimsg_kbdin_s *)malloc(size);
|
||||
if (outmsg)
|
||||
{
|
||||
/* Give the keypad input only to the top child */
|
||||
|
||||
outsg->msgid = NX_SVRMSG_KBDIN;
|
||||
outmsg->wnd = svr->topwnd;
|
||||
outmsg->nch = nch;
|
||||
outmsg->msgid = NX_CLIMSG_KBDIN;
|
||||
outmsg->wnd = fe->be.topwnd;
|
||||
outmsg->nch = nch;
|
||||
|
||||
for (i = 0; i < nch; i+)
|
||||
for (i = 0; i < nch; i++)
|
||||
{
|
||||
outmsg->ch[i] = ch[i];
|
||||
}
|
||||
|
||||
ret = mq_send(svr->topwnd->conn->swrmq, outmsg, size, NX_SVRMSG_PRIO);
|
||||
ret = mq_send(fe->be.topwnd->conn->swrmq, outmsg, size, NX_SVRMSG_PRIO);
|
||||
if (ret < 0)
|
||||
{
|
||||
gdbg("mq_send failed: %d\n", errno);
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int int nx_kbdin(NXHANDLE handle, ubyte nch const char *ch)
|
||||
int nx_kbdin(NXHANDLE handle, ubyte nch, FAR const ubyte *ch)
|
||||
{
|
||||
FAR struct nxfe_state_s *fe = (FAR struct nxfe_state_s *)handle;
|
||||
FAR struct nxbe_window_s *wnd = fe->be.topwnd;
|
||||
@@ -92,7 +92,7 @@ int int nx_kbdin(NXHANDLE handle, ubyte nch const char *ch)
|
||||
|
||||
if (wnd->cb->kbdin)
|
||||
{
|
||||
wnd->cb->kbdin(wnd, kbd->nch, kbd->ch, wnd->arg);
|
||||
wnd->cb->kbdin(wnd, nch, ch, wnd->arg);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@ static void nxtk_mousein(NXWINDOW hwnd, FAR const struct nxgl_point_s *pos,
|
||||
ubyte buttons, FAR void *arg);
|
||||
#endif
|
||||
#ifdef CONFIG_NX_KBD
|
||||
static void nxtk_kbdin(NXWINDOW hwnd, ubyte nch, const ubyte *ch);
|
||||
static void nxtk_kbdin(NXWINDOW hwnd, ubyte nch, const ubyte *ch, FAR void *arg);
|
||||
#endif
|
||||
|
||||
/****************************************************************************
|
||||
@@ -91,7 +91,7 @@ const struct nx_callback_s g_nxtkcb =
|
||||
, nxtk_mousein /* mousein */
|
||||
#endif
|
||||
#ifdef CONFIG_NX_KBD
|
||||
, nxtk_kbdin1 /* kbdin */
|
||||
, nxtk_kbdin /* kbdin */
|
||||
#endif
|
||||
};
|
||||
|
||||
@@ -252,7 +252,7 @@ static void nxtk_mousein(NXWINDOW hwnd, FAR const struct nxgl_point_s *pos,
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_NX_KBD
|
||||
static void nxtk_kbdin(NXWINDOW hwnd, ubyte nch, const ubyte *ch)
|
||||
static void nxtk_kbdin(NXWINDOW hwnd, ubyte nch, const ubyte *ch, FAR void *arg)
|
||||
{
|
||||
FAR struct nxtk_framedwindow_s *fwnd = (FAR struct nxtk_framedwindow_s *)hwnd;
|
||||
|
||||
@@ -260,7 +260,7 @@ static void nxtk_kbdin(NXWINDOW hwnd, ubyte nch, const ubyte *ch)
|
||||
|
||||
if (fwnd->fwcb->kbdin)
|
||||
{
|
||||
fwnd->fwcb->kbdin((NXTKWINDOW)fwnd, nch, ch);
|
||||
fwnd->fwcb->kbdin((NXTKWINDOW)fwnd, nch, ch, fwnd->fwarg);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user