dinput: joydevs[id].name (EVIOCGNAME) is product name, joydevs[id].device is a path

Vitaliy Margolen wine-devel at kievinfo.com
Sat Feb 7 12:25:56 CST 2009


Vincent Pelletier wrote:
> joydevs[id].name value comes from EVIOCGNAME iotcl, and is the product name.
> 
> I think joystick device path qualifies as a "Friendly name for the instance" 
> (as defined for tszInstanceName on MSDN).
> 
> If not, please tell me and I will extend the patch to generate a "Joystick %i" 
> name, or maybe put joydevs[id].name in both fields.
> 
> -    strcpy(lpddi->tszInstanceName, joydevs[id].name);
> -    strcpy(lpddi->tszProductName, joydevs[id].device);
> +    strcpy(lpddi->tszInstanceName, joydevs[id].device);
> +    strcpy(lpddi->tszProductName, joydevs[id].name);

No this is not entirely correct. Native doesn't return any device paths. But
it does return proper joystick name:

Wine:
 Instance: Logitech Logitech Dual Action
 ProductName: /dev/input/event7

Win XP:
 Instance: Logitech Dual Action USB
 ProductName: Logitech Dual Action USB

Another joystick:
Wine:
 Instance: Logitech  Logitech MOMO Racing
 ProductName: /dev/input/event7

Win XP:
 Instance: Logitech MOMO Racing USB
 ProductName: Logitech MOMO Racing USB

So I'd suggest copying name into both places. I think some applications
looking for particular information there. And append "evdev?" at the end so
we can tell how it's handled.

Vitaliy.



More information about the wine-devel mailing list