summaryrefslogtreecommitdiff
path: root/AudioManagerDaemon/docx/05_unique.dox
blob: a575ef8f3b6506642f66949f9a0ae17c9838aedf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 /*
 * Copyright (C) 2012, BMW AG
 *
 * This file is part of GENIVI Project AudioManager.
 *
 * Contributions are licensed to the GENIVI Alliance under one or more
 * Contribution License Agreements.
 *
 * \copyright
 * This Source Code Form is subject to the terms of the
 * Mozilla Public License, v. 2.0. If a  copy of the MPL was not distributed with
 * this file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * \author Christian Mueller (christian.ei.mueller@bmw.de)
 *
 */
/*!
 \page uniquepage About unique IDs : Static vs Dynamic IDs

 \section why Why having two different kinds of ids?
 The complexity of up-to-date IVI-systems demand to support sources and sinks dynamically added and removed in order to support the variety of CE products,
 but parts of the system are never going to change - to start a dynamic registration here is a waste of system capacity.\n
 \section setup The setup
 The AudioManagement is capable of handling static, dynamic or mixed setups. In case of a dynamic setup, all elements of the system like domains, sinks,
 sources, gateways etc are registered at system start-up. In a static setup, the IDs of the elements are known and fixed - no further registration is needed.
 The start-up for static elements works as follows:\n
 when a domain known as static (this is knowledge of the AudioManagerController, recognized by the unique name of the domain) registers, the
 AudioManagerController enters all elements of this domain in the database. Still, this domain can register additional elements during runtime.
 In case of static setups, the RoutingAdapter needs to ensure that all static elements are ready to be used when the domain registers.\n
 In order to ensure the uniqueness of IDs, there exist two separate ID areas (for each of sources, sinks, gateways and crossfaders):\n\n
 \image html unique.svg
 In case of dynamic added elements, the audiomanagerdaemon ensures the uniqueness of the ID's, in case of the static setup, the project has to ensure the
 uniqueness by assigning the IDs wisely. The knowledge of the static IDs need to be in the AudioManagerController, the RoutingAdapters and in the HMI
 (optional because IDs will be reported anyway).\n
 Domains cannot be static because registering them is the trigger for the AudioManagerController to enter the static values into the database.
*/