On Sun, Dec 16, 2012 at 1:40 PM, Chris Bagwell <ch...@cnpbagwell.com> wrote:
>
>
>
> On Thu, Dec 13, 2012 at 2:18 PM, Ping Cheng <pingli...@gmail.com> wrote:
>
>> If we wait until we finish other verifications, we could miss
>> PAD events since they will be filtered out when there are no
>> motion events sent simultaneously.
>>
>
>
>> Signed-off-by: Ping Cheng <pingli...@gmail.com>
>> Acked-by: Jason Gerecke <killert...@gmail.com>
>> ---
>> src/wcmUSB.c | 13 +++++++++++++
>> 1 file changed, 13 insertions(+)
>>
>> diff --git a/src/wcmUSB.c b/src/wcmUSB.c
>> index 0ea2093..f15a6a2 100644
>> --- a/src/wcmUSB.c
>> +++ b/src/wcmUSB.c
>> @@ -1655,6 +1655,19 @@ static void usbDispatchEvents(InputInfoPtr pInfo)
>> {
>> usbParseKeyEvent(common, event, channel);
>> usbParseBTNEvent(common, event,
>> private->wcmBTNChannel);
>> +
>> + /* send PAD events now for generic devices.
>> Otherwise,
>> + * they are filtered out when there are no motion
>> events.
>> + */
>> + if ((common->wcmProtocolLevel ==
>> WCM_PROTOCOL_GENERIC)
>> + &&
>> (common->wcmChannel[private->wcmBTNChannel].dirty))
>> + {
>> + DBG(10, common, "Dirty flag set on
>> channel %d; "
>> + "sending event.\n",
>> private->wcmBTNChannel);
>> +
>> common->wcmChannel[private->wcmBTNChannel].dirty = FALSE;
>> + wcmEvent(common, private->wcmBTNChannel,
>> +
>> &common->wcmChannel[private->wcmBTNChannel].work);
>> + }
>>
>
>
> I don't understand this one. How are they "filtered" out? Is
> usbDispatchEvents() returning early or is it some other function?
>
It is returned immediarely by the next if statement since both device_type
and proximity are zero when no touch events.
I can tell from the if() that its a Generic device... which one though?
>
All generic devices that support PAD the new way in the kernel.
> I suspect the events get ignored because we are not initlizing the ds
> structure correctly. I'd prefer to get that resolved instead of
> duplicating logic in two places.
>
For generic PAD, we can not initialize ds correctly. There is no ds for
generic PAD. It is ride on one of the touch points, normally the first one.
> Or if we decide this route is best/easiest then I'd prefer if we at least
> move all Button processing earlier and then at the for() loop below we skip
> over button channel always.
>
Other PADs do not need this route since they have their own channel (ds).
Ping
------------------------------------------------------------------------------
LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial
Remotely access PCs and mobile devices and provide instant support
Improve your efficiency, and focus on delivering more value-add services
Discover what IT Professionals Know. Rescue delivers
http://p.sf.net/sfu/logmein_12329d2d
_______________________________________________
Linuxwacom-devel mailing list
Linuxwacom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel