On Fri, Aug 18, 2017 at 02:07:29PM -0600, Jeremy Banks wrote:
I noticed those .spec files in the driver sources. I've been trying to put together a mental model of how the drivers in Wine work. I noticed the first function on each line wasn't in the driver source file, but often the 2nd function was (though the ones in the MMDevAPI section do have nigh-identical names). Do I correctly understand that for a line in the .spec file, the first function listed is the function that will be called by MMDevAPi or the application, and the second one is the function that the former will be translated to? Do I correctly understand that the driver files thus contain the translated function calls, plus any additional necessary support functions and data structure needed for getting data to and from the audio system in question?
Right. Our mmdevapi loads functions from the drivers and calls them to do stuff like determine which driver to use, and to create the IMMDevice and IAudioClient objects.
It occurs to me that since Wine interfaces with Windows applications, I might want to study the documentation for the Windows sound and driver APIs. Is this a correct assumption, or is this not particularly necessary in this case?
Yes, you'll need to understand the APIs that you will be implementing. You don't need to dig into Windows DDK stuff, our drivers operate at a higher level than that. MSDN's mmdevapi docs are pretty good, and you can always reference the other Wine drivers to see how they implement the functions.
Andrew