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

Chris Robinson chris.kcat at gmail.com
Thu May 2 22:13:11 CDT 2019


On 5/2/19 6:45 PM, Ethan Lee wrote:
> I’m really glad you butted in because this is actually a very good point (sorry I didn’t see it earlier, I only get wine-devel messages as digests). So maybe what I can do is add something totally different like `FAudio_CommitOperationSet` and in the documentation deliberately put the phrase “CommitChanges” in so users wondering where that function went can go find it quickly. I still think my bogus CommitChanges needs to be scrapped somehow but if we can agree that any use of CommitChanges is a bug (yes, even retroactively), maybe I can just make it do something extremely unpleasant that still allows the program to run, but make it so anyone using it can see something is wrong (stderr messages maybe?).

With GCC/Clang, you can mark a function with __attribute__((deprecated)) 
in the header, which causes a compile-time warning if code tries to use 
it. I think it's also possible to supply a message, to give a specific 
reason and/or alternative. The code will still compile and thus maintain 
API compatibility, but the developer will know it's an outdated function 
it should now avoid using. The library can also still export some 
version of the function, maintaining ABI compatibility too.

As for what to do regarding the old function's behavior, it ultimately 
depends. I'm not very familiar with XAudio, so I don't know exactly what 
the OperationSet parameter is for. Why wasn't it needed before, and why 
is it needed now? What did the function do before without it (I assume 
it worked in some capacity)?



More information about the wine-devel mailing list