1 zone { name = "driver" }
2 zone { name = "passanger1" }
3 zone { name = "passanger2" }
4 zone { name = "passanger3" }
5 zone { name = "passanger4" }
8 name = "default_driver",
9 node_type = node.output,
10 accept = function(self, n)
11 return (n.type ~= node.bluetooth_carkit and n.type ~= node.hdmi)
13 compare = builtin.method.compare_default
17 name = "default_passanger1",
18 node_type = node.output,
19 accept = function(self, n)
20 return (n.type == node.hdmi or n.name == 'Silent')
22 compare = builtin.method.compare_default
27 node_type = node.input,
28 accept = builtin.method.accept_phone,
29 compare = builtin.method.compare_phone
34 node_type = node.output,
35 accept = builtin.method.accept_phone,
36 compare = builtin.method.compare_phone
41 node_type = node.event,
44 output = { driver = routing_group.default_driver_output }
46 roles = { event = no_resource,
47 speech = no_resource }
52 node_type = node.phone,
55 input = { driver = routing_group.phone_input },
56 output = {driver = routing_group.phone_output }
58 roles = { phone = no_resource, carkit = no_resource }
62 node_type = node.alert,
65 output = { driver = routing_group.default_driver_output },
67 roles = { ringtone = no_resource, alarm = no_resource }
72 node_type = node.navigator,
75 output = { driver = routing_group.default_driver_output,
76 passanger1 = routing_group.default_passanger1_output }
78 roles = { navigator = {0, "autorelease", "mandatory", "shared"} },
79 binaries = { ['net.zmap.navi'] = { 0, "autorelease", "mandatory", "shared" } }
84 node_type = node.game,
87 output = { driver = routing_group.default_driver_output,
88 passanger1 = routing_group.default_passanger1_output }
90 roles = { game = {0, "mandatory", "exclusive"} }
95 node_type = node.radio,
98 output = { driver = routing_group.default_driver_output }
100 roles = { radio = {1, "mandatory", "exclusive"} },
105 node_type = node.player,
108 output = { driver = routing_group.default_driver_output,
109 passanger1 = routing_group.default_passanger1_output }
111 roles = { music = {0, "mandatory", "exclusive"},
112 video = {0, "mandatory", "exclusive"},
113 test = {0, "mandatory", "exclusive"},
114 bt_music = no_resource,
117 binaries = { ['t8j6HTRpuz.MediaPlayer'] = "music" }
122 node_type = node.browser,
125 output = { driver = routing_group.default_driver_output,
126 passanger1 = routing_group.default_passanger1_output }
128 roles = { browser = {0, "mandatory", "shared"} }
134 name = { recording = "audio_recording", playback = "audio_playback" },
136 role = {"media.role", mdb.string, "music"},
137 pid = {"application.process.id", mdb.string, "<unknown>"},
138 name = {"resource.set.name", mdb.string, "<unknown>"}
145 condition = "zone = 'driver' AND device = 'speaker'",
147 update = builtin.method.make_volumes
151 table = "audio_playback_owner",
152 columns = {"zone_id", "application_class", "role"},
153 condition = "zone_name = 'driver'",
155 update = function(self)
156 zid = self[1].zone_id
157 if (zid == nil) then zid = "<nil>" end
158 class = self[1].application_class
159 if (class == nil) then class = "<nil>" end
161 if (role == nil) then role = "<nil>" end
162 -- print("*** import "..self.table.." update: zone:"..zid.." class:"..class.." role:"..role)
167 table = "amb_gear_position",
168 columns = { "value" },
169 condition = "key = 'GearPosition'",
171 update = builtin.method.make_volumes
175 table = "volume_context",
177 condition = "id = 1",
179 update = builtin.method.change_volume_context
183 name = "speed_adjust",
184 type = volume_limit.generic,
185 limit = mdb.import.speedvol:link(1,"value"),
186 calculate = builtin.method.volume_correct
190 name = "phone_suppress",
191 type = volume_limit.class,
193 node_type = { node.phone },
194 calculate = builtin.method.volume_supress
199 name = "navi_suppress",
200 type = volume_limit.class,
202 node_type = { node.navigator, node.phone },
203 calculate = builtin.method.volume_supress
207 name = "navi_maxlim",
208 type = volume_limit.maximum,
210 node_type = { node.navigator }
214 name = "player_maxlim",
215 type = volume_limit.maximum,
217 node_type = { node.player }
222 type = volume_limit.class,
224 node_type = { node.player, node.game },
225 calculate = function(self, class, device)
226 -- print("*** limit "..self.name.." class:"..class.." stream:"..device.name)
227 position = mdb.import.amb_gear_position[1].value
228 if (position and position == 128) then