summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchristian mueller <christian.ei.mueller@bmw.de>2012-03-07 10:15:47 +0100
committerchristian mueller <christian.ei.mueller@bmw.de>2012-03-07 10:15:47 +0100
commit62773dc7e9076d57764f3e823366697eb8a19060 (patch)
treeae7fca7c0e8f44d18fc4f9da11b8b0a5557e3bfe
parentf23f9c3ecf40636f176107f6098c308f72fdbd5d (diff)
downloadaudiomanager-62773dc7e9076d57764f3e823366697eb8a19060.tar.gz
* forgot to check in the documentation
-rw-r--r--AudioManagerDaemon/docx/01_mainpage.dox29
-rw-r--r--AudioManagerDaemon/docx/02_license.dox37
-rw-r--r--AudioManagerDaemon/docx/03_architecture_overview.dox79
-rw-r--r--AudioManagerDaemon/docx/04_components.dox105
-rw-r--r--AudioManagerDaemon/docx/05_unique.dox37
-rw-r--r--AudioManagerDaemon/docx/06_classification.dox32
-rw-r--r--AudioManagerDaemon/docx/07_interrupts.dox36
-rw-r--r--AudioManagerDaemon/docx/08_connections.dox33
-rw-r--r--AudioManagerDaemon/docx/09_lipsync.dox37
-rw-r--r--AudioManagerDaemon/docx/10_early_audio.dox31
-rw-r--r--AudioManagerDaemon/docx/11_views.dox33
-rw-r--r--AudioManagerDaemon/docx/12_volumes.dox29
-rw-r--r--AudioManagerDaemon/docx/13_properties.dox33
-rw-r--r--AudioManagerDaemon/docx/14_misc.dox38
-rw-r--r--AudioManagerDaemon/docx/15_dlt_support.dox23
-rw-r--r--AudioManagerDaemon/docx/16_readme.dox21
-rw-r--r--AudioManagerDaemon/docx/Doxyfile.in268
-rw-r--r--AudioManagerDaemon/docx/images/AudioDomains.gifbin0 -> 18948 bytes
-rw-r--r--AudioManagerDaemon/docx/images/AudioManagement.pngbin0 -> 21217 bytes
-rw-r--r--AudioManagerDaemon/docx/images/Gateway.gifbin0 -> 14829 bytes
-rw-r--r--AudioManagerDaemon/docx/images/GatewayMatrix.pngbin0 -> 12269 bytes
-rw-r--r--AudioManagerDaemon/docx/images/Levels.pngbin0 -> 52975 bytes
-rw-r--r--AudioManagerDaemon/docx/images/delay.jpgbin0 -> 17066 bytes
-rw-r--r--AudioManagerDaemon/docx/images/early.pngbin0 -> 18557 bytes
-rw-r--r--AudioManagerDaemon/docx/images/genivilogo.pngbin0 -> 9537 bytes
-rw-r--r--AudioManagerDaemon/docx/images/late.pngbin0 -> 15928 bytes
-rw-r--r--AudioManagerDaemon/docx/images/views.pngbin0 -> 65262 bytes
-rw-r--r--CMakeLists.txt2
28 files changed, 902 insertions, 1 deletions
diff --git a/AudioManagerDaemon/docx/01_mainpage.dox b/AudioManagerDaemon/docx/01_mainpage.dox
new file mode 100644
index 0000000..efe252e
--- /dev/null
+++ b/AudioManagerDaemon/docx/01_mainpage.dox
@@ -0,0 +1,29 @@
+/**
+ * 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)
+ *
+ */
+
+/*!
+\mainpage
+
+\image html genivilogo.png
+
+\par More information
+can be found at https://collab.genivi.org/wiki/display/genivi/GENIVI+Home \n
+
+\par About AudioManager
+The AudioManager is a Deamon that manages all Audio Connections in a GENIVI headunit.
+It is a managing instance that uses so called RoutingAdaptors to control AudioDomains that then do the "real" connections.
+*/ \ No newline at end of file
diff --git a/AudioManagerDaemon/docx/02_license.dox b/AudioManagerDaemon/docx/02_license.dox
new file mode 100644
index 0000000..1a31d63
--- /dev/null
+++ b/AudioManagerDaemon/docx/02_license.dox
@@ -0,0 +1,37 @@
+/*
+ * 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 lic License
+\section contr Code Contribution License
+The contribution is done under GENIVI CLA, please see here:
+https://collab.genivi.org/wiki/display/genivi/Code+Contribution+Team
+\section split License Split
+The licenses of this project are split into two parts:\n
+1. the AudioManagerDaemon, licensed under MPL 2.0\n
+2. all other parts that serve as example code that can be taken to build up an own project with it these parts are licensed
+\section mpl Mozilla Public License, v. 2.0
+http://mozilla.org/MPL/2.0/
+\section mit MIT license
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction,
+including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
+THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/ \ No newline at end of file
diff --git a/AudioManagerDaemon/docx/03_architecture_overview.dox b/AudioManagerDaemon/docx/03_architecture_overview.dox
new file mode 100644
index 0000000..c2a4091
--- /dev/null
+++ b/AudioManagerDaemon/docx/03_architecture_overview.dox
@@ -0,0 +1,79 @@
+/**
+ * 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 architecturepage Architecture Overview
+
+The architecture concept bases on the partition of management (logic) and routing (action). Sinks and sources are clustered
+into independent parts which are capable of exchanging audio with each other (AudioDomains). Between these AudioDomains,
+Audio can be interchanged via Gateways. \n
+Since the routing and the management shall be independent from the actual used system, it is realized as an OwnedComponent,
+the AudioManager. Each AudioDomain has a Routing Adapter which implements some necessary logic and is the interface between
+the AudioManager and the AudioDomains.
+
+\section domains Audio Domains
+
+\image html AudioDomains.gif
+An Audio Domain consists of sinks and sources that can exchange audio with each other. To make the most out of the concept,
+AudioDomains shall be chosen in such a way that they are implemented by already existing audio routing engines.
+
+The AudioManager assumes that there are no restrictions in interconnection of sinks and sources. One or more sources can be
+connected to one sink and one or more sinks can be connected to one source. Since real hardware or software might end up in
+having restrictions, the knowledge of this must exist in the AudioManager and handled by him accordingly. This shall be
+accomplished via a plug-in mechanism. An AudioDomain is not tied to a hardware or software implementation. It can be software
+or hardware or even a combination of both. \n
+
+Examples for possible audio domains:\n
+PulseAudio, Alsa, Jack, DSP, FPGA, MOST, In-chip switching matrix\n
+
+The clustering and usage of the AudioDomains will vary from each product. Care must be taken while choosing the right AudioDomains
+in regards to system load (due to resampling), latency and of course flexibility.\n
+In special implementations of the AudioDomain, it is capable of operation a certain time without interaction to the AudioManager.
+This is needed to fulfill the requirements for Early & Late Audio, more information can be found below.
+am::am_Domain_s describe the attribiutes of a domain.
+
+\section routing_adaptor Routing Adapter
+
+Via this adapter, the interconnection from the AudioManager to the AudioDomains is accomplished. An AudioDomain shall have exactly
+one RoutingAdapter. In the terms of GENIVI, a RoutingAdapter is an AbstractComponent, this means that we define an API and a certain
+behavior in UML models but do not maintain components itself. Existing implementations from Proof of Concepts are shipped as example
+Adapters "as is" but cannot be seen as maintained components.\n
+The implementation of a routing adapter can and will vary from each project to another since the combination of sinks and sources,
+the used hardware etc has influence on the adapters. Besides interchanging and abstracting information between the AudioManager and
+the sinks and sources, the Adapters also need to implement some business logic in order to interact with the AudioManager.
+This include for example the registering of components, managing the current state, error handling etc.\n
+In the special case of an EarlyDomain, the routing adapter also has to manage start-up and rundown including persistence for his
+domain while the AudioManager is not started or already stopped. During this periods of time, these special adapters have to be able
+to fulfill basic tasks like changing volumes, for example (this implies that the Adapter is implemented on a different piece of
+hardware, e.g. vehicle processor).
+
+\section gateway Gateway
+
+\image html Gateway.gif
+
+Gateways are used to let audio flow between two domains. They always have a direction and can only transport one stream at a time.
+Several gateways connecting the same domains together can exist in parallel so that more than one source can be connected to more
+than one sink from the same domains at the same time.\n
+In principle, gateways have the ability to convert the connectionFormat of an audiostream, for example the sink could receive audio
+in a digital form and output it as analog (sound card). In order to express the conversion capabilities of a gateway, a matrix of
+all source/sink connectionFormats is given (details below). The sources and sinks of a gateway are registered like ordinary sources
+and sinks where the domains have the responsibility to register "their" sinks and sources.\n
+For every gateway, a controlDomain is defined, this is the domain that registered the gateway. At the time of registering, the ID of
+the "other end" of the gateway might be unknown. To handle this situation, a domain can "peek" Domains, Sources and Sinks. When
+something is peeked, it means that an ID is reserved for a unique name without registering it.\n
+If a gateway is deregistered, the source or sink of the controlling domain is deregistered as well - not the one in the "other" domain.
+*/ \ No newline at end of file
diff --git a/AudioManagerDaemon/docx/04_components.dox b/AudioManagerDaemon/docx/04_components.dox
new file mode 100644
index 0000000..4735740
--- /dev/null
+++ b/AudioManagerDaemon/docx/04_components.dox
@@ -0,0 +1,105 @@
+ /*
+ * 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 audiomanagercomponentspage AudioManager Components
+ \image html AudioManagement.png
+
+ The AudioManager is the central managing instance of the Audio architecture. It is designed as an OwnedComponent, this means that the
+ software is maintained within GENIVI as open source component. The AudioManager consists of 4 central components.\n
+
+
+ \section audiomanagercomponents AudioManagerDaemon
+
+ This component is owned and maintained by Genivi. It is the central audio framework component. There can be only one daemon in a system (singleton).\n
+ The AudioManagerDaemon is subject to this documentation
+
+ \section commander AudioManagerCommandPlugin
+
+ This describes the interface towards the Commanding Instances of the AudioManagerDaemon. This is the HMI and interrupt sources that use this
+ interface to start their interrupt and stop it again. The interface shall be asynchronous. Via this interface all user interactions are handled.
+ This component is designed to be a dynamic linked library that will be loaded on the startup of the AudioManager. There can be more than one
+ CommandPlugin at a time.
+ Since the implementation of this component is project specific, only examples are included.\n
+ An example Dbus Implementation can be found in the folder PluginCommandInterfaceDbus.
+ \n
+ All commands that must be fulfilled by an AudioManagerCommandPlugin are described in am::IAmCommandSend.\n
+ All commands that are presented to AudioManagerCommandPlugin by the AudioManagerDaemon are described in am::IAmCommandReceive.\n
+
+ \section controller AudioManagerController
+ The controller is the intelligent "heart" of the AudioManager and it is project specific. In principle, the controller gets commands from the command
+ interface or events from outside and reacts to them. For this purpose, some basic commands are in the "toolbox" of the Controller that he can use
+ to interact with the rest of the system.\n
+ Among this there are commands to read/write the database and to perform actions on the Audiodomains like connect or disconnect. There must be only one
+ Controller in the system at a time, like the AudioManagerCommandPlugins, the Controller is loaded at startup by the daemon\n
+ A simple example Implementation can be found in the folder PluginControlInterface.
+ \n
+ All commands that must be fulfilled by an AudioManagerController are described in am::IAmControlSend.\n
+ All commands that are presented to AudioManagerController by the AudioManagerDaemon are described in am::IAmControlReceive.\n
+
+ \section router Routing AudioManagerRoutingPlugin
+
+ The AudioManagerRoutingPlugins are used to abstract the actual Hard- and Software that does the routing. There can be more than one plugins at a
+ time, they are loaded at startup time like the commandplugins. \n
+ The AudioManager expects a bus-like structure behind each plug-in, so that a plug-in can implement a bus interface and proxy the messages to the
+ routing adapters - the AudioManager is capable of addressing more than one adapter one each plug-in. The AudioManagerController does not have to
+ know anything about the real system plugins - he sends his commands to sources and sinks. The daemon does the dispatching of these commands.
+ The interface is mainly asynchronous.\
+ Sample plugins can be found in the directory, for example PluginRoutingInterfaceAsync.\n
+ \n
+ All commands that must be fulfilled by an AudioManagerRoutingPlugin are described in am::IAmRoutingSend.\n
+ All commands that are presented to AudioManagerRoutingPlugins by the AudioManagerDaemon are described in am::IAmRoutingReceive.\n
+
+ \page elementspage Elements of the AudioManagement
+
+ The audiomanagement in principle consists of the following elements:
+
+ \section source Sources
+ This is where audio comes from, for examples tuner, mediaplayer. But sources can also be part of a building block that processes audio, examples
+ are here crossfaders or gateways. Several Sinks can be connected to one source.\n
+ \subsection sourceattributes Attributes
+ - am::am_SourceType_s describes the attributes that are accessible from the AudioManagerCommandPlugins.\n
+ - am::am_Source_s describes the general attributes.\n
+
+ \section sinks Sinks
+ This is where audio flows to, for examples amplifier, headphones. But sources can also be part of a building block that processes audio,
+ examples are here crossfaders or gateways. Several Sources can be connected to one sink.\n
+ \subsection sinkattributes Attributes
+ - am::am_SinkType_s describes the attribiutes that are accessible form the AudioManagerCommandPlugins.\n
+ - am::am_Sink_s describes the general attributes.\n
+
+ \section gw Gateways
+ Gateways are described here: \ref gateway
+ A specialitry of a gateways is the convertionmatrix. It indicates which sinksoundformats can be transferred in which sourcesoundformats. A convertion
+ matrix looks like this:
+ \image html GatewayMatrix.png
+ \subsection gwattributes Attributes
+ - am::am_Gateway_s describe the attribiutes of a gateway\n
+
+ \section crossfaders Crossfaders
+ Cross-faders are special elements that can perform cross-fading between two sources connected to the sinks of the crossfader. The audio of either source
+ or both (mixed, during the fade) is put out at the source of the fader. Cross-fading within a source (for example from one song to another) is out of
+ scope audio management and must be performed in the source.\n
+ A crossfader has two sinks and one source, where one sink is the "hot" one. It is in the duty of the AudioManagerController to connect the correct
+ sources to the sinks in order to perform a cross-fade. When fading is started, the hotSink changes from either HS_SINKA or HS_SINKB to HS_INTERMEDIATE,
+ when the fading is finished, it changes to HS_SINKA or HS_SINKB (the sink that was "cold" before).Fading itself is done in the RoutingAdapters, the
+ implementation has to ensure the smooth and synchronous change of volumes. With different rampTypes, different kinds of cross-fade ramps can be supported.
+ The actual status of the "hot" sink is reported by the routingAdapter. Care has to be taken that the correct "hot" end of the crossfader is given
+ at registration time.\n
+ \subsection cfattributes Attributes
+ - am::am_Crossfader_s describes the attribiutes of a Crossfader
+*/ \ No newline at end of file
diff --git a/AudioManagerDaemon/docx/05_unique.dox b/AudioManagerDaemon/docx/05_unique.dox
new file mode 100644
index 0000000..0dc249b
--- /dev/null
+++ b/AudioManagerDaemon/docx/05_unique.dox
@@ -0,0 +1,37 @@
+ /*
+ * 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?\n
+ 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
+ Fixed area (from 1..100)\n
+ Variable area (starting from 101)\n\n
+ 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.
+*/ \ No newline at end of file
diff --git a/AudioManagerDaemon/docx/06_classification.dox b/AudioManagerDaemon/docx/06_classification.dox
new file mode 100644
index 0000000..0b77bde
--- /dev/null
+++ b/AudioManagerDaemon/docx/06_classification.dox
@@ -0,0 +1,32 @@
+ /*
+ * 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 classficationpage Classification of Sinks and Sources
+ \section classification Classification
+ The AudioManagement offers classification for sources and sinks. It can be used to group sources and sinks together and link certain behaviors to these groups.
+ An example for such a use is to group all interrupt sources in a class together and let the AudioManagerController react different for this class.\n
+ Elements can only have one class at a time. The AudioManagerDaemon will take care of registration of sourceClasses, sinkClasses and will assign unique IDs,
+ but the parameters of the Classes itself are product specific and have to be interpreted by the AudioManagerController. This concept allows for very individual
+ implementations of system behaviors.\n
+ Since Classes are held in the database, Classes can be registered and deregistered during runtime, it is recommended that the AudioManagerController enters
+ all source & sink classes at start-up into the database.A ClassProperty exists out of an enumeration (am_ClassProperty_e, project specific) and a corresponding
+ value (integer) that is interpreted by the AudioManagerController according to am_ClassProperty_e.\n
+ There is no restriction to the number of properties a class can have and how many classes can exist in a system.\n
+ \section attributes Attributes
+ - am::am_SourceClass_s describes the attributes of a source class\n
+ - am::am_SinkClass_s describes the attributes of a sink class\n
+*/
diff --git a/AudioManagerDaemon/docx/07_interrupts.dox b/AudioManagerDaemon/docx/07_interrupts.dox
new file mode 100644
index 0000000..51de73b
--- /dev/null
+++ b/AudioManagerDaemon/docx/07_interrupts.dox
@@ -0,0 +1,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 interrupts Interrups & Low Level Interrupts
+ \section diff Differences
+ The only difference between a "normal" interrupt and a source for the audioManagement may lie in it's classification, so playing a "normal" interrupt is not
+ different to changing a source. An exception here are the so called "low level interrupts".\n
+ \section crit Criterias
+ These are special sources that fulfill the following criteria:
+ - direct connection to a sink that is "always on", so no extra actions and communications need to be done in order to play audio
+ - no dependencies to the current system state need to be checked before playing. This means that the source knows if it is allowed to play at the moment it
+ wants to play
+ - all information for the source that is needed to judge if it is allowed to play or not is either directly retrieved by the source or set static via a property.
+
+ This becomes very handy for implementing such things like park distance control. When the source is informed that it needs to output signals
+ (due to an emerging wall for example) it outputs the beeps directly to the amplifier that then overlays the sound to the current active source.\n
+ Settings that influence the behavior of low level interrupts like for example volume offset for park distance control or sound on/off for it need to be done via
+ sourceProperties on the source level, so that the judgment and the adoptions that need to be taken can be taken by the source without system interaction.
+ In order to give the AudioManagerController the chance to react on a low level interrupt (by lowering the main volume for example), a feedback path is provided
+ and the AudioManagerController is informed about the current state of the low level interrupt (via hooklInterruptStatusChange).\n
+*/
diff --git a/AudioManagerDaemon/docx/08_connections.dox b/AudioManagerDaemon/docx/08_connections.dox
new file mode 100644
index 0000000..f57f9a3
--- /dev/null
+++ b/AudioManagerDaemon/docx/08_connections.dox
@@ -0,0 +1,33 @@
+ /*
+ * 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 connpage Connections & MainConnections
+ \section con Connections
+ A connection connects a source to a sink to let audio data flow. The direction of the flow is always source to sink. For each connection the connectionFormat
+ must be defined when the connection is demanded, if source or sink is not capable of supporting this format, the connection cannot be established.
+ ConnectionFormats are product specific, also are some standard formats defined within GENIVI that can be enhanced in the product area. Examples of formats:
+ analog, autodefined, stereo 48khz 16bit PCM, ....
+
+ \section maincon Mainconnections
+ is visible to the HMI and consists out of one or more connections. A MainConnection shall always connect a Source and a Sink visible to the HMI.
+ In contradiction to connections, the MainConnection does not know about connectionFormat. MainConnections are demanded by the commandInterface.
+ This picture demonstrates the relation between MainConnections and connections:
+ \image html Levels.png
+
+ \section att Attributes
+ - am::am_Connection_s describes the attributes of a conenction
+ - */ \ No newline at end of file
diff --git a/AudioManagerDaemon/docx/09_lipsync.dox b/AudioManagerDaemon/docx/09_lipsync.dox
new file mode 100644
index 0000000..6d75343
--- /dev/null
+++ b/AudioManagerDaemon/docx/09_lipsync.dox
@@ -0,0 +1,37 @@
+ /*
+ * 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 lip Lipsync
+
+ \section t The Task of the Audiomanager
+ It is the job of the AudioManager to retrieve all latency timing information from each connection, to aggregate this information and provide a latency #
+ information on a per MainConnection Basis. It is not the task of the AudioManager to actually delay or speed up video or audio signals to achieve a lipsync.
+ The actual correction shall be done in the with the information provided by the AudioManager.
+ The time information is always reported by the routingadapters for each connection. Delays that are introduced in a sink or a gateway are counting for the
+ connection that connects to this sink or gateway.
+ \section ex Example
+ \image html delay.jpg
+
+ This graph shows how the delay is calculated:
+ - Connection 1 has a delay 2ms + 60ms that is added due to the gateway
+ - Connection 2 has a delay 0ms + 10ms due to sink
+ So the routing adapters report 62ms and 10ms, the audiomanager will add this to 72ms and report this value for the main connection from sink to source.
+ The videoplayer getting this information can now delay his video against the audio for 72ms and be in perfect lipsync.\n
+ After the buildup of a connection the first timing information needs to be sent within 5 seconds, the timing information from the routing adapters need to
+ be sent via 4 seconds. If the latency for a connection is variable and changes over lifetime of the connection, the routing adapters shall resend the value
+ and the audiomanager will correct the over all latency.
+*/
diff --git a/AudioManagerDaemon/docx/10_early_audio.dox b/AudioManagerDaemon/docx/10_early_audio.dox
new file mode 100644
index 0000000..1811049
--- /dev/null
+++ b/AudioManagerDaemon/docx/10_early_audio.dox
@@ -0,0 +1,31 @@
+ /*
+ * 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 early Early Audio
+\section req The Requirement
+The requirement reviews showed that one very important aspect of managing audio within GENIVI is the early/late phase where the Linux part of the system is
+not available. This feature is addressed via special domains: EarlyDomains. These domains are acting "unmanaged" - meaning without the interaction with the
+AudioManager - providing a simpler set of features until the AudioManager is up and running. When the Linux system is then fully operable a handover is done
+from the EarlyDomains towards the AudioManager. In order to be able to operate without the Linux up and running, the EarlyDomains must be implemented on a
+second fast-boot or always-on controller, e.g. the so called vehicle processor.\n
+\section earlys Early Startup
+This picture shows the principle of the early startup:
+\image html early.png
+\section late Late Rundown
+This picture shows the principle of the late rundown:
+\image html late.png
+*/ \ No newline at end of file
diff --git a/AudioManagerDaemon/docx/11_views.dox b/AudioManagerDaemon/docx/11_views.dox
new file mode 100644
index 0000000..b9efc92
--- /dev/null
+++ b/AudioManagerDaemon/docx/11_views.dox
@@ -0,0 +1,33 @@
+ /*
+ * 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 views The two views of the AudioManager
+In general, there are two views of the system:\n
+\section command The CommandInterface View View
+This is an abstracted view that the HMI and other controlling Instances have of the system. Every Information (with some little exceptions) here is maintained
+by the AudioManagerController, so that he can "fake" situations for the HMI.
+So why is that? Depending on the actual project it might be - for example - that not the volume at the sink must be changed, but instead of the source.
+The HMI does not know about sourceVolumes (and does not need to!) so the HMI would change the sink volume and the AudioManagerController can translate it to a
+sourceVolumeChange. The metrics of the volumes are different as well.
+It is the duty of the AudioManagementController to keep the commandInterface information consistent with the "real" situation.
+\section route RoutingInterface View
+Here are the "real" system states. All changes that are done on this interface are maintained by the AudioMangerDaemon and here is the actual situation always
+consistent with the reality. All actions on this interface are either triggered by the AudioManagerController or by the domains itself, like registration for
+example.
+\section over Overview
+\image html views.png
+*/ \ No newline at end of file
diff --git a/AudioManagerDaemon/docx/12_volumes.dox b/AudioManagerDaemon/docx/12_volumes.dox
new file mode 100644
index 0000000..c58b7f8
--- /dev/null
+++ b/AudioManagerDaemon/docx/12_volumes.dox
@@ -0,0 +1,29 @@
+ /*
+ * 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 vol Volumes & MainVolumes
+\section mainVol MainVolumes
+This is the volume at the CommanInterface level. The exact definition is project specific and can be adopted for each project since the AudioManagerController
+and the HMI are the only ones who need to interfere with this volume. The actual value is an integer.
+- am::am_mainVolume_t defines the mainvolume
+
+\section volv Volumes
+These are the actual volumes that are set for sources and sinks. The unit is 0.1 db steps,The smallest value -3000 (=AM_MUTE). The minimum and maximum can be
+limited by actual project.
+- am::am_volume_t describes the volume
+*/
diff --git a/AudioManagerDaemon/docx/13_properties.dox b/AudioManagerDaemon/docx/13_properties.dox
new file mode 100644
index 0000000..577c743
--- /dev/null
+++ b/AudioManagerDaemon/docx/13_properties.dox
@@ -0,0 +1,33 @@
+ /*
+ * 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 prop Properties
+ \section soundprop SoundProperties & MainSoundProperties
+SoundProperties are properties that are related to either a source or a sink. They are product specific and are used to set source or sink specific properties.
+This could be for example: equalizer settings, relative volume offsets but also bool information "surround sound on/off".
+A soundProperty is defined by its type (am_SoundProperty_e, a product specific enum) and a value (integer) that is interpreted according to the type.
+There are not limits how many properties a sink or a source can have. SoundProperties in contradiction to MainSoundProperties are not visible to the
+CommandInterface.\n
+- am::am_SoundProperty_s describe the of the SoundProperties
+- am::am_MainSoundProperty_s describe the attributes of MainSoundProperties
+ *
+\section sys SystemProperties
+are properties that apply to the whole system or parts of it but cannot be tight to a specific sink or source. They are product specific and could be used
+for example to set general behavior like all interrupts on/off for example. The information is only exchanged between the commandInterface and the
+AudioManagerController. The AudioManagerController has to interpret the value and react accordingly.
+- am::am_SystemProperty_s describes the attributes of Systemproperties
+*/ \ No newline at end of file
diff --git a/AudioManagerDaemon/docx/14_misc.dox b/AudioManagerDaemon/docx/14_misc.dox
new file mode 100644
index 0000000..1623f95
--- /dev/null
+++ b/AudioManagerDaemon/docx/14_misc.dox
@@ -0,0 +1,38 @@
+ /*
+ * 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 misc Miscellaneous
+
+\section connfor Connection Formats
+Every flow of audio is using a format to exchange data. The format that the source and the sink uses must match together in order to have an undisturbed
+experience. It is common that sources and sinks are capable of supporting more than one audioformat.\n
+So all sources and sinks register with a list of connectionFormats that they support and for each connection a format must be chosen that is then used
+to transport the audio data. Gateways (and Soundconverters) have the information which connectionFormat can be transformed into another one.
+- am::am_ConnectionFormat_e has all formats listed.
+
+\section pers Persistence & Lifecycle
+Details of persistence can be done when the si-team have defined the components and interfaces in the Enterprise Architect model.
+So much is clear: the persistence will be based on POSIX interfaces that can be used to read and write data.\n
+Persistence is a very system specific topic: what needs to be remembered over lifecycles, what will be reset to default? So this needs to be done via the
+AudioMangerController. The Controller will then enter the values read from the persistence and write them to the daemon.
+The lifecycle itself will be handles by the daemon which will then fire hooks in the controller to make sure appropriate actions are taken.
+
+\section speed Speed dependent volume
+The adjustments for the speed are done product specific in the controller. The speed information itself is retrieved by the AudioManagerDaemon, sampled and
+quantified and forwarded to the controller. The interface in not yet defined !\n
+Turning speed controlled volume on/off and possible settings are achieved via SinkSoundProperty settings.
+*/ \ No newline at end of file
diff --git a/AudioManagerDaemon/docx/15_dlt_support.dox b/AudioManagerDaemon/docx/15_dlt_support.dox
new file mode 100644
index 0000000..93be712
--- /dev/null
+++ b/AudioManagerDaemon/docx/15_dlt_support.dox
@@ -0,0 +1,23 @@
+ /*
+ * 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 dlt Dlt support
+\section compile Compilerswitch
+The AudioManager can be compiled with or without DLT support, in case that DLT is not compiled in (cmake option WITH_DLT), logging is switched off.
+You can log to the commandline by starting the Audiomanager with the option -V.\n
+If you want to log to the commandline and you have dlt compiled in, use the environment variable of the dlt to log to the command line.
+*/ \ No newline at end of file
diff --git a/AudioManagerDaemon/docx/16_readme.dox b/AudioManagerDaemon/docx/16_readme.dox
new file mode 100644
index 0000000..d23d2ff
--- /dev/null
+++ b/AudioManagerDaemon/docx/16_readme.dox
@@ -0,0 +1,21 @@
+ /*
+ * 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 comp Compiling & Co
+\section readme Readme
+\include ../README
+*/ \ No newline at end of file
diff --git a/AudioManagerDaemon/docx/Doxyfile.in b/AudioManagerDaemon/docx/Doxyfile.in
new file mode 100644
index 0000000..4c6f48a
--- /dev/null
+++ b/AudioManagerDaemon/docx/Doxyfile.in
@@ -0,0 +1,268 @@
+# Doxyfile 1.6.3
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+DOXYFILE_ENCODING = UTF-8
+PROJECT_NAME = AudioManager
+PROJECT_NUMBER = @DAEMONVERSION@
+OUTPUT_DIRECTORY = @CMAKE_SOURCE_DIR@/doc
+CREATE_SUBDIRS = NO
+OUTPUT_LANGUAGE = English
+BRIEF_MEMBER_DESC = YES
+REPEAT_BRIEF = YES
+ABBREVIATE_BRIEF =
+ALWAYS_DETAILED_SEC = NO
+INLINE_INHERITED_MEMB = NO
+FULL_PATH_NAMES = NO
+STRIP_FROM_PATH =
+STRIP_FROM_INC_PATH =
+SHORT_NAMES = YES
+JAVADOC_AUTOBRIEF = YES
+QT_AUTOBRIEF = YES
+MULTILINE_CPP_IS_BRIEF = YES
+INHERIT_DOCS = YES
+SEPARATE_MEMBER_PAGES = NO
+TAB_SIZE = 8
+ALIASES =
+OPTIMIZE_OUTPUT_FOR_C = NO
+OPTIMIZE_OUTPUT_JAVA = NO
+OPTIMIZE_FOR_FORTRAN = NO
+OPTIMIZE_OUTPUT_VHDL = NO
+EXTENSION_MAPPING =
+BUILTIN_STL_SUPPORT = YES
+CPP_CLI_SUPPORT = YES
+SIP_SUPPORT = NO
+IDL_PROPERTY_SUPPORT = YES
+DISTRIBUTE_GROUP_DOC = NO
+SUBGROUPING = YES
+TYPEDEF_HIDES_STRUCT = NO
+SYMBOL_CACHE_SIZE = 0
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+EXTRACT_ALL = YES
+EXTRACT_PRIVATE = NO
+EXTRACT_STATIC = YES
+EXTRACT_LOCAL_CLASSES = YES
+EXTRACT_LOCAL_METHODS = YES
+EXTRACT_ANON_NSPACES = NO
+HIDE_UNDOC_MEMBERS = NO
+HIDE_UNDOC_CLASSES = NO
+HIDE_FRIEND_COMPOUNDS = NO
+HIDE_IN_BODY_DOCS = NO
+INTERNAL_DOCS = NO
+CASE_SENSE_NAMES = NO
+HIDE_SCOPE_NAMES = NO
+SHOW_INCLUDE_FILES = YES
+FORCE_LOCAL_INCLUDES = NO
+INLINE_INFO = YES
+SORT_MEMBER_DOCS = YES
+SORT_BRIEF_DOCS = NO
+SORT_MEMBERS_CTORS_1ST = YES
+SORT_GROUP_NAMES = YES
+SORT_BY_SCOPE_NAME = NO
+GENERATE_TODOLIST = NO
+GENERATE_TESTLIST = YES
+GENERATE_BUGLIST = YES
+GENERATE_DEPRECATEDLIST= YES
+ENABLED_SECTIONS =
+MAX_INITIALIZER_LINES = 30
+SHOW_USED_FILES = YES
+SHOW_DIRECTORIES = YES
+SHOW_FILES = YES
+SHOW_NAMESPACES = YES
+FILE_VERSION_FILTER =
+LAYOUT_FILE =
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET = YES
+WARNINGS = YES
+WARN_IF_UNDOCUMENTED = YES
+WARN_IF_DOC_ERROR = YES
+WARN_NO_PARAMDOC = NO
+WARN_FORMAT = "$file:$line: $text "
+WARN_LOGFILE =
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT = @CMAKE_CURRENT_SOURCE_DIR@
+INPUT_ENCODING = UTF-8
+FILE_PATTERNS = *.h *.cpp *.dox
+RECURSIVE = YES
+EXCLUDE =
+EXCLUDE_SYMLINKS = NO
+EXCLUDE_PATTERNS = */test/* */Plugin*/* */build*/*
+EXCLUDE_SYMBOLS =
+EXAMPLE_PATH = @CMAKE_SOURCE_DIR@
+EXAMPLE_PATTERNS =
+EXAMPLE_RECURSIVE = NO
+IMAGE_PATH = @CMAKE_SOURCE_DIR@/AudioManagerDaemon/docx/images
+INPUT_FILTER =
+FILTER_PATTERNS =
+FILTER_SOURCE_FILES = NO
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER = YES
+INLINE_SOURCES = NO
+STRIP_CODE_COMMENTS = YES
+REFERENCED_BY_RELATION = YES
+REFERENCES_RELATION = YES
+REFERENCES_LINK_SOURCE = YES
+USE_HTAGS = NO
+VERBATIM_HEADERS = YES
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX = YES
+COLS_IN_ALPHA_INDEX = 5
+IGNORE_PREFIX = YES
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML = YES
+HTML_OUTPUT =
+HTML_FILE_EXTENSION = .html
+HTML_HEADER =
+HTML_FOOTER =
+HTML_STYLESHEET =
+HTML_COLORSTYLE_HUE = 220
+HTML_COLORSTYLE_SAT = 100
+HTML_COLORSTYLE_GAMMA = 80
+HTML_TIMESTAMP = YES
+HTML_ALIGN_MEMBERS = YES
+HTML_DYNAMIC_SECTIONS = YES
+GENERATE_DOCSET = YES
+DOCSET_FEEDNAME = "AudioManager docs"
+DOCSET_BUNDLE_ID = org.genivi.AudioManager.Doxygen
+DOCSET_PUBLISHER_ID = org.genivi.AudioManager.Publisher
+DOCSET_PUBLISHER_NAME = genivi
+GENERATE_HTMLHELP = NO
+CHM_FILE =
+HHC_LOCATION =
+GENERATE_CHI = NO
+CHM_INDEX_ENCODING =
+BINARY_TOC = NO
+TOC_EXPAND = NO
+GENERATE_QHP = NO
+QCH_FILE =
+QHP_NAMESPACE = org.doxygen.Project
+QHP_VIRTUAL_FOLDER = doc
+QHP_CUST_FILTER_NAME =
+QHP_CUST_FILTER_ATTRS =
+QHP_SECT_FILTER_ATTRS =
+QHG_LOCATION =
+GENERATE_ECLIPSEHELP = NO
+ECLIPSE_DOC_ID = org.genivi.AudioManager
+DISABLE_INDEX = NO
+ENUM_VALUES_PER_LINE = 4
+GENERATE_TREEVIEW = YES
+USE_INLINE_TREES = YES
+TREEVIEW_WIDTH = 250
+EXT_LINKS_IN_WINDOW = YES
+FORMULA_FONTSIZE = 10
+SEARCHENGINE = YES
+SERVER_BASED_SEARCH = NO
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX = NO
+LATEX_OUTPUT =
+LATEX_CMD_NAME = latex
+MAKEINDEX_CMD_NAME = makeindex
+COMPACT_LATEX = NO
+PAPER_TYPE = a4wide
+EXTRA_PACKAGES =
+LATEX_HEADER =
+PDF_HYPERLINKS = YES
+USE_PDFLATEX = NO
+LATEX_BATCHMODE = NO
+LATEX_HIDE_INDICES = NO
+LATEX_SOURCE_CODE = NO
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF = NO
+RTF_OUTPUT =
+COMPACT_RTF = NO
+RTF_HYPERLINKS = NO
+RTF_STYLESHEET_FILE =
+RTF_EXTENSIONS_FILE =
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN = NO
+MAN_OUTPUT = @CMAKE_SOURCE_DIR@/man
+MAN_EXTENSION = .3
+MAN_LINKS = NO
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML = NO
+XML_OUTPUT = xml
+XML_SCHEMA =
+XML_DTD =
+XML_PROGRAMLISTING = YES
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF = YES
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD = NO
+PERLMOD_LATEX = NO
+PERLMOD_PRETTY = YES
+PERLMOD_MAKEVAR_PREFIX =
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING = YES
+MACRO_EXPANSION = YES
+EXPAND_ONLY_PREDEF = YES
+SEARCH_INCLUDES = YES
+INCLUDE_PATH =
+INCLUDE_FILE_PATTERNS =
+PREDEFINED =
+EXPAND_AS_DEFINED =
+SKIP_FUNCTION_MACROS = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+TAGFILES = qtools_docs/qtools.tag=../../qtools_docs/html
+GENERATE_TAGFILE =
+ALLEXTERNALS = NO
+EXTERNAL_GROUPS = YES
+PERL_PATH = /usr/bin/perl
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS = YES
+MSCGEN_PATH =
+HIDE_UNDOC_RELATIONS = YES
+HAVE_DOT = YES
+DOT_FONTNAME = FreeSans.ttf
+DOT_FONTSIZE = 10
+DOT_FONTPATH =
+CLASS_GRAPH = YES
+COLLABORATION_GRAPH = YES
+GROUP_GRAPHS = YES
+UML_LOOK = NO
+TEMPLATE_RELATIONS = YES
+INCLUDE_GRAPH = YES
+INCLUDED_BY_GRAPH = YES
+CALL_GRAPH = YES
+CALLER_GRAPH = YES
+GRAPHICAL_HIERARCHY = YES
+DIRECTORY_GRAPH = YES
+DOT_IMAGE_FORMAT = png
+DOT_PATH =
+DOTFILE_DIRS =
+DOT_GRAPH_MAX_NODES = 50
+MAX_DOT_GRAPH_DEPTH = 0
+DOT_TRANSPARENT = NO
+DOT_MULTI_TARGETS = YES
+GENERATE_LEGEND = YES
+DOT_CLEANUP = YES
diff --git a/AudioManagerDaemon/docx/images/AudioDomains.gif b/AudioManagerDaemon/docx/images/AudioDomains.gif
new file mode 100644
index 0000000..d3f1c8d
--- /dev/null
+++ b/AudioManagerDaemon/docx/images/AudioDomains.gif
Binary files differ
diff --git a/AudioManagerDaemon/docx/images/AudioManagement.png b/AudioManagerDaemon/docx/images/AudioManagement.png
new file mode 100644
index 0000000..8d74798
--- /dev/null
+++ b/AudioManagerDaemon/docx/images/AudioManagement.png
Binary files differ
diff --git a/AudioManagerDaemon/docx/images/Gateway.gif b/AudioManagerDaemon/docx/images/Gateway.gif
new file mode 100644
index 0000000..45badf9
--- /dev/null
+++ b/AudioManagerDaemon/docx/images/Gateway.gif
Binary files differ
diff --git a/AudioManagerDaemon/docx/images/GatewayMatrix.png b/AudioManagerDaemon/docx/images/GatewayMatrix.png
new file mode 100644
index 0000000..dcc0682
--- /dev/null
+++ b/AudioManagerDaemon/docx/images/GatewayMatrix.png
Binary files differ
diff --git a/AudioManagerDaemon/docx/images/Levels.png b/AudioManagerDaemon/docx/images/Levels.png
new file mode 100644
index 0000000..9ba0886
--- /dev/null
+++ b/AudioManagerDaemon/docx/images/Levels.png
Binary files differ
diff --git a/AudioManagerDaemon/docx/images/delay.jpg b/AudioManagerDaemon/docx/images/delay.jpg
new file mode 100644
index 0000000..6b645b7
--- /dev/null
+++ b/AudioManagerDaemon/docx/images/delay.jpg
Binary files differ
diff --git a/AudioManagerDaemon/docx/images/early.png b/AudioManagerDaemon/docx/images/early.png
new file mode 100644
index 0000000..016cad7
--- /dev/null
+++ b/AudioManagerDaemon/docx/images/early.png
Binary files differ
diff --git a/AudioManagerDaemon/docx/images/genivilogo.png b/AudioManagerDaemon/docx/images/genivilogo.png
new file mode 100644
index 0000000..d016ec8
--- /dev/null
+++ b/AudioManagerDaemon/docx/images/genivilogo.png
Binary files differ
diff --git a/AudioManagerDaemon/docx/images/late.png b/AudioManagerDaemon/docx/images/late.png
new file mode 100644
index 0000000..76753a8
--- /dev/null
+++ b/AudioManagerDaemon/docx/images/late.png
Binary files differ
diff --git a/AudioManagerDaemon/docx/images/views.png b/AudioManagerDaemon/docx/images/views.png
new file mode 100644
index 0000000..d036ef4
--- /dev/null
+++ b/AudioManagerDaemon/docx/images/views.png
Binary files differ
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e91d385..ea0ee5f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -116,7 +116,7 @@ SET(DOXY_PROTOTYPE ${CMAKE_SOURCE_DIR}/cmake/DoxyFile.in)
SET(DOXY_FILE ${CMAKE_CURRENT_BINARY_DIR}/DoxyFile)
CONFIGURE_FILE( ${CMAKE_SOURCE_DIR}/cmake/config.cmake ${CMAKE_SOURCE_DIR}/include/config.h )
-CONFIGURE_FILE( ${CMAKE_SOURCE_DIR}/AudioManagerDaemon/doc/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/DoxyFile )
+CONFIGURE_FILE( ${CMAKE_SOURCE_DIR}/AudioManagerDaemon/docx/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/DoxyFile )
IF(WITH_DLT)