On Thu, Feb 3, 2011 at 4:55 PM, Ping Cheng <pingli...@gmail.com> wrote:
> On Thu, Feb 3, 2011 at 2:09 PM, Chris Bagwell <ch...@cnpbagwell.com> wrote:
>>
>>> What limitation or benefit do we offer to application by not sending
>>> or sending DOUBLETAP? I think I fundamentally missed this part.
>>
>> Benefit of acting like touchscreen: Works with xf86-input-evdev and
>> any pre-existing touchscreen apps.
>
> We agreed on this already.
>
>> Benefit of sending DOUBLETAP: Since aligns with touchscreen events,
>> works with all pre-existing touchscreen apps that understand 2-finger
>> gestures via DOUBLETAP.
>
> So, you mean without the actual (x,y) or even a bounding box, the apps
> can post gesture events via DOUBLETAP? That would limit the
> differentiation between 1FGT and 2FGT, I think. If you see
> applications using DOUBLETAP now, We'll add it.
>
>> Benefit of NOT sending DOUBLETAP:  Nuetral for us. It neither helps
>> nor hurts xf86-input-wacom.  It is negative/limitation for input
>> drivers that could have made use of DOUBLETAP though.
>
> No, it is not a problem for xf86-input-wacom. It is how we support
> other xf86-input drivers and the apps that want to talk to the kernel
> driver directly. As I said above, I have no problem to post DOUBLETAP
> if there are apps using it. Please share a few examples here.
>
>>>> I *think* I mentioned that I think wacom_w8001.c's current behaviour
>>>> is wrong and we should not follow it for TPC.  Its trying to separate
>>>> events into two classes; similar to Protocol 4/5's stylus vs. mouse vs
>>>> pad classes.  It uses ABS_X/ABS_Y for stylus and ABS_MT_ for touch.
>>>
>>> Yes, you mentioned that and I read it again ;). wacom_w8001.c reports
>>> ABS_X/ABS_Y for touch. It has to since it supports single touch
>>> devices.
>>
>> Can you point me at repo/branch that has latest acceppted wacom_w8001
>> patches?  I looked at a few places and could only find the pre-1FGT
>> version.
>
> It's in Linus' tree:
> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob_plain;f=drivers/input/touchscreen/wacom_w8001.c;hb=HEAD.

What do you know.  I book marked something that doesn't point to HEAD.
 That explains some things. :)  I see the committed code now.


>
> I'll get to your other comments after you surf the code. Basically, I
> didn't post DOUBLETAP since I didn't see an use to it except in
> xf86-input-synaptics, which is not for touchscreen.
>
> It is good that I understand why you wanted DOUBLETAP. Hope you know
> why I didn't want to - I didn't want to post an event that no one
> needs it.

So we are talking about 2FGT case since we are talking about
DOUBLETAP.  Your declaring BTN_TOUCH and BTN_TOOL_FINGER for any touch
(I think).  The only think I'm talking about is adding:

                __set_bit(BTN_TOOL_DOUBLETAP, dev->keybit);

under "case 5" for 2FGT case.  Since you are making use of:

                input_mt_report_pointer_emulation(dev, true);

It automatically sends BTN_TOOL_FINGER vs. BTN_TOOL_DOUBLETAP at
correct time.  It expects any sane pointer emulation should be
declaring DOULETAP/TRIPLETAP/QUADTAP based on finger count it can
detect and then it sends correct thing on your behave.  It wasn't
really intended to bypass that step; just a "feature" that it could be
bypassed.

Chris

>
> Thank you,
>
> Ping
>
>>>> I think this approach is fundamentally wrong.  It should be reporting
>>>> both stylus and touch (cursor emulation for touch) over ABS_X/ABS_Y
>>>> and then multi-touch events duplicated into ABS_MT*.
>>>
>>> It reports ABS_X/ABS_Y for 1FGT (has to) and 2FGT (for legacy client
>>> support) devcices. We discussed that a few rounds at linux-input. I
>>> thought you were happy with the decision.
>>
>> OK, thats great.  I just haven't seen the final commit yet so thought
>> there were still at no ABS_X/ABS_Y for 2FGT.
>>
>>>
>>>> Until its at that point, I agree it makes no sense for it to report
>>>> BTN_TOOL_FINGER or BTN_TOOL_DOUBLETAP for wacom_w8001.  I also realize
>>>> that the way I think wacom_w8001 kernel *should* behave would be
>>>> harder for xf86-input-wacom to work with; but only slightly.
>>>
>>> For wacom_w8001.c, BTN_TOOL_FINGER is needed to support ST.
>>> wacom_w8001.c supports 4 types of devices: pen-only, 1FGT and pen,
>>> 2FGT and pen, and 2FGT-only. Since pen and touch are on the same
>>> point, without BTN_TOOL_FINGER, there is no way for us to tell if the
>>> event is from touch or pen when both pen and touch are supported for
>>> the same device. I think I mentioned this more than once ;)
>>
>> Fair enough.  But its hard to speak until I find the branch to review.
>>
>>>
>>> However, BTN_TOOL_DOUBLETAP is different. It doesn't provide any
>>> features except tell userland they are getting two contacts. For
>>> legacy support, we only need to worry about 1FGT. Or maybe I am
>>> missing something?
>>
>> Presumably, your doing pointer emulation for 2 finger touch in
>> wacom_w8001?  I mean basically its reporting oldest touch in
>> ABS_X/ABS_Y values?  Then one reason (among a few others) to send
>> DOUBLETAP is it informs userland to expect a jump in ABS_X/ABS_Y
>> values when lifting 1st finger before 2nd finger.
>>
>> This allows apps to make a choice.  Does cursor stay were it was in
>> this case or jump immediately to 2nd finger location?  Probably it was
>> in gesture mode and I'd hold cursor movement in this case until user
>> either retouches 1st figure or removes both.
>>
>> By NOT sending DOUBLETAP, your not helping or hurting
>> xf86-input-wacom.  It can deal with it either way since its looking at
>> MT in this case and ignoring both FINGER and DOUBLETAP.
>>
>> But your also limiting user's design choices on how they can use
>> wacom_w8001 input with other applications... and limiting them for not
>>  any reason I can see why.
>>
>> So my opposite question to you is why would you NOT want to send DOUBLETAP?
>>
>> Thanks,
>> Chris
>>
>>>
>>> I will not do anything "fundamentally wrong" before I get your
>>> approval ;). Trust me.
>>>
>>> Ping
>>>
>>
>

------------------------------------------------------------------------------
The modern datacenter depends on network connectivity to access resources
and provide services. The best practices for maximizing a physical server's
connectivity to a physical network are well understood - see how these
rules translate into the virtual world? 
http://p.sf.net/sfu/oracle-sfdevnlfb
_______________________________________________
Linuxwacom-devel mailing list
Linuxwacom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

Reply via email to