summaryrefslogtreecommitdiffstats
path: root/docs/4a-framework/concepts.md
diff options
context:
space:
mode:
authorLoïc Collignon <loic.collignon@iot.bzh>2018-11-29 15:29:54 +0100
committerLoïc Collignon <loic.collignon@iot.bzh>2018-11-29 15:29:54 +0100
commit2610bf62ef76f4120a5f76dd0e5eb1e51538b41b (patch)
tree5a54c544bdfbab30601ef4c9cf4ebf554bc232e6 /docs/4a-framework/concepts.md
parent04f89b1c4f49372aea2f9d1c7e0adad5fb8bd99b (diff)
Backport of audio documentation from masterflounder_6.0.3flounder/6.0.36.0.3
Documentation was available only on master. New documentation website is now by branch, so documentation should be available on both branches. Bug: SPEC-1993 Change-Id: I55484d5c1f28ae1e7fa927533b3dd862a03ed207 Signed-off-by: Loïc Collignon <loic.collignon@iot.bzh>
Diffstat (limited to 'docs/4a-framework/concepts.md')
-rw-r--r--docs/4a-framework/concepts.md37
1 files changed, 37 insertions, 0 deletions
diff --git a/docs/4a-framework/concepts.md b/docs/4a-framework/concepts.md
new file mode 100644
index 0000000..dba024d
--- /dev/null
+++ b/docs/4a-framework/concepts.md
@@ -0,0 +1,37 @@
+# Concepts
+
+A user application requests to open an audio role, which is bound to a stream,
+which is bound to a zone. This allows the application to only care about the
+audio role.
+
+For example, a navigation application can request the **navigation** role, which
+is bound to the **navigation** stream defined by the HAL. This stream is bound
+to the **driver** zone, which is the closest speaker to the driver.
+
+## Roles
+
+The high level API allows applications to open roles such as **emergency**,
+**navigation** or **multimedia**. A role is bound to a stream, which is
+basically a device URI. When a role is opened, then the policy engine is
+notified and executes an interrupt on every other opened role with a lower
+priority. An interrupt is a policy engine function that can change the volume,
+mute or unmute, change the stream's state.
+
+This behaviour allows the policy engine to take actions like lowering the radio
+volume when an application wants to play something on the emergency role.
+
+## Streams
+
+A stream is basically a device URI that you can open to write audio data. For
+example, it can be "hw:2,0,1", which means that you have to use this as an alsa
+device URI.
+
+## Zones
+
+Multiple speakers are spread around inside a vehicule, they are named depending
+on their position, like **front-center**, **front-left**, **front-right**,
+**rear-left**, **rear-right**, etc...
+
+Zones are an abstraction of positional audio. A zone is made of one or more
+speakers and describes logical audio areas like **driver**, **front**, **rear**,
+etc.