On Wed, May 1, 2019 at 8:51 PM Ethan Lee elee@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.