Acked-by: Ping Cheng <[email protected]>

Ping

On Mon, May 31, 2010 at 8:41 PM, Peter Hutterer
<[email protected]> wrote:
> This allows for the configuration of dependent devices by creating the
> appropriate match rules. Note that for the input attributes - just as for
> the device name - the type is simply appended to the end of the product
> name.
>
> Signed-off-by: Peter Hutterer <[email protected]>
> ---
> Note, this is the patch I sent out as RFC a few days or weeks back. Some
> parts (duplication of attributes) have moved into the server, making the
> patch a lot simpler.
>
> This requires an X server from git master.
>
>  src/wcmValidateDevice.c |   33 ++++++++++++++++++++++++++++++++-
>  1 files changed, 32 insertions(+), 1 deletions(-)
>
> diff --git a/src/wcmValidateDevice.c b/src/wcmValidateDevice.c
> index eddc113..61abd8c 100644
> --- a/src/wcmValidateDevice.c
> +++ b/src/wcmValidateDevice.c
> @@ -300,6 +300,26 @@ static void wcmFreeInputOpts(InputOption* opts)
>        }
>  }
>
> +#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 11
> +/**
> + * Duplicate the attributes of the given device. "product" gets the type
> + * appended, so a device of product "Wacom" will then have a product "Wacom
> + * eraser", "Wacom cursor", etc.
> + */
> +static InputAttributes* wcmDuplicateAttributes(LocalDevicePtr local,
> +                                              const char *type)
> +{
> +       InputAttributes *attr;
> +       attr = DuplicateInputAttributes(local->attrs);
> +                                                       /* add one space, one 
> \0 */
> +       attr->product = realloc(attr->product, strlen(attr->product) + 
> strlen(type) + 2);
> +       strcat(attr->product, " ");
> +       strcat(attr->product, type);
> +
> +       return attr;
> +}
> +#endif
> +
>  /**
>  * Hotplug one device of the given type.
>  * Device has the same options as the "parent" device, type is one of
> @@ -310,15 +330,26 @@ static void wcmHotplug(LocalDevicePtr local, const char 
> *type)
>  {
>        DeviceIntPtr dev; /* dummy */
>        InputOption *input_options;
> +#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 9
> +       InputAttributes *attrs = NULL;
> +#endif
>
>        input_options = wcmOptionDupConvert(local, type);
>
> +#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 11
> +       attrs = wcmDuplicateAttributes(local, type);
> +#endif
> +
>        NewInputDeviceRequest(input_options,
>  #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 9
> -                               NULL,
> +                               attrs,
>  #endif
>                                &dev);
>        wcmFreeInputOpts(input_options);
> +
> +#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 11
> +       FreeInputAttributes(attrs);
> +#endif
>  }
>
>  void wcmHotplugOthers(LocalDevicePtr local)
> --
> 1.6.5.2
>
> ------------------------------------------------------------------------------
>
> _______________________________________________
> Linuxwacom-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel
>

------------------------------------------------------------------------------

_______________________________________________
Linuxwacom-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

Reply via email to