On Tue, Nov 16, 2010 at 4:03 PM, Chris Bagwell <[email protected]> wrote: > Ah ha, things are becoming clearer to me by the minute on what your doing. > > Your addressing step one. A lot of my discussion was at step 5 or so.
Glad that we agreed on the first step. I have a short vision, you know ;). > I do think this is very much on the right track for creating our PAD > devices. This framework probably helps "generic tablets"; in case they > think BTN_RIGHT is what they want to send. More cleanup will follow once this patch is in. > I also grepped drivers/input and agree with all your previous findings. > Below seems to work for all cases... and even will for "cursor" if they have > BTN_FORWARD as long as they are listed first in list. Why does BTN_FORWARD have to be the first in the list? I want to have your vision too. > Instead of fixed size loop of 2, can you search until zero value so that > table can expand with no code changes? Sure I can. Will submit a new one after I hear your reply. > Besides that: > > Reviewed-by: Chris Bagwell <[email protected]> Thank you. Ping > > On Tue, Nov 16, 2010 at 3:47 PM, Ping Cheng <[email protected]> wrote: >> >> From: Ping Cheng <[email protected]> >> >> They said using BTN_TOOL_FINGER is too confusing. But we still >> need to configure those tablet buttons and strips/ring. Let's >> detect the actual buttons we are going to receive to determine >> the existence of a pad tool. >> >> BTN_0 and BTN_FORWARD are the two unique BTN_s that we use for >> tablet buttons in the kernel driver. >> >> Signed-off-by: Ping Cheng <[email protected]> >> --- >> src/wcmUSB.c | 3 ++- >> src/wcmValidateDevice.c | 41 ++++++++++++++++++++++++----------------- >> 2 files changed, 26 insertions(+), 18 deletions(-) >> >> diff --git a/src/wcmUSB.c b/src/wcmUSB.c >> index 4d8a0fb..98d3c05 100644 >> --- a/src/wcmUSB.c >> +++ b/src/wcmUSB.c >> @@ -846,7 +846,8 @@ static struct >> { CURSOR_ID, BTN_TOOL_LENS }, >> { TOUCH_ID, BTN_TOOL_DOUBLETAP }, >> { TOUCH_ID, BTN_TOOL_TRIPLETAP }, >> - { PAD_ID, BTN_TOOL_FINGER } >> + { PAD_ID, BTN_FORWARD }, >> + { PAD_ID, BTN_0 } >> }; >> >> #define MOD_BUTTONS(bit, value) do { \ >> diff --git a/src/wcmValidateDevice.c b/src/wcmValidateDevice.c >> index 0968991..0adcab3 100644 >> --- a/src/wcmValidateDevice.c >> +++ b/src/wcmValidateDevice.c >> @@ -120,20 +120,20 @@ ret: >> static struct >> { >> const char* type; >> - __u16 tool; >> + __u16 tool [2]; >> } wcmType [] = >> { >> - { "stylus", BTN_TOOL_PEN }, >> - { "eraser", BTN_TOOL_RUBBER }, >> - { "cursor", BTN_TOOL_MOUSE }, >> - { "touch", BTN_TOOL_DOUBLETAP }, >> - { "pad", BTN_TOOL_FINGER } >> + { "stylus", { BTN_TOOL_PEN, 0 } }, >> + { "eraser", { BTN_TOOL_RUBBER, 0 } }, >> + { "cursor", { BTN_TOOL_MOUSE, 0 } }, >> + { "touch", { BTN_TOOL_DOUBLETAP, 0 } }, >> + { "pad", { BTN_FORWARD, BTN_0 } } >> }; >> >> /* validate tool type for device/product */ >> Bool wcmIsAValidType(InputInfoPtr pInfo, const char* type) >> { >> - int j, ret = FALSE; >> + int j, k, ret = FALSE; >> WacomDevicePtr priv = (WacomDevicePtr)pInfo->private; >> WacomCommonPtr common = priv->common; >> char* dsource = xf86CheckStrOption(pInfo->options, "_source", ""); >> @@ -146,17 +146,24 @@ Bool wcmIsAValidType(InputInfoPtr pInfo, const char* >> type) >> { >> if (!strcmp(wcmType[j].type, type)) >> { >> - if (ISBITSET (common->wcmKeys, wcmType[j].tool)) >> + for (k = 0; k < 2; k++) >> { >> - ret = TRUE; >> - break; >> - } >> - else if (!strlen(dsource)) /* an user defined type >> */ >> - { >> - /* assume it is a valid type */ >> - SETBIT(common->wcmKeys, wcmType[j].tool); >> - ret = TRUE; >> - break; >> + if (!wcmType[j].tool[k]) >> + { >> + break; >> + } >> + if (ISBITSET (common->wcmKeys, >> wcmType[j].tool[k])) >> + { >> + ret = TRUE; >> + break; >> + } >> + else if (!strlen(dsource)) /* an user >> defined type */ >> + { >> + /* assume it is a valid type */ >> + SETBIT(common->wcmKeys, >> wcmType[j].tool[k]); >> + ret = TRUE; >> + break; >> + } >> } >> } >> } >> -- >> 1.7.2.3 >> > > ------------------------------------------------------------------------------ Beautiful is writing same markup. Internet Explorer 9 supports standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3. Spend less time writing and rewriting code and more time creating great experiences on the web. Be a part of the beta today http://p.sf.net/sfu/msIE9-sfdev2dev _______________________________________________ Linuxwacom-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel
