On Sun, Oct 17, 2010 at 7:38 PM,  <ch...@cnpbagwell.com> wrote:
> From: Chris Bagwell <ch...@cnpbagwell.com>
>
> usbParseEvent() is for queue'ing up events until a full sync
> window occurs.  It was also selecting a channel related
> to all queued events.
>
> Move channel selection logic to function that processes all events
> (wcmParseChannel()) since its more related to that logic then

Change "then" to  "than", to prove that I have really read the patch :).

> to queuing logic.
>
> Also, rename to wcmParseEvents() since some WCM_PROTOCOL_GENERIC

Can we rename it to usbDispatchEvents (usbParseEvents is what you used
:)?  With usbParseEvents and usbParseEvent, one of them sounds like an
typo.

I have no problem with the code chnage.

Ping

> devices can send events that need to be placed in multiple channels.
>
> Signed-off-by: Chris Bagwell <ch...@cnpbagwell.com>
> ---
>  src/wcmUSB.c |   46 ++++++++++++++++++++++++++--------------------
>  1 files changed, 26 insertions(+), 20 deletions(-)
>
> diff --git a/src/wcmUSB.c b/src/wcmUSB.c
> index c6cc98c..eb4778e 100644
> --- a/src/wcmUSB.c
> +++ b/src/wcmUSB.c
> @@ -52,7 +52,7 @@ static int usbParse(InputInfoPtr pInfo, const unsigned 
> char* data, int len);
>  static int usbDetectConfig(InputInfoPtr pInfo);
>  static void usbParseEvent(InputInfoPtr pInfo,
>        const struct input_event* event);
> -static void usbParseChannel(InputInfoPtr pInfo, int channel);
> +static void usbParseEvents(InputInfoPtr pInfo);
>  static int usbChooseChannel(WacomCommonPtr common);
>
>        WacomDeviceClass gWacomUSBDevice =
> @@ -865,7 +865,6 @@ static int usbChooseChannel(WacomCommonPtr common)
>  static void usbParseEvent(InputInfoPtr pInfo,
>        const struct input_event* event)
>  {
> -       int channel;
>        WacomDevicePtr priv = (WacomDevicePtr)pInfo->private;
>        WacomCommonPtr common = priv->common;
>        wcmUSBData* private = common->private;
> @@ -937,20 +936,8 @@ static void usbParseEvent(InputInfoPtr pInfo,
>                goto skipEvent;
>        }
>
> -       channel = usbChooseChannel(common);
> -
> -       /* couldn't decide channel? invalid data */
> -       if (channel == -1) goto skipEvent;
> -
> -       if (!common->wcmChannel[channel].work.proximity)
> -       {
> -               memset(&common->wcmChannel[channel],0,sizeof(WacomChannel));
> -               /* in case the in-prox event was missing */
> -               common->wcmChannel[channel].work.proximity = 1;
> -       }
> -
> -       /* dispatch event */
> -       usbParseChannel(pInfo,channel);
> +       /* dispatch all queued events */
> +       usbParseEvents(pInfo);
>
>  skipEvent:
>        private->wcmEventCnt = 0;
> @@ -1205,15 +1192,16 @@ static void usbParseKeyEvent(WacomCommonPtr common,
>        }
>  }
>
> -static void usbParseChannel(InputInfoPtr pInfo, int channel)
> +static void usbParseEvents(InputInfoPtr pInfo)
>  {
>        int i;
>        WacomDeviceState* ds;
>        struct input_event* event;
>        WacomDevicePtr priv = (WacomDevicePtr)pInfo->private;
>        WacomCommonPtr common = priv->common;
> -       WacomChannelPtr pChannel = common->wcmChannel + channel;
> -       WacomDeviceState dslast = pChannel->valid.state;
> +       int channel;
> +       WacomChannelPtr pChannel;
> +       WacomDeviceState dslast;
>        wcmUSBData* private = common->private;
>
>        DBG(6, common, "%d events received\n", private->wcmEventCnt);
> @@ -1222,7 +1210,25 @@ static void usbParseChannel(InputInfoPtr pInfo, int 
> channel)
>                DBG(6, common, "no real events received\n");
>                return;
>        }
> -       DBG(6, common, "%d events received\n", private->wcmEventCnt);
> +
> +       channel = usbChooseChannel(common);
> +
> +       /* couldn't decide channel? invalid data */
> +       if (channel == -1) {
> +               private->wcmEventCnt = 0;
> +               return;
> +       }
> +
> +       pChannel = common->wcmChannel + channel;
> +       dslast = pChannel->valid.state;
> +
> +       if (!common->wcmChannel[channel].work.proximity)
> +       {
> +               memset(&common->wcmChannel[channel],0,sizeof(WacomChannel));
> +
> +               /* in case the in-prox event was missing */
> +               common->wcmChannel[channel].work.proximity = 1;
> +       }
>
>        /* all USB data operates from previous context except relative values*/
>        ds = &common->wcmChannel[channel].work;
> --
> 1.7.3.1
>
>
> ------------------------------------------------------------------------------
> Download new Adobe(R) Flash(R) Builder(TM) 4
> The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly
> Flex(R) Builder(TM)) enable the development of rich applications that run
> across multiple browsers and platforms. Download your free trials today!
> http://p.sf.net/sfu/adobe-dev2dev
> _______________________________________________
> Linuxwacom-devel mailing list
> Linuxwacom-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel
>

------------------------------------------------------------------------------
Download new Adobe(R) Flash(R) Builder(TM) 4
The new Adobe(R) Flex(R) 4 and Flash(R) Builder(TM) 4 (formerly 
Flex(R) Builder(TM)) enable the development of rich applications that run
across multiple browsers and platforms. Download your free trials today!
http://p.sf.net/sfu/adobe-dev2dev
_______________________________________________
Linuxwacom-devel mailing list
Linuxwacom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

Reply via email to