Symbian3/PDK/Source/GUID-F1DD8800-389C-5A88-A5EB-138359EF7DC5.dita
changeset 12 80ef3a206772
parent 9 59758314f811
child 14 578be2adaf3e
equal deleted inserted replaced
11:5072524fcc79 12:80ef3a206772
     9 -->
     9 -->
    10 <!DOCTYPE concept
    10 <!DOCTYPE concept
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
    12 <concept xml:lang="en" id="GUID-F1DD8800-389C-5A88-A5EB-138359EF7DC5"><title>MTP Framework Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The Symbian MTP implementation defines a transport layer, an MTP layer and a storage layer. The MTP Framework is the MTP layer, which is the core component of the implementation. It manages and works with data providers and transports for MTP requests and operations. </p> <section><title>Required background</title> <p>You must have a general understanding of the <xref scope="external" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=FED98CA6-CA7F-4E60-B88C-C5FCE88F3EEA">MTP enhanced specification</xref> and the <xref href="GUID-3F40DB93-6C60-56E2-8728-00370DF9AFB8.dita">Symbian implementation of the Media Transfer Protocol</xref> to use the MTP Framework component. </p> </section> <section><title> Architecture</title> <p>The following diagram shows the Symbian MTP implementation including the MTP Framework, the MTP Data Providers and the MTP Transports. </p> <fig id="GUID-4FE36574-C9A2-50BB-A312-B4ADDE0C3B09"><title>
    12 <concept xml:lang="en" id="GUID-F1DD8800-389C-5A88-A5EB-138359EF7DC5"><title>MTP Framework Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The Symbian MTP implementation defines a transport layer, an MTP layer and a storage layer. The MTP Framework is the MTP layer, which is the core component of the implementation. It manages and works with data providers and transports for MTP requests and operations. </p> <section><title>Required background</title> <p>You must have a general understanding of the <xref scope="external" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=FED98CA6-CA7F-4E60-B88C-C5FCE88F3EEA">MTP enhanced specification</xref> and the <xref href="GUID-3F40DB93-6C60-56E2-8728-00370DF9AFB8.dita">Symbian implementation of the Media Transfer Protocol</xref> to use the MTP Framework component. </p> </section> <section><title> Architecture</title> <p>The following diagram shows the Symbian MTP implementation including the MTP Framework, the MTP Data Providers and the MTP Transports. </p> <fig id="GUID-4FE36574-C9A2-50BB-A312-B4ADDE0C3B09"><title>
    13              Symbian MTP Architecture 
    13              Symbian MTP Architecture 
    14           </title> <image href="GUID-AA276F4E-D032-571E-9B76-BA2351C3F8B7_d0e606979_href.jpg" placement="inline"/></fig> <p>MTP Framework performs the following functions: </p> <ul><li id="GUID-8675AFFB-106A-56F9-AE82-337911B341B4"><p>Provides a standard Symbian client/server interface to start and stop MTP services with a transport protocol binding, for example MTP USB Transport. </p> </li> <li id="GUID-70650610-F5BA-55C7-B3DC-23EBA610E915"><p>Manages MTP transport connections. </p> </li> <li id="GUID-4EE27587-3C8F-5C5E-BAE4-EF19CEF8F19A"><p>Maintains the core MTP protocol connection, session and transaction states. </p> </li> <li id="GUID-32103AFB-5FDA-52DD-8113-090CB0A88796"><p>Manages data providers which determine the MTP media data formats supported by a device. </p> </li> <li id="GUID-FEC35AAA-DB52-5DBF-8D26-61DE4854AD33"><p>Routes MTP operation requests and event datasets to data providers for processing. </p> </li> <li id="GUID-C7B4FA1A-9ECF-5148-9C0C-A6A59CB33602"><p>Efficiently manages the flow of potentially very large volumes of media object data, for example files over 4GB. </p> </li> <li id="GUID-45A445F8-1DB9-5789-A5E5-14942F6CBA4E"><p>Maintains a set of MTP data object metadata storages that collectively manage the set of MTP data objects on the device. These objects are enumerated to a connected MTP initiator. </p> </li> <li id="GUID-497E4414-B8A8-5871-8E16-C2FFB660665D"><p>Provides the MTP Data Provider API for device creators to extend the data providers. </p> </li> </ul> </section> <section><title>APIs</title> <p>The MTP Framework exports the following key APIs: </p> <p> <b>MTP Client API</b> (<filepath>mtpclient.dll</filepath>) </p> <table id="GUID-8078BF19-1A4E-5D80-817C-508432500B6A"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-0F7C98EA-168C-3662-8EB1-81AF174F6305.dita"><apiname>RMTPClient</apiname></xref>  </p> </entry> <entry><p>The MTP client interface for starting and stopping MTP services, and for specifying the transport protocol. </p> </entry> </row> </tbody> </tgroup> </table> <p> <b>MTP Data Provider API</b> (<filepath>mtpdataproviderapi.dll</filepath>) </p> <table id="GUID-00383325-EEAC-552E-A536-88B005991FF6"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-710B9980-7EF5-3E20-954B-795241D1D479.dita"><apiname>CMTPDataProviderPlugin</apiname></xref>  </p> </entry> <entry><p>The data provider ECom plug-in interface. Each ECOM plug-in data provider must be derived from this class. </p> </entry> </row> <row><entry><p> <xref href="GUID-D05CA382-EF87-3615-86A9-52508E0188B4.dita"><apiname>CMTPMetaData</apiname></xref>  </p> </entry> <entry><p>The MTP meta-data base class. </p> </entry> </row> <row><entry><p> <xref href="GUID-ACFF729E-09B0-36F7-89D1-C4987C9F35E8.dita"><apiname>CMTPObjectMetaData</apiname></xref>  </p> </entry> <entry><p>Represents MTP object meta-data. </p> </entry> </row> <row><entry><p> <xref href="GUID-1DF49266-22AF-3442-9D60-0F54737F0FE0.dita"><apiname>CMTPStorageMetaData</apiname></xref>  </p> </entry> <entry><p>Represents MTP storage meta-data. </p> </entry> </row> </tbody> </tgroup> </table> <p> <b>MTP Framework Library</b> (<filepath>mtpframework.dll</filepath>) </p> <table id="GUID-F5BD03BF-2E47-540E-A7EA-D7A12663F768"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-86E1BD36-36F3-3136-9185-330385950E17.dita"><apiname>MMTPDataCodeGenerator</apiname></xref>  </p> </entry> <entry><p>Provides functions to generate a set of unique datacodes for a data provider service. For more information about datacode generation, refer to <xref href="GUID-DB82D140-AB1B-5AA9-89CB-A5F68F328C85.dita">Creating an MTP Data Provider Plug-in</xref>. </p> </entry> </row> <row><entry><p> <xref href="GUID-C3E0D6CA-56AC-322D-8681-D40B6B96018F.dita"><apiname>MMTPDataProviderFramework</apiname></xref>  </p> </entry> <entry><p>Can be used to get a reference of <xref href="GUID-86E1BD36-36F3-3136-9185-330385950E17.dita"><apiname>MMTPDataCodeGenerator</apiname></xref>. </p> </entry> </row> </tbody> </tgroup> </table> <p> <b>MTP Data Types Library</b>  </p> <p>The MTP Data Types Library implements the MTP standard data types and dataset. It also allows device creators to write extended data types. For the MTP data types and their relationships, refer to the <xref href="GUID-C6EA2CFE-EA35-5B05-8103-B06A87BE1828.dita">MTP Data Types Overview</xref>. </p> </section> <section><title>Typical uses</title> <p>Device creators can use the MTP Framework in the following ways: </p> <ul><li id="GUID-292A9AF4-EC66-59AC-8782-ADFA89E7D4ED"><p>To write MTP client applications which start and stop an MTP service. </p> </li> <li id="GUID-4A1577E5-13D6-5627-B616-1C01B98609AA"><p>To create additional data providers to support various data types. </p> </li> <li id="GUID-04DF3B99-5666-5BF6-8E33-08E3D02A5731"><p>To configure the Framework to support Picture Transfer Protocol (PTP) or PictBridge data in addition to MTP data. </p> </li> </ul> </section> </conbody><related-links><link href="GUID-3F40DB93-6C60-56E2-8728-00370DF9AFB8.dita"><linktext>Media Transfer Protocol and Symbian
    14           </title> <image href="GUID-AA276F4E-D032-571E-9B76-BA2351C3F8B7_d0e646141_href.jpg" placement="inline"/></fig> <p>MTP Framework performs the following functions: </p> <ul><li id="GUID-8675AFFB-106A-56F9-AE82-337911B341B4"><p>Provides a standard Symbian client/server interface to start and stop MTP services with a transport protocol binding, for example MTP USB Transport. </p> </li> <li id="GUID-70650610-F5BA-55C7-B3DC-23EBA610E915"><p>Manages MTP transport connections. </p> </li> <li id="GUID-4EE27587-3C8F-5C5E-BAE4-EF19CEF8F19A"><p>Maintains the core MTP protocol connection, session and transaction states. </p> </li> <li id="GUID-32103AFB-5FDA-52DD-8113-090CB0A88796"><p>Manages data providers which determine the MTP media data formats supported by a device. </p> </li> <li id="GUID-FEC35AAA-DB52-5DBF-8D26-61DE4854AD33"><p>Routes MTP operation requests and event datasets to data providers for processing. </p> </li> <li id="GUID-C7B4FA1A-9ECF-5148-9C0C-A6A59CB33602"><p>Efficiently manages the flow of potentially very large volumes of media object data, for example files over 4GB. </p> </li> <li id="GUID-45A445F8-1DB9-5789-A5E5-14942F6CBA4E"><p>Maintains a set of MTP data object metadata storages that collectively manage the set of MTP data objects on the device. These objects are enumerated to a connected MTP initiator. </p> </li> <li id="GUID-497E4414-B8A8-5871-8E16-C2FFB660665D"><p>Provides the MTP Data Provider API for device creators to extend the data providers. </p> </li> </ul> </section> <section><title>APIs</title> <p>The MTP Framework exports the following key APIs: </p> <p> <b>MTP Client API</b> (<filepath>mtpclient.dll</filepath>) </p> <table id="GUID-8078BF19-1A4E-5D80-817C-508432500B6A"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-0F7C98EA-168C-3662-8EB1-81AF174F6305.dita"><apiname>RMTPClient</apiname></xref>  </p> </entry> <entry><p>The MTP client interface for starting and stopping MTP services, and for specifying the transport protocol. </p> </entry> </row> </tbody> </tgroup> </table> <p> <b>MTP Data Provider API</b> (<filepath>mtpdataproviderapi.dll</filepath>) </p> <table id="GUID-00383325-EEAC-552E-A536-88B005991FF6"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-710B9980-7EF5-3E20-954B-795241D1D479.dita"><apiname>CMTPDataProviderPlugin</apiname></xref>  </p> </entry> <entry><p>The data provider ECom plug-in interface. Each ECOM plug-in data provider must be derived from this class. </p> </entry> </row> <row><entry><p> <xref href="GUID-D05CA382-EF87-3615-86A9-52508E0188B4.dita"><apiname>CMTPMetaData</apiname></xref>  </p> </entry> <entry><p>The MTP meta-data base class. </p> </entry> </row> <row><entry><p> <xref href="GUID-ACFF729E-09B0-36F7-89D1-C4987C9F35E8.dita"><apiname>CMTPObjectMetaData</apiname></xref>  </p> </entry> <entry><p>Represents MTP object meta-data. </p> </entry> </row> <row><entry><p> <xref href="GUID-1DF49266-22AF-3442-9D60-0F54737F0FE0.dita"><apiname>CMTPStorageMetaData</apiname></xref>  </p> </entry> <entry><p>Represents MTP storage meta-data. </p> </entry> </row> </tbody> </tgroup> </table> <p> <b>MTP Framework Library</b> (<filepath>mtpframework.dll</filepath>) </p> <table id="GUID-F5BD03BF-2E47-540E-A7EA-D7A12663F768"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-86E1BD36-36F3-3136-9185-330385950E17.dita"><apiname>MMTPDataCodeGenerator</apiname></xref>  </p> </entry> <entry><p>Provides functions to generate a set of unique datacodes for a data provider service. For more information about datacode generation, refer to <xref href="GUID-DB82D140-AB1B-5AA9-89CB-A5F68F328C85.dita">Creating an MTP Data Provider Plug-in</xref>. </p> </entry> </row> <row><entry><p> <xref href="GUID-C3E0D6CA-56AC-322D-8681-D40B6B96018F.dita"><apiname>MMTPDataProviderFramework</apiname></xref>  </p> </entry> <entry><p>Can be used to get a reference of <xref href="GUID-86E1BD36-36F3-3136-9185-330385950E17.dita"><apiname>MMTPDataCodeGenerator</apiname></xref>. </p> </entry> </row> </tbody> </tgroup> </table> <p> <b>MTP Data Types Library</b>  </p> <p>The MTP Data Types Library implements the MTP standard data types and dataset. It also allows device creators to write extended data types. For the MTP data types and their relationships, refer to the <xref href="GUID-C6EA2CFE-EA35-5B05-8103-B06A87BE1828.dita">MTP Data Types Overview</xref>. </p> </section> <section><title>Typical uses</title> <p>Device creators can use the MTP Framework in the following ways: </p> <ul><li id="GUID-292A9AF4-EC66-59AC-8782-ADFA89E7D4ED"><p>To write MTP client applications which start and stop an MTP service. </p> </li> <li id="GUID-4A1577E5-13D6-5627-B616-1C01B98609AA"><p>To create additional data providers to support various data types. </p> </li> <li id="GUID-04DF3B99-5666-5BF6-8E33-08E3D02A5731"><p>To configure the Framework to support Picture Transfer Protocol (PTP) or PictBridge data in addition to MTP data. </p> </li> </ul> </section> </conbody><related-links><link href="GUID-3F40DB93-6C60-56E2-8728-00370DF9AFB8.dita"><linktext>Media Transfer Protocol and Symbian
    15                 Implementation</linktext> </link> <link href="GUID-EA9D7B60-C4EA-5D29-9296-3E4C8B973F59.dita"><linktext>MTP Data Providers Overview</linktext> </link> <link href="GUID-8F5FAFAB-545A-5BF0-A3B5-6499F2D1AAD0.dita"><linktext>MTP Transports Overview</linktext> </link> </related-links></concept>
    15                 Implementation</linktext> </link> <link href="GUID-EA9D7B60-C4EA-5D29-9296-3E4C8B973F59.dita"><linktext>MTP Data Providers Overview</linktext> </link> <link href="GUID-8F5FAFAB-545A-5BF0-A3B5-6499F2D1AAD0.dita"><linktext>MTP Transports Overview</linktext> </link> </related-links></concept>