<?xml version="1.0" encoding="UTF-8"?>
<c:configuration xmlns:c="controller" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="controller audiomanagertypes.xsd ">
    <listSources>
        <source>
            <id>0</id>
            <domainName>UNKNOWN</domainName>
            <name>SourceTemplate</name>
            <volume>0</volume>
            <visible>TRUE</visible>
            <className>UNKNOWN</className>
            <sourceState>SS_OFF</sourceState>
            <connectionFormat>CF_GENIVI_STEREO</connectionFormat>
            <connectionFormat>CF_GENIVI_MONO</connectionFormat>
            <interruptState>IS_OFF</interruptState>
            <availability>
                <availability>A_AVAILABLE</availability>
                <availabilityReason>AR_UNKNOWN</availabilityReason>
            </availability>
            <soundProperty>
                <type>SP_GENIVI_TREBLE</type>
                <value minValue="0" maxValue="10">5</value>
            </soundProperty>
            <soundProperty>
                <type>SP_GENIVI_MID</type>
                <value minValue="0" maxValue="10">5</value>
            </soundProperty>
            <soundProperty>
                <type>SP_GENIVI_BASS</type>
                <value minValue="0" maxValue="10">5</value>
            </soundProperty>
            <mainSoundProperty>
                <type>MSP_GENIVI_TREBLE</type>
                <value minValue="0" maxValue="10">5</value>
            </mainSoundProperty>
            <mainSoundProperty>
                <type>MSP_GENIVI_MID</type>
                <value minValue="0" maxValue="10">5</value>
            </mainSoundProperty>
            <mainSoundProperty>
                <type>MSP_GENIVI_BASS</type>
                <value minValue="0" maxValue="10">5</value>
            </mainSoundProperty>
            <registrationType>REG_TEMPLATE</registrationType>
            <isVolumeSupported>TRUE</isVolumeSupported>
            <priority>1</priority>
            <listMainSoundPropertiesToSoundProperties>
                <mapEntry>MSP_UNKNOWN,SP_UNKNOWN</mapEntry>
                <mapEntry>MSP_GENIVI_TREBLE,SP_GENIVI_TREBLE</mapEntry>
            </listMainSoundPropertiesToSoundProperties>
        </source>
        <source baseName="SourceTemplate">
            <id>1</id>
            <domainName>PulseAudio</domainName>
            <name>mediaplayer</name>
            <className>BASE</className>
            <registrationType>REG_ROUTER</registrationType>
        </source>
        <source baseName="SourceTemplate">
            <id>2</id>
            <domainName>PulseAudio</domainName>
            <name>ALSA#Playback</name>
            <className>BASE</className>
            <registrationType>REG_ROUTER</registrationType>
        </source>
        <source baseName="SourceTemplate">
            <id>3</id>
            <domainName>PulseAudio</domainName>
            <name>music</name>
            <className>BASE</className>
            <registrationType>REG_ROUTER</registrationType>
        </source>
        <source baseName="SourceTemplate">
            <id>4</id>
            <domainName>PulseAudio</domainName>
            <name>Navi</name>
            <className>INT</className>
            <registrationType>REG_ROUTER</registrationType>
        </source>
        <source baseName="SourceTemplate">
            <id>5</id>
            <domainName>PulseAudio</domainName>
            <name>phone</name>
            <className>PHONE</className>
            <registrationType>REG_ROUTER</registrationType>
        </source>
    </listSources>  
    <listSinks>
        <sink>
            <id>0</id>
            <domainName>UNKNOWN</domainName>
            <name>SinkTemplate</name>
            <volume>0</volume>
            <visible>TRUE</visible>
            <mainVolume>100</mainVolume>
            <className>BASE</className>
            <muteState>MS_UNMUTED</muteState>
            <connectionFormat>CF_GENIVI_STEREO</connectionFormat>
            <connectionFormat>CF_GENIVI_MONO</connectionFormat>
            <availability>
                <availability>A_AVAILABLE</availability>
                <availabilityReason>AR_GENIVI_NEWMEDIA</availabilityReason>
            </availability>
            <soundProperty>
                <type>SP_GENIVI_TREBLE</type>
                <value minValue="0" maxValue="10">5</value>
            </soundProperty>
            <soundProperty>
                <type>SP_GENIVI_MID</type>
                <value minValue="0" maxValue="10">5</value>
            </soundProperty>
            <soundProperty>
                <type>SP_GENIVI_BASS</type>
                <value minValue="0" maxValue="10">5</value>
            </soundProperty>
            <mainSoundProperty>
                <type>MSP_GENIVI_TREBLE</type>
                <value minValue="0" maxValue="10">5</value>
            </mainSoundProperty>
            <mainSoundProperty>
                <type>MSP_GENIVI_MID</type>
                <value minValue="0" maxValue="10">5</value>
            </mainSoundProperty>
            <mainSoundProperty>
                <type>MSP_GENIVI_BASS</type>
                <value minValue="0" maxValue="10">5</value>
            </mainSoundProperty>
            <registrationType>REG_TEMPLATE</registrationType>
            <isVolumeSupported>TRUE</isVolumeSupported>
            <priority>1</priority>
            <listMainVolumesToNormalizedVolumes>
                <tableEntry>0,0.0</tableEntry>
                <tableEntry>1,0.01</tableEntry>
                <tableEntry>2,0.02</tableEntry>
                <tableEntry>3,0.03</tableEntry>
                <tableEntry>4,0.04</tableEntry>
                <tableEntry>5,0.05</tableEntry>
                <tableEntry>6,0.06</tableEntry>
                <tableEntry>7,0.07</tableEntry>
                <tableEntry>8,0.08</tableEntry>
                <tableEntry>9,0.09</tableEntry>
                <tableEntry>10,0.1</tableEntry>
                <tableEntry>11,0.11</tableEntry>
                <tableEntry>12,0.12</tableEntry>
                <tableEntry>14,0.14</tableEntry>
                <tableEntry>15,0.15</tableEntry>
                <tableEntry>17,0.17</tableEntry>
                <tableEntry>20,0.2</tableEntry>
                <tableEntry>22,0.22</tableEntry>
                <tableEntry>25,0.25</tableEntry>
                <tableEntry>28,0.28</tableEntry>
                <tableEntry>31,0.31</tableEntry>
                <tableEntry>35,0.35</tableEntry>
                <tableEntry>40,0.4</tableEntry>
                <tableEntry>45,0.45</tableEntry>
                <tableEntry>50,0.5</tableEntry>
                <tableEntry>56,0.56</tableEntry>
                <tableEntry>62,0.62</tableEntry>
                <tableEntry>70,0.7</tableEntry>
                <tableEntry>80,0.8</tableEntry>
                <tableEntry>90,0.9</tableEntry>
                <tableEntry>100,1.0</tableEntry>
            </listMainVolumesToNormalizedVolumes>
            <listNormalizedVolumesToDecibelVolumes>
                <tableEntry>0.0,-192.0</tableEntry>
                <tableEntry>0.01,-40.0</tableEntry>
                <tableEntry>0.02,-34.0</tableEntry>
                <tableEntry>0.03,-30.0</tableEntry>
                <tableEntry>0.04,-27.0</tableEntry>
                <tableEntry>0.05,-26.0</tableEntry>
                <tableEntry>0.06,-24.0</tableEntry>
                <tableEntry>0.07,-23.0</tableEntry>
                <tableEntry>0.08,-22.0</tableEntry>
                <tableEntry>0.09,-21.0</tableEntry>
                <tableEntry>0.1,-20.0</tableEntry>
                <tableEntry>0.11,-19.0</tableEntry>
                <tableEntry>0.12,-18.0</tableEntry>
                <tableEntry>0.14,-17.0</tableEntry>
                <tableEntry>0.15,-16.0</tableEntry>
                <tableEntry>0.17,-15.0</tableEntry>
                <tableEntry>0.2,-14.0</tableEntry>
                <tableEntry>0.22,-13.0</tableEntry>
                <tableEntry>0.25,-12.0</tableEntry>
                <tableEntry>0.28,-11.0</tableEntry>
                <tableEntry>0.31,-10.0</tableEntry>
                <tableEntry>0.35,-9.0</tableEntry>
                <tableEntry>0.4,-8.0</tableEntry>
                <tableEntry>0.45,-7.0</tableEntry>
                <tableEntry>0.5,-6.0</tableEntry>
                <tableEntry>0.56,-5.0</tableEntry>
                <tableEntry>0.62,-4.0</tableEntry>
                <tableEntry>0.7,-3.0</tableEntry>
                <tableEntry>0.8,-2.0</tableEntry>
                <tableEntry>0.9,-1.0</tableEntry>
                <tableEntry>1.0,0.0</tableEntry>
            </listNormalizedVolumesToDecibelVolumes>
            <listMainSoundPropertiesToSoundProperties>
                <mapEntry>MSP_UNKNOWN,SP_UNKNOWN</mapEntry>
                <mapEntry>MSP_GENIVI_TREBLE,SP_GENIVI_TREBLE</mapEntry>
            </listMainSoundPropertiesToSoundProperties>
        </sink>
        <sink baseName="SinkTemplate">
            <id>1</id>
            <domainName>PulseAudio</domainName>
            <name>rsnd-dai.0-ak4642-hifi#Analog#Stereo</name>
            <className>BASE</className>
            <registrationType>REG_ROUTER</registrationType>
        </sink>
        <sink baseName="SinkTemplate">
            <id>2</id>
            <domainName>PulseAudio</domainName>
            <name>Microchip#MOST:0#Multichannel</name>
            <className>BASE</className>
            <registrationType>REG_ROUTER</registrationType>
        </sink>
    </listSinks>
    <listGateways> 
        <!-- This is a single domain example, therefore no gateway is present -->
    </listGateways>
    <listDomains>
        <domain>
            <id>0</id>
            <name>PulseAudio</name>
            <busName>org.genivi.audiomanager</busName>
            <nodeName>pulseaudio</nodeName>
            <early>FALSE</early>
            <complete>TRUE</complete>
            <state>DS_CONTROLLED</state>
            <registrationType>REG_ROUTER</registrationType>
        </domain>
    </listDomains>
    <listClasses>
        <class>
            <name>BASE</name>
            <type>C_PLAYBACK</type>
            <priority>1</priority>
            <topology>Microchip#MOST:0#Multichannel^rsnd-dai.0-ak4642-hifi#Analog#Stereo=mediaplayer^music^ALSA#Playback</topology>
        </class>
        <class>
            <name>INT</name>
            <type>C_PLAYBACK</type>
            <priority>2</priority>
            <topology>Microchip#MOST:0#Multichannel^rsnd-dai.0-ak4642-hifi#Analog#Stereo=Navi</topology>
        </class>
        <class>
            <name>PHONE</name>
            <type>C_PLAYBACK</type>
            <priority>3</priority>
            <topology>Microchip#MOST:0#Multichannel^rsnd-dai.0-ak4642-hifi#Analog#Stereo=phone</topology>
        </class>
    </listClasses>
    <listPolicies>
<!--Connect Policy Start-->
<!--BASE Policy-->    
    <policy>
      <trigger>USER_CONNECTION_REQUEST</trigger>
      <process>
          <condition>name(CLASS, REQUESTING) EQ "BASE"</condition>
          <condition>connectionState(CONNECTIONOFCLASS, REQUESTING, OTHERS) INC CS_CONNECTED</condition>
          <action>
            <type>ACTION_SUSPEND</type>
            <param>
              <className>"BASE"</className>
              <connectionState>CS_CONNECTED</connectionState>
            </param>
          </action>
      </process>
    </policy>
<!--INT policy-->
    <policy>
      <trigger>USER_CONNECTION_REQUEST</trigger>
      <process>
        <condition>name(CLASS, REQUESTING) EQ "INT"</condition>
        <action>
          <type>ACTION_LIMIT</type>
          <param>
            <className>"BASE"</className>
            <volume>-1000</volume>
            <pattern>01</pattern>
          </param>
        </action>
      </process>
      <process>
          <condition>name(CLASS, REQUESTING) EQ "INT"</condition>
          <condition>connectionState(CONNECTIONOFCLASS, REQUESTING, OTHERS) INC CS_CONNECTED</condition>
          <condition>priority(CONNECTIONOFCLASS, REQUESTING, OTHERS) LT priority(CONNECTION, REQUESTING)</condition>
          <action>
            <type>ACTION_PUSH</type>
            <param>
              <className>"INT"</className>
              <order>O_NEWEST</order>
            </param>
          </action>
          <break>TRUE</break>
      </process>
      <process>
          <condition>name(CLASS, REQUESTING) EQ "INT"</condition>
          <condition>connectionState(CONNECTIONOFCLASS, REQUESTING, OTHERS) INC CS_CONNECTED</condition>
          <action>
            <type>ACTION_PUSH</type>
            <param>
              <className>"INT"</className>
              <order>O_OLDEST</order>
            </param>
          </action>
      </process>
      <process>
          <condition>name(CLASS, REQUESTING) EQ "INT"</condition>
          <condition>connectionState(CONNECTIONOFCLASS, "PHONE") INC CS_CONNECTED</condition>
          <action>
            <type>ACTION_MUTE</type>
            <param>
                <className>REQUESTING</className>
            </param>
          </action>
          <action>
            <type>ACTION_CONNECT</type>
            <param>
              <className>REQUESTING</className>
            </param>
          </action>
          <break>TRUE</break>
      </process>  
    </policy>
<!--PHONE policy-->
    <policy>
      <trigger>USER_CONNECTION_REQUEST</trigger>
      <process>
          <condition>name(CLASS, REQUESTING) EQ "PHONE"</condition>
          <action>
            <type>ACTION_LIMIT</type>
            <param>
              <className>"BASE"</className>
              <volume>-1000</volume>
              <pattern>02</pattern>
            </param>
          </action>
      </process>
      <process>
          <condition>name(CLASS, REQUESTING) EQ "PHONE"</condition>
          <condition>connectionState(CONNECTIONOFCLASS, "INT") INC CS_CONNECTED</condition>
          <action>
            <type>ACTION_MUTE</type>
            <param>
              <className>"INT"</className>
            </param>
          </action>
      </process>
      <process>
          <condition>name(SINK, REQUESTING) EQ "AMP"</condition>
          <action>
            <type>ACTION_CONNECT</type>
            <param>
              <className>REQUESTING</className>
              <timeOut>5000</timeOut>
            </param>
          </action>
          <break>TRUE</break>
      </process>
    </policy>
<!--Connect policy end-->
<!--Disconnect policy start-->
    <policy>
      <trigger>USER_DISCONNECTION_REQUEST</trigger>
      <process>
          <action>
            <type>ACTION_DISCONNECT</type>
            <param>
              <sourceName>REQUESTING</sourceName>
              <sinkName>REQUESTING</sinkName>
            </param>
          </action>
      </process>
      <process>
          <condition>name(CLASS, REQUESTING) EQ "INT"</condition>
          <action>
            <type>ACTION_UNLIMIT</type>
            <param>
              <className>"BASE"</className>
              <pattern>01</pattern>
            </param>
          </action>
      </process>
      <process>
          <condition>name(CLASS, REQUESTING) EQ "INT"</condition>
          <condition>connectionState(CONNECTIONOFCLASS, REQUESTING, OTHERS) INC CS_CONNECTED</condition>
          <action>
            <type>ACTION_POP</type>
            <param>
              <className>"INT"</className>
              <order>O_OLDEST</order>
            </param>
          </action>
      </process>
      <process>
          <condition>name(CLASS, REQUESTING) EQ "PHONE"</condition>
          <condition>connectionState(CONNECTIONOFCLASS, "INT") INC CS_CONNECTED</condition>
          <action>
            <type>ACTION_UNMUTE</type>
            <param>
              <className>"INT"</className>
            </param>
          </action>
      </process>
      <process>
          <condition>name(CLASS, REQUESTING) EQ "PHONE"</condition>
          <action>
            <type>ACTION_UNLIMIT</type>
            <param>
              <className>"BASE"</className>
	          <pattern>02</pattern>
            </param>
          </action>
      </process>
      <process>
          <condition>name(CLASS, REQUESTING) EQ "BASE"</condition>
          <condition>connectionState(CONNECTIONOFCLASS, "BASE") INC CS_SUSPENDED</condition>
          <action>
            <type>ACTION_RESUME</type>
            <param>
              <className>"BASE"</className>
	      <connectionState>CS_SUSPENDED</connectionState>
            </param>
          </action>
      </process>
    </policy>
<!-- default volume policy start -->
    <policy>
      <trigger>USER_SET_VOLUME</trigger>
      <process>
        <action>
            <type>ACTION_SET_VOLUME</type>
            <param>
                <sinkName>REQUESTING</sinkName>
            </param>
        </action>
      </process>
    </policy>
<!-- default volume policy end -->
<!-- default mute policy start -->
   <policy>
      <trigger>USER_SET_SINK_MUTE_STATE</trigger>
      <process>
            <condition>muteState(USER,REQUESTING) EQ MS_MUTED</condition>
            <action>
                <type>ACTION_MUTE</type>
                <param>
                    <sinkName>REQUESTING</sinkName>
                </param>
            </action>
      </process>
      <process>
            <condition>muteState(USER,REQUESTING) EQ MS_UNMUTED</condition>
            <action>
                <type>ACTION_UNMUTE</type>
                <param>
                    <sinkName>REQUESTING</sinkName>
                </param>
            </action>
      </process>
    </policy>
<!-- default mute policy end -->
<!-- default set sink sound property policy start -->
    <policy>
      <trigger>USER_SET_SINK_MAIN_SOUND_PROPERTY</trigger>
      <process>
            <action>
                <type>ACTION_SET_PROPERTY</type>
                <param>
                    <sinkName>REQUESTING</sinkName>
                </param>
            </action>
      </process>
    </policy>
<!-- default set sink sound property policy end -->
<!-- default set source sound property policy start -->
    <policy>
        <trigger>USER_SET_SOURCE_MAIN_SOUND_PROPERTY</trigger>
        <process>
            <action>
                <type>ACTION_SET_PROPERTY</type>
                <param>
                    <sourceName>REQUESTING</sourceName>
                </param>
            </action>
        </process>
    </policy>
<!-- default set source sound property policy end -->
<!-- default connect policy start -->
    <policy>
      <trigger>USER_CONNECTION_REQUEST</trigger>
      <process>
          <action>
            <type>ACTION_MUTE</type>
            <param>
              <className>REQUESTING</className>
              <timeOut>5000</timeOut>
            </param>
          </action>
          <action>
            <type>ACTION_CONNECT</type>
            <param>
              <className>REQUESTING</className>
              <timeOut>5000</timeOut>
            </param>
          </action>
          <action>
            <type>ACTION_UNMUTE</type>
            <param>
              <className>REQUESTING</className>
            </param>
          </action>
      </process>
    </policy>
<!-- default connect policy end -->
  </listPolicies>
  <listSystemProperties>
    <systemProperty>
        <type>SYP_DEBUG_LOG</type>
        <value>5</value>
    </systemProperty>
  </listSystemProperties>
</c:configuration>
