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
