[PATCH 1/2] xaudio2: Fix support for FAudio 19.06 and newer

Ethan Lee elee at codeweavers.com
Wed May 1 14:51:02 CDT 2019


Assuming an OperationSet would break timings for games that do separate sets, so that wouldn’t work - we’d have to keep it as a stub, probably.

Any suggestions on a new name? CommitChangesReal? For the suffix idea my plan would end up being to add the new function, deprecate the old function, then upon removing the old function, add it back with the correct signature and then deprecate the badly-named functions. This would apply to FAPOFX_CreateFX as well. I’m also up for suggestions on when to remove the deprecated functions.

-Ethan

> On May 1, 2019, at 3:28 PM, Józef Kucia <joseph.kucia at gmail.com> wrote:
> 
> On Wed, May 1, 2019 at 8:51 PM Ethan Lee <elee at codeweavers.com> wrote:
>> 
>> I could add F3DAudioInitialize8 separately, but it would mean everybody has to update to 19.05.0x for that def to go away, so the packaging situation doesn’t improve much there. I could possibly do something like FAPOFX_Create7 (well, it could be 5 since it’s xapofx1_5, but it could also be 7 since it’s the XAudio 2.7 spec…?) but that just makes FAudio’s API really confusing, since we would have some of the spec targeting 2.7 with 2.8+ as extension methods and other parts targeting 2.8 with 2.7- as extension methods. The real killer is CommitChanges, which is for sure stuck since it was an entirely bogus function and the old version should not exist at all. I could _maybe_ write in something like...
> 
> It's unfortunate that FAudio was released with bogus CommitChanges().
> However, ABI compatibility shouldn't be broken that lightly. The right
> thing to do is to introduce a new version of the function with a
> different name. The old version of function could probably assume that
> OperationSet is set to FAUDIO_COMMIT_ALL.




More information about the wine-devel mailing list