DirectSound and i810 soundcards

Eric Pouech eric.pouech at wanadoo.fr
Wed Jan 8 13:42:47 CST 2003


> That's an interesting interpretation. How would one go about testing it 
> under Windows? 
you would have to load the MM driver by hand and directly send the 
messages to it
however, depending on the Windows version you're using, interfaces may 
differ.

 > But maybe this is wrong and it should only report what
> the *driver* can handle (possibly in software).
> So for us this means wineoss should perform a strict conversion of the 
> mask returned by SNDCTL_DSP_GETFMTS to the Windows set of flags, with no 
> stereo/mono, 8/16 bit muddling.
> 
> So with an i810 soundcard and the OSS driver we would only get 
> 48000x16x2, and with Alsa (accessed through OSS) we would get whatever 
> Alsa is able to convert to a format supported by the soundcard.
except if we decide at the driver level to support more format...
we could also decide that if OSS fails to open a driver (even with the 
wave direct flag set) to do the format conversion at the driver level
IMO, that's just an implementation decision. we're not obliged to stick 
to the pure capability of the MM driver we rely upon.

> Hmm, I guess this means we're still stuck with trying multiple formats 
> for mmap :-(
the current dsound implementation however, already supports the format 
conversion anyway... so basically the implementation would be, in order 
of trials (for OSS):
- mmap with required format
- mmap with any available format on the soundcard (using the OSS 
capability would help here)
- regular wavehdr playing

>> anyway, there are also a couple of issues we may have to look after:
>> - the driver interface used always comes from a single audio driver 
>> (even if multiple audio drivers are installed in wine)
>> - trying to get rid of wine's DRV_QUERYDSOUNDIFACE... a bit more 
>> hacky... one solution would be (as MS does) to install in the registry 
>> all the required settings for our sound drivers (including a guid for 
>> each wave out, wave in... so that we could bind dsound to each of 
>> those drivers)
>> - getting rid of WAVE_DIRECTSOUND... I didn't look at all the 
>> details... but, wouldn't the semantics of open&setformat methods of 
>> the IDsDriver be enough for that
> 
> 
> These sound good but I don't really feel qualified enough yet to comment 
> on them (or be able to contribute much I'm afraid).

since Ove jumped in to discuss the other issues, I found it appropriate 
to fire this part too ;-)
A+

-- 
Eric Pouech




More information about the wine-devel mailing list