<div dir="ltr"><div class="im" style="font-family:arial,sans-serif;font-size:13px"><div>> My 2c is that this is more of an issue than SDL. Using SDL is probably</div><div>> fine if there are good arguments that support its use and the</div>
<div>> Wine-internal layering makes sure that xinput_*.dll, dinput</div><div>> and winmm see the same joystick configuration. You could think about</div><div>> calling SDL from winex11.drv or dinput.</div><div><br>
</div></div><div style="font-family:arial,sans-serif;font-size:13px">I think you missed the point completely here. </div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">
Example I posted link for is not if you see/can use device or you don't as device is visible full time. Games use this code to decide which interface they use that way to run, DInput or XInput. And since that code does following</div>
<div style="font-family:arial,sans-serif;font-size:13px">- enumerate all DInput visible devices (XInput are exposed there too)</div><div style="font-family:arial,sans-serif;font-size:13px">---- for each DInput device check if it is XInput</div>
<div style="font-family:arial,sans-serif;font-size:13px">------ for each passed DInput device parse trough all system devices and when you find it (!!!!!)</div><div style="font-family:arial,sans-serif;font-size:13px">-------- check if device ID contains "IG_", if it does lets proclaim this XInput compatible</div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">now if any of devices was XInput compatible LoadLibrary ("XInput1_3.dll") and use XInput API, if there was no compatible device then LoadLibrary ("DInput.dll") and use DInput API. This all happens in game, not in Windows or Wine. In wine case, NO compatible device is reported<br>
</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">(!!!!!) - This part is where my question was aiming for, which part of wine creates devices here, so I wouldn't need to hack CoSetProxyBlanket</div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">This part has nothing to do with DInput or XInput. Wine simply doesn't provide XInput compatible device when game parses them with CoSetProxyBlanket setup enumeration</div>
<div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Maybe you missed it before "<i><u><span style="color:rgb(69,69,69);font-family:'Segoe UI','Lucida Grande',Verdana,Arial,Helvetica,sans-serif;font-size:14px;line-height:20.006000518798828px">If you want your game to support legacy </span><a href="http://msdn.microsoft.com/en-us/library/windows/desktop/ee416842(v=vs.85).aspx" target="_blank" style="color:rgb(0,24,143);font-family:'Segoe UI Semibold','Segoe UI','Lucida Grande',Verdana,Arial,Helvetica,sans-serif;font-size:14px;line-height:20.006000518798828px">DirectInput</a></u></i><span style="color:rgb(69,69,69);font-family:'Segoe UI','Lucida Grande',Verdana,Arial,Helvetica,sans-serif;font-size:14px;line-height:20.006000518798828px"><i><u> devices, you may use DirectInput and XInput side by side. When enumerating your DirectInput devices, all DirectInput devices will enumerate correctly. All XInput devices will show up as both XInput and DirectInput devices, but they should not be handled through DirectInput. You will need to determine which of your DirectInput devices are legacy devices, and which are XInput devices, and remove them from the enumeration of DirectInput devices.</u></i>" From same page</span></div>
<div class="im" style="font-family:arial,sans-serif;font-size:13px"><div><span style="color:rgb(69,69,69);font-family:'Segoe UI','Lucida Grande',Verdana,Arial,Helvetica,sans-serif;font-size:14px;line-height:20.006000518798828px"><br>
</span></div><div>> I guess here you mean the X input extension rather than Microsoft's<br>> xinput_*.dll, right? I guess XInput works better in remote X11<br>> situations than anything SDL, /dev/js* or /dev/event/* based. (But tbh I<br>
> don't really know how SDL talks to the joystick.)<br></div><div><br></div></div><div style="font-family:arial,sans-serif;font-size:13px">No, I meant exactly what I said. XInput is terribly deficient API. And as far as remote situations, X11 has way too terrible remote display to be usable for game in 50x50 resolution, way off some normal</div>
<table cellpadding="0" style="font-family:arial,sans-serif;font-size:13px"><tbody><tr><td style="width:475px"><table cellpadding="0" style="width:475px"><tbody><tr><td><h3><span name="Vincent Povirk" style="font-size:13px">@Vincent Povirk</span></h3>
</td></tr></tbody></table></td></tr></tbody></table><div class="im" style="font-family:arial,sans-serif;font-size:13px"><div>> From what I could tell, SDL has a game controller api that's very<br>> similar to xinput, which is pretty nice, and it can be configured to<br>
> map to any controller.<br></div><div><br></div></div><div style="font-family:arial,sans-serif;font-size:13px"><font face="arial, sans-serif">It goes further, you can access same device as Joystick and handle axis and buttons manually or you can access it as Gamepad and have instant correct axis/button mapping. Not to mention haptic in XInput is downright terribly deficient (set left/right, ok it works), SDL is downright brilliant on haptic handling</font></div>
<div style="font-family:arial,sans-serif;font-size:13px"><font face="arial, sans-serif"><br></font></div><div style="font-family:arial,sans-serif;font-size:13px"><font face="arial, sans-serif"><br></font></div><div style="font-family:arial,sans-serif;font-size:13px">
Since I'm not native english speaker, some parts might sound like I would try to persuade in use of SDL. If it does, I sincerely apologize and believe me... I don't, I'm honestly only interested in my question regarding who/where creates devices in CoSetProxyBlanket part</div>
<div style="font-family:arial,sans-serif;font-size:13px"><font face="arial, sans-serif"><br></font></div><div style="font-family:arial,sans-serif;font-size:13px"><font face="arial, sans-serif"><br></font></div><div style="font-family:arial,sans-serif;font-size:13px">
<font face="arial, sans-serif">p.s. sorry for double message Stefan, accidentally only sent response to you and not to list</font></div><div style="font-family:arial,sans-serif;font-size:13px"><font face="arial, sans-serif"><br>
</font></div><div style="font-family:arial,sans-serif;font-size:13px"><font face="arial, sans-serif">with regards</font></div><div style="font-family:arial,sans-serif;font-size:13px"><font face="arial, sans-serif">wh1sper_123</font></div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On 28 July 2014 20:43, akjsdfk sdkfnskd <span dir="ltr"><<a href="mailto:wh1sper.123.wtfit@gmail.com" target="_blank">wh1sper.123.wtfit@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class=""><div>> My 2c is that this is more of an issue than SDL. Using SDL is probably</div><div>
> fine if there are good arguments that support its use and the</div><div>> Wine-internal layering makes sure that xinput_*.dll, dinput</div>
<div>> and winmm see the same joystick configuration. You could think about</div><div>> calling SDL from winex11.drv or dinput.</div><div><br></div></div><div>I think you missed the point completely here. </div><div>
<br></div>
<div>Example I posted link for is not if you see/can use device or you don't as device is visible full time. Games use this code to decide which interface they use that way to run, DInput or XInput. And since that code does following</div>

<div>- enumerate all DInput visible devices (XInput are exposed there too)</div><div>---- for each DInput device check if it is XInput</div><div>------ for each passed DInput device parse trough all system devices and when you find it (!!!!!)</div>

<div>-------- check if device ID contains "IG_", if it does lets proclaim this XInput compatible</div><div><br></div><div>now if any of devices was XInput compatible LoadLibrary ("XInput1_3.dll") and use XInput API, if there was no compatible device then LoadLibrary ("DInput.dll") and use DInput API. This all happens in game, not in Windows or Wine. In wine case, NO compatible device is reported<br>

</div><div><br></div><div>(!!!!!) - This part is where my question was aiming for, which part of wine creates devices here, so I wouldn't need to hack CoSetProxyBlanket</div><div><br></div><div>This part has nothing to do with DInput or XInput. Wine simply doesn't provide XInput compatible device when game parses them with <span style="font-family:arial,sans-serif;font-size:13px">CoSetProxyBlanket setup enumeration</span></div>

<div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">Maybe you missed it before "</span><i><u><span style="color:rgb(69,69,69);font-family:'Segoe UI','Lucida Grande',Verdana,Arial,Helvetica,sans-serif;font-size:14px;line-height:20.006000518798828px">If you want your game to support legacy </span><a href="http://msdn.microsoft.com/en-us/library/windows/desktop/ee416842(v=vs.85).aspx" style="font-family:'Segoe UI Semibold','Segoe UI','Lucida Grande',Verdana,Arial,Helvetica,sans-serif;font-size:14px;line-height:20.006000518798828px;color:rgb(0,24,143)" target="_blank">DirectInput</a></u></i><span style="color:rgb(69,69,69);font-family:'Segoe UI','Lucida Grande',Verdana,Arial,Helvetica,sans-serif;font-size:14px;line-height:20.006000518798828px"><i><u> devices, you may use DirectInput and XInput side by side. When enumerating your DirectInput devices, all DirectInput devices will enumerate correctly. All XInput devices will show up as both XInput and DirectInput devices, but they should not be handled through DirectInput. You will need to determine which of your DirectInput devices are legacy devices, and which are XInput devices, and remove them from the enumeration of DirectInput devices.</u></i>" From same page</span></div>
<div class="">
<div><span style="color:rgb(69,69,69);font-family:'Segoe UI','Lucida Grande',Verdana,Arial,Helvetica,sans-serif;font-size:14px;line-height:20.006000518798828px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">> I guess here you mean the X input extension rather than Microsoft's</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">> xinput_*.dll, right? I guess XInput works better in remote X11</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">> situations than anything SDL, /dev/js* or /dev/event/* based. (But tbh I</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">> don't really know how SDL talks to the joystick.)</span><br style="font-family:arial,sans-serif;font-size:13px"></div><div><span style="font-family:arial,sans-serif;font-size:13px"><br>

</span></div></div><div><span style="font-family:arial,sans-serif;font-size:13px">No, I meant exactly what I said. XInput is terribly deficient API. And as far as remote situations, X11 has way too terrible remote display to be usable for game in 50x50 resolution, way off some normal</span></div>

<table cellpadding="0" style="font-family:arial,sans-serif;font-size:13px"><tbody><tr><td style="width:475px"><table cellpadding="0" style="width:475px"><tbody><tr><td><h3><span name="Vincent Povirk" style="font-size:13px">@Vincent Povirk</span></h3>

</td></tr></tbody></table></td></tr></tbody></table><div class=""><div><span style="font-family:arial,sans-serif;font-size:13px">> From what I could tell, SDL has a game controller api that's very</span><br style="font-family:arial,sans-serif;font-size:13px">

<span style="font-family:arial,sans-serif;font-size:13px">> similar to xinput, which is pretty nice, and it can be configured to</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">> map to any controller.</span><br>

</div><div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div></div><div><font face="arial, sans-serif">It goes further, you can access same device as Joystick and handle axis and buttons manually or you can access it as Gamepad and have instant correct axis/button mapping. Not to mention haptic in XInput is downright terribly deficient (set left/right, ok it works), SDL is downright brilliant on haptic handling</font></div>

<div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif"><br></font></div><div>Since I'm not native english speaker, some parts might sound like I would try to persuade in use of SDL. If it does, I sincerely apologize and believe me... I don't, I'm honestly only interested in my question regarding who/where creates devices in CoSetProxyBlanket part</div>

<div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">with regards</font></div><div><font face="arial, sans-serif">wh1sper_123</font></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra">
<br><br><div class="gmail_quote">
On 28 July 2014 19:50, Stefan Dösinger <span dir="ltr"><<a href="mailto:stefandoesinger@gmail.com" target="_blank">stefandoesinger@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

-----BEGIN PGP SIGNED MESSAGE-----<br>
Hash: SHA1<br>
<br>
Am 2014-07-26 22:52, schrieb akjsdfk sdkfnskd:<br>
<div>> - hotplugging/unplugging (well, only if game didn't use DInput to<br>
> scan new devices. if it is pure XInput, then it just works)<br>
</div>My 2c is that this is more of an issue than SDL. Using SDL is probably<br>
fine if there are good arguments that support its use and the<br>
Wine-internal layering makes sure that xinput_*.dll, dinput<br>
and winmm see the same joystick configuration. You could think about<br>
calling SDL from winex11.drv or dinput.<br>
<div><br>
> - far better API than XInput<br>
</div>I guess here you mean the X input extension rather than Microsoft's<br>
xinput_*.dll, right? I guess XInput works better in remote X11<br>
situations than anything SDL, /dev/js* or /dev/event/* based. (But tbh I<br>
don't really know how SDL talks to the joystick.)<br>
<br>
-----BEGIN PGP SIGNATURE-----<br>
Version: GnuPG v2<br>
Comment: Using GnuPG with Thunderbird - <a href="http://www.enigmail.net/" target="_blank">http://www.enigmail.net/</a><br>
<br>
iQIcBAEBAgAGBQJT1o1zAAoJEN0/YqbEcdMwWiYP/1/hOzt/v6VIp+gDS+cYJF5u<br>
4fRyjT4zoWoFmOUrtApSj1VaBA2DeIaeeT97D0AAvD+FQ0GLaSYcEbn2EqLTcPJO<br>
N2IGHeTABdt3IBcD1Ya4AOVAryITaqoR83qmI6KElv/jrdpNDD6BaMemcFDno4Tm<br>
pqAYdlZBlFUWP5kEcSp7OsztNWCin0gdQ6BRRnU8nhtBtlOC5qV9VQPW5CQ66SDK<br>
+CM+3YkzARMoqmPk1qNu/OnkrubRRuwpHLsCySkfE9WnIDd29tIEAvMThUeZ8ucN<br>
OKmdIhs+RSOijrZecj0QDzhNA3fPR+EYx+OFr6h10Y3PxOgdwwAstDoakEhk1x4Y<br>
/jQu0XKtP6hDqCtSruxE8Ny3Hpb8p/zsdodHIhmp1W99QdHLbnKVdZJiCYBLToFW<br>
AVJ69NPm4Ae92jerN8pesHEl5B7kIGkQepCCpxWUjwPVWEjbB6fEcegGcGN/ccNn<br>
EWiBm1+14L5wgPSPCG/DhAfEPtfsig7TLdsL6zIZFLq0/+O6PVmjW9ezjT1PD00U<br>
NP7VqmYWY5Is7XtWI6NQ1Vqi5En47uKz+ZaQLPB0ExQB57XrubMo6C6aE53Q4HRg<br>
5Kmh7vTBZecXPZGToT6Eg3z3y1Bc6B9piipxxfRzuqOU6EUzqHO8RzG/LuMrOLG7<br>
kHdS1Q1gRro1FRAFDT3M<br>
=gcqc<br>
-----END PGP SIGNATURE-----<br>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>