© Advanced Driver Information Technology Corporation reserves all rights, including rights of disposal such as copying and passing on to third parties.
last update: <Date of last Document Revision dd-mmm-yyyy>
GENIVI Audio Manager: Generic Controller Plug-in
AGL All Member Meeting Winter 2016
Toshiaki Isogai, Senior Engineer
Advanced Driver Information Technology Corporation
ADIT is joint venture company of DENSO Corporation and Robert Bosch GmbH/Robert Bosch Car Multimedia
© Advanced Driver Information Technology Corporation reserves all rights, including rights of disposal such as copying and passing on to third parties.
Slide 2 <Date of last Document Revision dd-mmm-yyyy> · <Document Title> Use menu "View - Header and Footer..." to modify
IVI Audio Management Scope Policy Management - Use Cases Routing - System Topology
GENIVI Audio Manager Overview Policy Management – Business logic handling Routing - Domain Abstraction
Generic Controller Plug-in Overview Motivation Configuration
Question and Answer
Agenda
© Advanced Driver Information Technology Corporation reserves all rights, including rights of disposal such as copying and passing on to third parties.
Slide 3 <Date of last Document Revision dd-mmm-yyyy> · <Document Title> Use menu "View - Header and Footer..." to modify
IVI Audio Management Scope Policy Management - Use Cases Routing - System Topology
GENIVI Audio Manager Overview Policy Management – Business logic handling Routing - Domain Abstraction
Generic Controller Plug-in Overview Motivation Configuration
Question and Answer
© Advanced Driver Information Technology Corporation reserves all rights, including rights of disposal such as copying and passing on to third parties.
Slide 4 <Date of last Document Revision dd-mmm-yyyy> · <Document Title> Use menu "View - Header and Footer..." to modify
Policy Management Active Source Change Last Audio (Persistency) Mixing & Volume Attenuation
Routing Several software/hardware routing mechanism Inter-connection between multiple H/W (ECU)
Processing Equalizing Volume Normalization
Early Audio Startup sound Back guide monitor/Parking distance control
Multi User User dedicated setting
IVI Audio Management Scope
Audio managem
ent
Early / Late
Audio
Equalizing
Multi User
Interconnection
Mixing& Source Change
Priority Handling
© Advanced Driver Information Technology Corporation reserves all rights, including rights of disposal such as copying and passing on to third parties.
Slide 5 <Date of last Document Revision dd-mmm-yyyy> · <Document Title> Use menu "View - Header and Footer..." to modify
Policy Management Active Source Change Last Audio (Persistency) Mixing & Volume Attenuation
Routing Several software/hardware routing mechanism Inter-connection between multiple H/W (ECU)
Processing Equalizing Volume Normalization
Early Audio Startup sound Back guide monitor/Parking distance control
Multi User User dedicated setting
IVI Audio Management Scope
Audio managem
ent
Early / Late
Audio
Equalizing
Multi User
Interconnection
Mixing& Source Change
Priority Handling
© Advanced Driver Information Technology Corporation reserves all rights, including rights of disposal such as copying and passing on to third parties.
Slide 6 <Date of last Document Revision dd-mmm-yyyy> · <Document Title> Use menu "View - Header and Footer..." to modify
Example Use Cases for Policy Management Active Source Change
1. Driver is listening to Radio in the car. 2. Driver push the button to change audio source to USB Audio. 3. IVI system automatically stop playing Radio, and then play USB Audio.
Last Audio (Persistence)
1. Driver is listening to Radio in the car. 2. Driver turns off/on the engine. 3. IVI system automatically start playing Radio.
Mixing & Volume Attenuation
1. Driver is listening to Radio in the car. 2. Car close to cross road. 3. IVI system attenuate the volume level of Radio, and then start playing
Navigation Guidance. 4. After Navigation Guidance is completed, IVI system recover the volume
level of Radio and play again.
IVI Audio Management Policy Management – Use Cases
© Advanced Driver Information Technology Corporation reserves all rights, including rights of disposal such as copying and passing on to third parties.
Slide 7 <Date of last Document Revision dd-mmm-yyyy> · <Document Title> Use menu "View - Header and Footer..." to modify
Desktop system In most cases sound devices are
connected to desktop directly. Audio application can gather the audio
streaming data from source device, and deliver to sink device.
If more than one device are audible, they are just mixed.
IVI system No standard system topology. Several devices (ECUs) which become
audio source integrated Independent sound device e.g. ICS /
PDC. Audio streaming data might not be
processed directly from only one ECU.
IVI Audio Management Routing – System Topology
ICS / PDC
© Advanced Driver Information Technology Corporation reserves all rights, including rights of disposal such as copying and passing on to third parties.
Slide 8 <Date of last Document Revision dd-mmm-yyyy> · <Document Title> Use menu "View - Header and Footer..." to modify
Policy Management Audio source/sink in IVI system shall be managed in one place. Active source shall be remembered. Implicit/automatic behavior shall be configurable due to product specific.
Routing Different software/hardware routing mechanism shall be supported. Inter-connection handling between ECUs shall be supported.
Early / Late Audio Sound device which is started earlier than application processor shall be
considered.
IVI Audio Management Requirements
© Advanced Driver Information Technology Corporation reserves all rights, including rights of disposal such as copying and passing on to third parties.
Slide 9 <Date of last Document Revision dd-mmm-yyyy> · <Document Title> Use menu "View - Header and Footer..." to modify
IVI Audio Management Scope Policy Management - Use Cases Routing - System Architecture
GENIVI Audio Manager Overview Policy Management – Business logic handling Routing - Domain Abstraction
Generic Controller Plug-in Overview Motivation Configuration
Question and Answer
© Advanced Driver Information Technology Corporation reserves all rights, including rights of disposal such as copying and passing on to third parties.
Slide 10 <Date of last Document Revision dd-mmm-yyyy> · <Document Title> Use menu "View - Header and Footer..." to modify
What is GENIVI Audio Manager ? is framework for managing audio in
IVI context. is maintained by GENIVI as OSS
project since 2013. http://projects.genivi.org/audio-
manager/home consists of central daemon and
three plug-ins around. provides HMI application common
interface to setup route, change volume by Command Plug-in.
provides abstraction to support different hardware/software routing mechanism by Routing Plug-in.
provides possibility to implement different logic for different projects by Controller Plug-in.
GENIVI Audio Manager - Overview
cmp AudioManager
GENIVI Audio Manager
Audio Manager Daemon
Command Plug-in
Controller Plug-in
Routing Plug-in
ALSA Domain DSP Domain Proprietary Routing Domain
HMI Application
© Advanced Driver Information Technology Corporation reserves all rights, including rights of disposal such as copying and passing on to third parties.
cmp Ov erView
Audio Manager Daemon
Command Plug-in
Controller Plug-in
Routing Plug-in
Slide 11 <Date of last Document Revision dd-mmm-yyyy> · <Document Title> Use menu "View - Header and Footer..." to modify
GENIVI Audio Manager applies “Business logic” to routing/volume request from Application.
Business Logic can be separately implemented by Controller Plug-in
GENIVI Audio Management – Policy Management
Application request routing/volume control via Command Plug-in
Decision of policy is applied by Controller Plug-in
Actual audio routing/processing request is issued to Audio Domain via Routing Plug-in
© Advanced Driver Information Technology Corporation reserves all rights, including rights of disposal such as copying and passing on to third parties.
Slide 12 <Date of last Document Revision dd-mmm-yyyy> · <Document Title> Use menu "View - Header and Footer..." to modify
Example IVI system architecture There are three
separated H/W
Application Processor directly handle Mass Storage Device and Bluetooth Device.
Radio Tuner and CD Player are controlled by Heard Unit.
DSP mixes audio input from Application Processor, Radio Tuner and CD Player.
GENIVI Audio Management Routing – System Architecture
deployment Deployment
Audio Board
« executionEnviron...Application Processor
« devic...Mass Storage
Device
« device»Bluetooth
Device
CD PlayerRadio Tuner
« executionEnviron...Audio Processor
DSP
Amplifier
Bluetooth
I2S
I2S
Control
Control
Control
I2S
Control
I2S
USB
© Advanced Driver Information Technology Corporation reserves all rights, including rights of disposal such as copying and passing on to third parties.
Slide 13 <Date of last Document Revision dd-mmm-yyyy> · <Document Title> Use menu "View - Header and Footer..." to modify
Abstraction by Audio Domain Different
hardware/software routing mechanism can be abstracted as an Audio Domain.
Audio Manager control each Audio Domain via Routing Adapter which control routing/volume in particular way.
Inter-connection between two different Audio Domains is done by gateway.
GENIVI Audio Management Routing – Audio Domain Abstraction
cmp DomainAbstraction
ALSA Domain DSP Domain
HeadUnit Domain
GENIVI Audio Manager
Routing Adapter
ALSA
Routing Adapter DSP
Routing Adapter
Head Unit
HMI Application
MediaPlayer
Bluetooth
RadioTuner CDPlayer
Amplifier
I2S_IN
I2S_INI2S_OUT
I2S_OUT
source
sink
Legend
Routing/Volume Control Request
Gateway
«flow»
Gateway
© Advanced Driver Information Technology Corporation reserves all rights, including rights of disposal such as copying and passing on to third parties.
Slide 14 <Date of last Document Revision dd-mmm-yyyy> · <Document Title> Use menu "View - Header and Footer..." to modify
Early Domain Handling and Migration
GENIVI Audio Management Early Audio – Independent start up
Early Domain started independently before Audio Manager is launched.
Audio Manager is launched and starts observing Early Domain via Routing Adapter.
Audio Manager takes over control right from Routing Adapter and migrates to usual sequence.
© Advanced Driver Information Technology Corporation reserves all rights, including rights of disposal such as copying and passing on to third parties.
Slide 15 <Date of last Document Revision dd-mmm-yyyy> · <Document Title> Use menu "View - Header and Footer..." to modify
IVI Audio Management Scope Policy Management - Use Cases Routing - System Architecture
GENIVI Audio Manager Overview Policy Management – Business logic handling Routing - Domain Abstraction
Generic Controller Plug-in Overview Motivation Configuration
Question and Answer
© Advanced Driver Information Technology Corporation reserves all rights, including rights of disposal such as copying and passing on to third parties.
Slide 16 <Date of last Document Revision dd-mmm-yyyy> · <Document Title> Use menu "View - Header and Footer..." to modify
Motivation To reduce the development effort for different project/product To ease the design of routing/volume control policies To contribute working/product ready set as OSS
Generic Controller Motivation
© Advanced Driver Information Technology Corporation reserves all rights, including rights of disposal such as copying and passing on to third parties.
Slide 17 <Date of last Document Revision dd-mmm-yyyy> · <Document Title> Use menu "View - Header and Footer..." to modify
Component Generic Controller Plug-in for Audio Manager
License MPL 2.0
Dependency Automotive DLT, libxml2
Supported Features Routing/Volume policies can be configured by XML Routing Policy
Preferred/restricted route detection by System Topology Confliction management based on priority, or requested order
Volume Policy Volume adjustment in case of multiple routes Volume conversion between user request and low level dB
Static registration (Sources, Sinks, Gateways etc…) for early start-up Classification of sources/sinks for ease policy configuration Automatic reverting to previous state when error happen.
Generic Controller Overview
cmp Ov erView
Audio Manager Daemon
Command Plug-in
Controller Plug-in
Routing Plug-in
© Advanced Driver Information Technology Corporation reserves all rights, including rights of disposal such as copying and passing on to third parties.
Slide 20 <Date of last Document Revision dd-mmm-yyyy> · <Document Title> Use menu "View - Header and Footer..." to modify
A Policy is defined by following three data Trigger - When Policy needs to be applied Condition(s) - In which conditions Policy can start execution Action(s) – How Policy realize expected behavior
Generic Controller Policy Management
© Advanced Driver Information Technology Corporation reserves all rights, including rights of disposal such as copying and passing on to third parties.
Slide 21 <Date of last Document Revision dd-mmm-yyyy> · <Document Title> Use menu "View - Header and Footer..." to modify
Example Policy <policy>
<name> Example Policy </name> <trigger> USER_REQUEST_CONNECTION </trigger> <process>
<condition> name(SOURCE, REQUESTING) EQ “MediaPlayer” </condition> <action>
<type> ACTION_DISCONNECT </type> <param>
<sourceName> ”RadioTuner” </sourceName> </param>
</action> <action>
<type> ACTION_CONNECT </type> <param>
<sourceName> ”MediaPlayer” </sourceName> <sinkName> ”Amplifier” </sinkName>
</param> </action>
</process> </policy>
Generic Controller Policy Description
© Advanced Driver Information Technology Corporation reserves all rights, including rights of disposal such as copying and passing on to third parties.
Slide 22 <Date of last Document Revision dd-mmm-yyyy> · <Document Title> Use menu "View - Header and Footer..." to modify
Trigger Trigger is Input event for starting evaluation of Condition(s), and execution of
Action(s) Generic Controller can treat both user request from application and event from
routing domain as Trigger. If there are more than two Policies with same Trigger, Generic Controller
evaluate all of them by appeared order in configuration
Format of description <trigger> Trigger Name </trigger>
Example <trigger> USER_REQUEST_CONNECTION </trigger> <trigger> USER_SET_SINK_VOLUME_CHANGE </trigger>
Generic Controller Policy Description
© Advanced Driver Information Technology Corporation reserves all rights, including rights of disposal such as copying and passing on to third parties.
Slide 23 <Date of last Document Revision dd-mmm-yyyy> · <Document Title> Use menu "View - Header and Footer..." to modify
Condition Mathematical expression to evaluate input parameter, current status, etc …
Format of description <condition> [LHS] [OPERATOR] [RHS] </condition>
Example Check whether volume level of Amplifier is less than 30 decibel.
<condition> volume(SINK, “Amp”) LT “30” </condition>
Check whether source requested by user is media player. <condition> name(SOURCE, REQUESTED) EQ ”MediaPlayer” </condition>
Generic Controller Policy Description
© Advanced Driver Information Technology Corporation reserves all rights, including rights of disposal such as copying and passing on to third parties.
Slide 24 <Date of last Document Revision dd-mmm-yyyy> · <Document Title> Use menu "View - Header and Footer..." to modify
Action An Action consists of its name, target and parameters Target of Action is MainConnection indicated by source/sink, or class Action(s) are sequentially executed by listed order
Format <action>
<type> Action Name </type> <param>
… </param>
Example <action>
<type> ACTION_MUTE </type> <param>
<sinkName> ”Amp” </sinkName> </param>
</action>
Generic Controller Policy Description
© Advanced Driver Information Technology Corporation reserves all rights, including rights of disposal such as copying and passing on to third parties.
Slide 25 <Date of last Document Revision dd-mmm-yyyy> · <Document Title> Use menu "View - Header and Footer..." to modify
Pre-defined Actions Pre-defined Action can be used by Policy New Action can be defined by combination of pre-defined Action(s)
Generic Controller Policy Description
Action Name Description
CONNECT Start connecting route from source to sink.
DISCONNECT Disconnect existing route and remove it from DB completely
PUSH Disconnect route temporary and remember it
POP Reconnect remembered route
MUTE Request muting the volume of route.
UNMUTE Recover the volume level before muting
LIMIT Change volume to fixed level. In case of multiple limit lowest level is chosen.
UNLIMIT Recover volume level before limiting
SETPROPERTY Direct request with property type/value to source/sin
© Advanced Driver Information Technology Corporation reserves all rights, including rights of disposal such as copying and passing on to third parties.
Slide 29 <Date of last Document Revision dd-mmm-yyyy> · <Document Title> Use menu "View - Header and Footer..." to modify
Questions?
Questions and Answers