Wednesday, December 3, 2014

Audio driver [WinCE]

wave main
-- Interfaced with waveapi.dll
-- Initialise hardware context which includes configuring DMA irq, various variable initialisation, getting DMA memory, I2s registers/  IST  initialization.
-- Handle various flag in the WAV_IOControl which handles
device capacity | number of devices | open stream for a device | start/stop running stream | get position |  reset stream | add new buffer | increase or decrease volume |
| set playback rate |
Device context
- Open stream
-- Create stream context (simply create a object)
-- open the stream | include basic initialisation such as wave header head/tail/current/ set gain or volume | add new stream | call back open
- Get device capacity return all PCM format supported |
- Stream ready to render
-- called when playback is to happen or add to queue for recording.
- transfer buffer transfer buffers | rendering buffer.
-. Stream context
open the stream | include basic initialisation such as wave header head/tail/current/ set gain or volume | add new stream | call back open
Rendering a stream
The data comes from application is of various format. To have the data the require format, we have to process it and fill the buffer and then fill the buffer which will be finally send for play. It may include adding audio/volume gain in the stream. May be specific to format such as stereo 16 or mono or 8 bit or 16 bits.
output and input device
Keeps render definition specific to mono or stereo or 16 bit or 8 bit
midi stream
for tone generation

No comments:

Post a Comment

Please add your valuable feedback and suggestion...

Note: Only a member of this blog may post a comment.