Symbian3/SDK/Source/GUID-2D3F7471-9B92-5E49-B8BC-E0FA7AA709D7.dita
changeset 7 51a74ef9ed63
child 8 ae94777fff8f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Symbian3/SDK/Source/GUID-2D3F7471-9B92-5E49-B8BC-E0FA7AA709D7.dita	Wed Mar 31 11:11:55 2010 +0100
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
+<!-- This component and the accompanying materials are made available under the terms of the License 
+"Eclipse Public License v1.0" which accompanies this distribution, 
+and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
+<!-- Initial Contributors:
+    Nokia Corporation - initial contribution.
+Contributors: 
+-->
+<!DOCTYPE concept
+  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
+<concept xml:lang="en" id="GUID-2D3F7471-9B92-5E49-B8BC-E0FA7AA709D7"><title>DevSound Overview </title><shortdesc>This document provides an overview of DevSound. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-2BC87F44-853D-5BA3-A9FC-835FFDCBB3D2"><title>Purpose</title> <p>DevSound provides a common API for all audio functionality. </p> </section> <section><title>DevSound library details</title> <p>The DLL that provides the functionality and the library to which your code must link is identified below. </p> <table id="GUID-A97FC7E6-BE18-5396-94D1-85616B733C40"><tgroup cols="3"><colspec colname="col0"/><colspec colname="col1"/><colspec colname="col2"/><thead><row><entry>DLL</entry> <entry>LIB</entry> <entry>Short Description</entry> </row> </thead> <tbody><row><entry><p> <filepath>mmfdevsound.dll</filepath>  </p> </entry> <entry><p> <filepath>mmfdevsound.lib</filepath>  </p> </entry> <entry><p>These files are used for implementing DevSound. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Architectural relationship</title> <p>Shown below is a representation of how DevSound interacts with the MMF Controller Framework and other components: </p> <fig id="GUID-3E6084D4-6AAC-5111-BB16-5AAC8C0866C6"><title>
+             DevSound and related components 
+          </title> <image href="GUID-0B1A4D73-AB81-586C-9D95-A0F5EE1F4BC7_d0e333536_href.png" placement="inline"/></fig> <p>DevSound uses the following components: </p> <ul><li id="GUID-3ACA3CEA-E594-5013-A901-46E12B87FEB3"><p>Client - DevSound can be used by the following clients: </p> <ul><li id="GUID-78C197EE-156A-5677-A432-D20031027121"><p>applications </p> </li> <li id="GUID-947D1F4D-1350-5868-AD70-2B0576BB9954"><p>device creator library. </p> </li> </ul> </li> <li id="GUID-C96E468B-0CA8-5A26-9C92-620301AD0CAC"><p>MMF Controller Framework </p> <p>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 <xref href="GUID-9DEDFB0F-C963-3FB7-9237-DDDB276C8841.dita"><apiname>RMMFController</apiname></xref> and <xref href="GUID-123B3A78-9E84-3283-AB73-6B4293939A5D.dita"><apiname>CMMFController</apiname></xref>. </p> </li> <li id="GUID-A28BA7E0-DFFA-5149-BC80-5C46728CD1B4"><p>Controller Plug-in </p> <p>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. </p> <p>Custom controller plug-ins can be written to extend the MMF framework. For more information, see <xref href="GUID-528BDE53-327A-5D34-B4BF-CB2421BE43C8.dita#GUID-528BDE53-327A-5D34-B4BF-CB2421BE43C8/GUID-215B50CF-605A-58BA-8E87-CAB942F11741">How to write a controller plug-in</xref>. </p> </li> <li id="GUID-50F1D619-E6CB-5775-9B5E-181533FCB9BA"><p>Audio Policy </p> <p>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. </p> </li> <li id="GUID-F62F289A-10FC-5B23-A2D3-8CFE759C6516"><p>Codecs </p> <p>DevSound uses codecs to convert multimedia data between different encodings. </p> <p>Custom codec plug-ins can be written. For more information, see <xref href="GUID-7261FEC6-5AA6-555C-AB72-2173BD3F1FA5.dita">How to write a codec plug-in</xref>. </p> </li> <li id="GUID-62CC1178-82A9-54F4-BF35-040549782703"><p>Hardware Device API </p> <p>For audio functionality, the <xref href="GUID-E18CF25C-82DE-3C69-BD86-5DF67579C1A6.dita"><apiname>CMMFHwDevice</apiname></xref> plug-in class acts as the DevSound interface to the audio processing hardware. </p> </li> </ul> </section> <section><title>Description</title> <p>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. </p> </section> <section><title>Key DevSound classes</title> <p>The DevSound API comprises the following classes: </p> <ul><li id="GUID-91A3D022-6579-5B12-B875-0F2C1633AA71"><p> <xref href="GUID-B3E9B015-1413-35A6-A316-D1C01C1001AD.dita"><apiname>CMMFDevSound</apiname></xref> is the class which forms the DevSound API. </p> </li> <li id="GUID-6A729721-8110-5080-84F9-8FA3C90D7DB0"><p> <xref href="GUID-D0F3F385-68C9-331D-865F-DA36589BE9FD.dita"><apiname>MDevSoundObserver</apiname></xref> provides callbacks to users of the DevSound API. It serves as the method of communication between a client and DevSound. For example, <xref href="GUID-D0F3F385-68C9-331D-865F-DA36589BE9FD.dita"><apiname>MDevSoundObserver</apiname></xref> handles completion and cancellation requests for audio playing, recording, and conversion. </p> </li> </ul> </section> <section><title>Using DevSound</title> <p>DevSound offers the following main functions which can be used by DevSound clients: </p> <ul><li id="GUID-19A29FFB-C754-5B17-AEE0-1CFF6E001C14"><p>Audio Settings </p> <p>DevSound can be used to initialise and configure hardware devices, for example, set microphone gain and stereo balance. </p> </li> <li id="GUID-9FD9635B-FFB1-5DBD-AFB4-5A99A4C01DEC"><p>Audio Play </p> <p>DevSound can be used to play buffered audio data. </p> </li> <li id="GUID-88977E75-871D-5AB4-A208-DD9D8338962E"><p>Audio Record </p> <p>DevSound can be used to record audio data. </p> </li> <li id="GUID-30AC0EC2-49E8-54EA-B1EC-3122661017AF"><p>Audio Convert </p> <p>DevSound can be used to convert the type, sample rate and format of audio data. </p> </li> <li id="GUID-EBD316B2-FD0E-5737-89F1-2DB806CB2453"><p>Tone Play </p> <p>DevSound can play a single tone, tone sequence or Dual Tone Multi-Frequency (DTMF) string. </p> </li> </ul> </section> </conbody><related-links><link href="GUID-53A5AC8D-8A43-505F-A0B6-9E34F3CF23BE.dita"><linktext>Playing audio</linktext> </link> <link href="GUID-3FC6342D-D09C-5C7F-8E03-3DA7B29D2CC8.dita"><linktext>Recording Audio</linktext> </link> <link href="GUID-3FC6342D-D09C-5C7F-8E03-3DA7B29D2CC8.dita"><linktext>Playing tones</linktext> </link> </related-links></concept>
\ No newline at end of file