7 Nokia Corporation - initial contribution. |
7 Nokia Corporation - initial contribution. |
8 Contributors: |
8 Contributors: |
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 id="GUID-667C0481-2DEF-4618-9AA5-8DF528082061" xml:lang="en"><title>Accessory |
12 <concept id="GUID-667C0481-2DEF-4618-9AA5-8DF528082061" xml:lang="en"><title>Accessory Services Overview</title><shortdesc>Accessory Services abstract accessory-related services |
13 Services Overview</title><shortdesc>Accessory Services abstract accessory-related services for platform |
13 for platform and SDK clients and provides accessory-related APIs for |
14 and SDK clients and provides accessory-related APIs for adaptation (audio |
14 adaptation (audio and display) and accessory plug-ins.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> |
15 and display) and accessory plug-ins.</shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody> |
15 <section id="GUID-6C29F2CD-6FBE-4805-957A-CB08163DFC00"><title>Purpose</title><p>Accessory Services is a group of components that support APIs |
16 <section id="GUID-6C29F2CD-6FBE-4805-957A-CB08163DFC00"><title>Purpose</title><p>Accessory Services is a group of components |
16 for platform clients to retrieve accessory connection status information, |
17 that support APIs for platform clients to retrieve accessory connection status |
17 and device and services type information. It also provides adaptation |
18 information, and device and services type information. It also provides adaptation |
|
19 APIs for the addition of new Accessory Services plug-in components. </p></section> |
18 APIs for the addition of new Accessory Services plug-in components. </p></section> |
20 <section id="GUID-9236506F-077D-4AB1-AE4C-9CE391F42F98"><title>Architecture</title><p>The architecture of Accessory Services |
19 <section id="GUID-9236506F-077D-4AB1-AE4C-9CE391F42F98"><title>Architecture</title><p>The architecture of Accessory Services revolves around the Accessory |
21 revolves around the Accessory and the Remote Control Framework. Accessory |
20 and the Remote Control Framework. Accessory Framework provides platform |
22 Framework provides platform clients with access to the accessory functionality |
21 clients with access to the accessory functionality on the device, |
23 on the device, while abstracting away accessory, hardware, bearer and protocol-specific |
22 while abstracting away accessory, hardware, bearer and protocol-specific |
24 details from the software layers. Accessory Framework also provides accessory |
23 details from the software layers. Accessory Framework also provides |
25 policy and adaptation APIs for the addition of new Accessory Framework plug-in |
24 accessory policy and adaptation APIs for the addition of new Accessory |
26 components (if required). The Remote Control Framework provides APIs required |
25 Framework plug-in components (if required). The Remote Control Framework |
27 to send and receive remote control commands to/from an accessory connected |
26 provides APIs required to send and receive remote control commands |
28 to a phone.</p><p>The core of the Accessory Framework is the Accessory Server. |
27 to/from an accessory connected to a phone.</p><p>The core of the Accessory |
29 Accessory Server has a central role in accessory-related connection/disconnection |
28 Framework is the Accessory Server. Accessory Server has a central |
30 handling on the Symbian platform. The Accessory Framework depends on the concepts, |
29 role in accessory-related connection/disconnection handling on the |
31 such as Generic ID, Accessory Policy, Accessory Handlers and Accessory Mode. |
30 Symbian platform. The Accessory Framework depends on the concepts, |
32 These concepts are described in the following section.</p><p>Remote Control |
31 such as Generic ID, Accessory Policy, Accessory Handlers and Accessory |
33 Framework exposes the Remote Control Server using the Remote Control Core |
32 Mode. These concepts are described in the following section.</p><p>Remote Control Framework exposes the Remote Control Server using |
34 APIs. The remote control commands are understood by the Key Event Converter |
33 the Remote Control Core APIs. The remote control commands are understood |
35 and passed on to the Target Selector Plug-in (TSP) Controller by the Remote |
34 by the Key Event Converter and passed on to the Target Selector Plug-in |
36 Control Framework. Then TSP decides which application must handle this request |
35 (TSP) Controller by the Remote Control Framework. Then TSP decides |
37 and passes that information to the Remote Control Server. Finally, the request |
36 which application must handle this request and passes that information |
38 is handled by that application. For more information about Remote Control |
37 to the Remote Control Server. Finally, the request is handled by that |
39 concepts, see the <b>Remote Control Framework</b> section.</p><p>The following |
38 application. For more information about Remote Control concepts, see |
40 figure illustrates the architecture of Accessory Services:</p><fig id="GUID-EF39A7CD-BA15-4F2D-96C6-C54672226E98"> |
39 the <b>Remote Control Framework</b> section.</p><p>The following figure |
|
40 illustrates the architecture of Accessory Services:</p><fig id="GUID-EF39A7CD-BA15-4F2D-96C6-C54672226E98"> |
41 <title>Accessory Services Architecture</title> |
41 <title>Accessory Services Architecture</title> |
42 <image href="GUID-5AE741A2-68C5-4219-8F2A-ECE0A819FCAA_d0e153742_href.jpg" scale="150" placement="inline"/> |
42 <image href="GUID-5AE741A2-68C5-4219-8F2A-ECE0A819FCAA_d0e159843_href.jpg" scale="150" placement="inline"> |
|
43 </image> |
43 </fig></section> |
44 </fig></section> |
44 <section id="GUID-7AB78BEA-315A-4CC0-B5B6-A7A28568F2B2"><title>Description</title><p>This section describes the key concepts |
45 <section id="GUID-7AB78BEA-315A-4CC0-B5B6-A7A28568F2B2"><title>Description</title><p>This section describes the key concepts associated with Accessory |
45 associated with Accessory Services.</p><ul> |
46 Services.</p><ul> |
46 <li><p><b>Generic ID</b>: Generic ID provides the means to describe, detect, |
47 <li><p><b>Generic ID</b>: Generic ID provides the means to describe, |
47 connect, and control an enhancement without a need to use hardware or provider-specific |
48 detect, connect, and control an enhancement without a need to use |
48 definitions. Thus Generic ID must be a native concept for any accessory-related |
49 hardware or provider-specific definitions. Thus Generic ID must be |
49 platform software. For the platform purposes, Generic ID must be defined so |
50 a native concept for any accessory-related platform software. For |
50 that it covers all the enhancement device types, bearers, protocols, and accessory |
51 the platform purposes, Generic ID must be defined so that it covers |
51 feature profiles that the platform supports and for which information is needed.</p> </li> |
52 all the enhancement device types, bearers, protocols, and accessory |
52 <li><p><b>Accessory Policy:</b> Accessory Policy provides the Generic ID data |
53 feature profiles that the platform supports and for which information |
53 type for identifying an accessory on the basis of its features, instead of |
54 is needed.</p> </li> |
54 an accessory-specific ID. Accessory Server uses Accessory Policy through the |
55 <li><p><b>Accessory Policy:</b> Accessory Policy provides the Generic |
55 Accessory Policy API to get information about the connected accessories. A |
56 ID data type for identifying an accessory on the basis of its features, |
56 connected accessory is identified using an assigned Generic ID, which is a |
57 instead of an accessory-specific ID. Accessory Server uses Accessory |
57 data structure that describes the relevant physical and logical features of |
58 Policy through the Accessory Policy API to get information about the |
58 the accessory.</p> </li> |
59 connected accessories. A connected accessory is identified using an |
59 <li><p><b>Accessory Mode:</b> Accessory Mode describes the accessory connection |
60 assigned Generic ID, which is a data structure that describes the |
60 status of the devices connected to a phone and indicates whether the audio |
61 relevant physical and logical features of the accessory.</p> </li> |
61 is routed into the accessory or not. Accessory Mode typically affects the |
62 <li><p><b>Accessory Mode:</b> Accessory Mode describes the accessory |
62 vibra state, lights state, texts, some UI icons and menu items. </p><p><b>Note:</b> Accessory |
63 connection status of the devices connected to a phone and indicates |
63 Mode is a single-valued state, unlike the accessory connection status. Some |
64 whether the audio is routed into the accessory or not. Accessory Mode |
64 supported Accessory Modes include hand portable, wired headset, wireless headset, |
65 typically affects the vibra state, lights state, texts, some UI icons |
65 wired car kit, wireless car kit, headphones, text device, music stand and |
66 and menu items. </p><p><b>Note:</b> Accessory Mode is a single-valued |
|
67 state, unlike the accessory connection status. Some supported Accessory |
|
68 Modes include hand portable, wired headset, wireless headset, wired |
|
69 car kit, wireless car kit, headphones, text device, music stand and |
66 TV-out.</p> </li> |
70 TV-out.</p> </li> |
67 <li><p><b>Accessory Handlers:</b> Accessory Handlers (ASYs) form the Accessory |
71 <li><p><b>Accessory Handlers:</b> Accessory Handlers (ASYs) form the |
68 Framework adaptation layer. Accessory Server hosts multiple ASYs. For example, |
72 Accessory Framework adaptation layer. Accessory Server hosts multiple |
69 wired ASY, bluetooth ASY, plugged display ASY and so on. ASYs can be understood |
73 ASYs. For example, wired ASY, bluetooth ASY, plugged display ASY and |
70 as an accessory adaptation layer between the Accessory Framework and any other |
74 so on. ASYs can be understood as an accessory adaptation layer between |
71 Symbian platform or hardware-related software on the phone. Typical |
75 the Accessory Framework and any other Symbian platform or hardware-related |
72 task of an ASY is accessory detection (registering for hardware indications) |
76 software on the phone. Typical task of an ASY is accessory detection |
73 and providing the capabilities of the accessories to the Accessory framework.</p> </li> |
77 (registering for hardware indications) and providing the capabilities |
74 <li><p><b>Controller:</b> Controller is a device that sends a control message |
78 of the accessories to the Accessory framework.</p> </li> |
75 or command to a target device and is ready to capture responses.</p> </li> |
79 <li><p><b>Controller:</b> Controller is a device that sends a control |
76 <li><p><b>Target:</b> Target is a device that accepts the control message |
80 message or command to a target device and is ready to capture responses.</p> </li> |
77 or command from the controller, invokes necessary procedures and sends out |
81 <li><p><b>Target:</b> Target is a device that accepts the control |
78 responses to controller. </p> </li> |
82 message or command from the controller, invokes necessary procedures |
79 <li><p><b>Bearer:</b> The bearer is a carrier that acts like a vehicle of |
83 and sends out responses to controller. </p> </li> |
80 transmission for remote control messages. The bearer here is an ECom plug-in |
84 <li><p><b>Bearer:</b> The bearer is a carrier that acts like a vehicle |
81 to the Remote Control Server.</p> </li> |
85 of transmission for remote control messages. The bearer here is an |
|
86 ECom plug-in to the Remote Control Server.</p> </li> |
82 </ul><p/></section> |
87 </ul><p/></section> |
83 <section id="GUID-93D60E05-F086-46F4-A0A6-2B8227BBABED"><title>Components</title><p>Accessory Services consists of the following |
88 <section id="GUID-93D60E05-F086-46F4-A0A6-2B8227BBABED"><title>Components</title><p>Accessory Services consists of the following components: </p><ul> |
84 components: </p><ul> |
89 <li><p><b>Accessory Monitor:</b> Provides APIs to retrieve information |
85 <li><p><b>Accessory Monitor:</b> Provides APIs to retrieve information about |
90 about the connected accessories, such as a headset and car kit. </p></li> |
86 the connected accessories, such as a headset and car kit. </p></li> |
91 <li><p><b>Accessory Remote Control:</b> Provides APIs for clients |
87 <li><p><b>Accessory Remote Control:</b> Provides APIs for clients to communicate |
92 to communicate with remote targets in a terminal and remote targets |
88 with remote targets in a terminal and remote targets outside a terminal.</p> </li> |
93 outside a terminal.</p> </li> |
89 <li><p><b>Accessory Server:</b> This is a core component that exposes accessory-related |
94 <li><p><b>Accessory Server:</b> This is a core component that exposes |
90 client and adaptation APIs through the Accessory Framework. The Accessory |
95 accessory-related client and adaptation APIs through the Accessory |
91 Framework provides APIs to query accessory-related information, adjust accessory-related |
96 Framework. The Accessory Framework provides APIs to query accessory-related |
92 user settings and to request control for accessory-related functions. </p> </li> |
97 information, adjust accessory-related user settings and to request |
93 <li><p><b>Headset Status API:</b> Provides APIs for checking the headset status. |
98 control for accessory-related functions. </p> </li> |
94 For example, headset status change notifications.</p> </li> |
99 <li><p><b>Headset Status API:</b> Provides APIs for checking the headset |
95 <li><p><b>Target Selector Plug-in (TSP) Client Mapper:</b> Provides APIs to |
100 status. For example, headset status change notifications.</p> </li> |
96 create mappings between remote control clients.</p> </li> |
101 <li><p><b>Target Selector Plug-in (TSP) Client Mapper:</b> Provides |
97 <li><p><b>Plugged Display:</b> Plugged Display component is an ASY that enables |
102 APIs to create mappings between remote control clients.</p> </li> |
98 High-Definition Multimedia Interface (HDMI) and TV-out support. For more information |
103 <li><p><b>Plugged Display:</b> Plugged Display component is an ASY |
99 about HDMI, see <xref href="http://en.wikipedia.org/wiki/HDMI.dita">Wikipedia</xref>.</p> </li> |
104 that enables High-Definition Multimedia Interface (HDMI) and TV-out |
100 <li><p><b>Remote Control Framework:</b> Provides APIs needed to send and receive |
105 support. For more information about HDMI, see <xref href="http://en.wikipedia.org/wiki/HDMI" scope="external">Wikipedia</xref>.</p> </li> |
101 remote control commands to/from a Bluetooth enabled device.</p> </li> |
106 <li><p><b>Remote Control Framework:</b> Provides APIs needed to send |
|
107 and receive remote control commands to/from a Bluetooth enabled device.</p> </li> |
102 </ul></section> |
108 </ul></section> |
103 <section id="GUID-18563CE6-A880-48E4-96BA-3B50CA8A373F"><title>Using Accessory Services</title><p>You can use features provided |
109 <section id="GUID-18563CE6-A880-48E4-96BA-3B50CA8A373F"><title>Using |
104 by Accessory Services to perform the following tasks:</p><ul> |
110 Accessory Services</title><p>You can use features provided by Accessory |
105 <li><p>Retrieve accessory mode, connection status, accessory device and service |
111 Services to perform the following tasks:</p><ul> |
106 type information.</p></li> |
112 <li><p>Retrieve accessory mode, connection status, accessory device |
|
113 and service type information.</p></li> |
107 <li><p>Retrieve accessory control and connection-related functionality.</p></li> |
114 <li><p>Retrieve accessory control and connection-related functionality.</p></li> |
108 <li><p>Request for a protocol-specific connection handle for accessory audio |
115 <li><p>Request for a protocol-specific connection handle for accessory |
109 control.</p></li> |
116 audio control.</p></li> |
110 <li><p>Handle accessory-related key events.</p></li> |
117 <li><p>Handle accessory-related key events.</p></li> |
111 <li><p>Monitor accessories connected to a phone.</p></li> |
118 <li><p>Monitor accessories connected to a phone.</p></li> |
112 <li><p>Identify accessories connected based on its features, using Generic |
119 <li><p>Identify accessories connected based on its features, using |
113 IDs.</p></li> |
120 Generic IDs.</p></li> |
114 <li><p>Configure accessory-related settings.</p></li> |
121 <li><p>Configure accessory-related settings.</p></li> |
115 <li><p> Retrieve headset connection status.</p></li> |
122 <li><p> Retrieve headset connection status.</p></li> |
116 <li><p>Create mappings between remote control clients.</p></li> |
123 <li><p>Create mappings between remote control clients.</p></li> |
117 <li><p>Configure TV-out settings.</p></li> |
124 <li><p>Configure TV-out settings.</p></li> |
118 </ul></section> |
125 </ul></section> |