This document provides an overview of DevSound.
The DLL that provides the functionality and the library to which your code must link is identified below.
Shown below is a representation of how DevSound interacts with the MMF Controller Framework and other components:
DevSound uses the following components:
Client - DevSound can be used by the following clients:
MMF Controller Framework
For audio playing, recording, and conversion, the MMF client APIs interact with the lower levels of the MMF, the controller framework. The controller framework helps to manage the interface to DevSound and provides controller plug-ins for playing, recording, and converting audio data. The controller framework has two main classes RMMFController and CMMFController.
Controller Plug-in
Depending on the functionality required by the client, the MMF controller framework loads the appropriate controller plug-ins. The plug-ins perform the required operations by communicating with DevSound and/or DevVideo, codecs and hardware.
Custom controller plug-ins can be written to extend the MMF framework. For more information, see How to write a controller plug-in.
Audio Policy
The Audio Policy component manages requests to access the audio hardware. For example, if DevSound needs to acquire the hardware for playing audio, it makes a request to the Audio Policy component. Depending on the priority of the request, the Audio Policy component grants or denies access to the hardware. DevSound must obey the Audio Policy.
Codecs
DevSound uses codecs to convert multimedia data between different encodings.
Custom codec plug-ins can be written. For more information, see How to write a codec plug-in.
Hardware Device API
For audio functionality, the CMMFHwDevice plug-in class acts as the DevSound interface to the audio processing hardware.
DevSound provides the interface between the Symbian platform and the audio processing hardware for all audio functionality. DevSound is responsible for providing access to audio resources, configuring audio hardware, and audio playback and recording.
The DevSound API comprises the following classes:
CMMFDevSound is the class which forms the DevSound API.
MDevSoundObserver provides callbacks to users of the DevSound API. It serves as the method of communication between a client and DevSound. For example, MDevSoundObserver handles completion and cancellation requests for audio playing, recording, and conversion.
DevSound offers the following main functions which can be used by DevSound clients:
Audio Settings
DevSound can be used to initialise and configure hardware devices, for example, set microphone gain and stereo balance.
Audio Play
DevSound can be used to play buffered audio data.
Audio Record
DevSound can be used to record audio data.
Audio Convert
DevSound can be used to convert the type, sample rate and format of audio data.
Tone Play
DevSound can play a single tone, tone sequence or Dual Tone Multi-Frequency (DTMF) string.