Re: The choices of wavedev implementation for multiple audio interfaces
- From: Shawn <shawn.gsc@xxxxxxxxx>
- Date: Thu, 20 Sep 2007 20:47:27 -0700
On Sep 21, 12:23 am, andy...@xxxxxxxxxxxxx wrote:
On Sep 20, 8:34 am, Shawn <shawn....@xxxxxxxxx> wrote:
Hello all,
I'm facing a choice problem when trying to implement the wavedev
driver for multiple audio interfaces.
Software - WinCE 6.0
Hardware - There are totally three separate audio interfaces, stereo,
multichannel and S/PDIF.
I guess two options are availbe to implement the wavedev driver.
Option A: Three wavedev drivers (WAV0, WAV1 and WAV2) could be
implemented for these three interfaces respectively. These three
drivers are pretty self-governed and will be loaded by device manager
one by one.
Option B: Only one wavedev (WAV0) will be implemented, but it will
return 3 when responding to WODM_GETNUMDEVS. It's saying that the
driver contains three group of Hwctxt / Devctxt / Strmctxt
implementation, and each interface has its own group.
My humble understanding is that the audio application will not be
aware of this kind of different wavedev implementation, because
WaveAPI will enumerate all these interfaces to application using
uDeviceId , no matter they are implmented in one wavedev or several.
In another word, WaveAPI will make this driver level difference
invisible to applications. Till now, I do not see any outstanding
problem to implement the audio driver with either of these two
options. But to be honest, I do not know WaveAPI well due to its
privacy, so I'm not sure about which option is WaveAPI's preference.
Please share your opinions to help me on the choice. Any comments or
advices are appreciated.
Regards,
Shawn
You're correct that from waveapi's perspective it really doesn't
matter whether you have a single driver exposing three devices or
three drivers each exposing one device. Therefore, the main question
is what makes your development easiest, which really depends on
whether the three devices share any code or hardware that would more
easily be handled by a single driver.
One detail that needs clarification: Are these really totally
independent pieces of hardware? Can you play different audio streams
on each device concurrently, or do they all share the same DMA
controller and/or Codec? If they're really independent, then
implementing separate devices (as you proposed) makes sense. If
they're just different outputs from the same hardware, then you should
just implement a single device.
-Andy- Hide quoted text -
- Show quoted text -
These are independent pieces of hardware, and they can support audio
stream on each interface concurrently. The system has one DMA
controller and one HW sample rate converter, which shall provide
service to these audio interfaces. This kind of service could be
provided separately since the DMA controller supports multiple
channels and the converter supports several conversion pairs, which
can work independently.
.
- References:
- Prev by Date: Problem Ethernet Driver
- Next by Date: Re: The choices of wavedev implementation for multiple audio interfaces
- Previous by thread: Re: The choices of wavedev implementation for multiple audio interfaces
- Next by thread: Re: The choices of wavedev implementation for multiple audio interfaces
- Index(es):
Relevant Pages
|