Symbian3/PDK/Source/GUID-2D3F7471-9B92-5E49-B8BC-E0FA7AA709D7.dita
author Dominic Pinkman <dominic.pinkman@nokia.com>
Fri, 16 Jul 2010 17:23:46 +0100
changeset 12 80ef3a206772
parent 9 59758314f811
child 14 578be2adaf3e
permissions -rw-r--r--
Week 28 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 1897, Bug 344, Bug 2681, Bug 463, Bug 1522.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     1
<?xml version="1.0" encoding="utf-8"?>
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     2
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     3
<!-- This component and the accompanying materials are made available under the terms of the License 
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     4
"Eclipse Public License v1.0" which accompanies this distribution, 
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     5
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     6
<!-- Initial Contributors:
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     7
    Nokia Corporation - initial contribution.
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     8
Contributors: 
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
     9
-->
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
    10
<!DOCTYPE concept
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
    11
  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
    12
<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>
59758314f811 Week 23 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 5
diff changeset
    13
             DevSound and related components 
12
80ef3a206772 Week 28 contribution of PDK documentation content. See release notes for details. Fixes bugs Bug 1897, Bug 344, Bug 2681, Bug 463, Bug 1522.
Dominic Pinkman <dominic.pinkman@nokia.com>
parents: 9
diff changeset
    14
          </title> <image href="GUID-0B1A4D73-AB81-586C-9D95-A0F5EE1F4BC7_d0e548531_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>