doc: Bluetooth: Audio: Remake gaf.svg to graphviz

Remake the Generic audio framework (GAF) figure to a graphviz version.
This makes it easier to modify it directly in the .rst file.

This also adds the missing GMAP/GMAS.

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
This commit is contained in:
Emil Gydesen 2024-06-26 19:18:59 +02:00 committed by Alberto Escolar
commit 05b11e58eb
2 changed files with 144 additions and 8 deletions

View file

@ -48,11 +48,151 @@ audio streams or broadcast (unconnected) audio streams.
GAF mandates the use of the LC3 codec, but also supports other codecs. GAF mandates the use of the LC3 codec, but also supports other codecs.
.. figure:: img/gaf.svg .. graphviz::
:align: center :caption: Generic Audio Framework (GAF)
:alt: Generic Audio Framework
Generic Audio Framework digraph gaf {
node [shape=record];
edge [style=invis];
compound=true;
nodesep=0.1;
subgraph hap_layer {
cluster=true;
label="HAP";
HAS;
BAS [style=dashed];
IAS [style=dashed];
}
subgraph pbp_layer {
cluster=true;
label="PBP";
PBS[style=invis]; // Make it possible to treat PBP like the others
}
subgraph tmap_layer {
cluster=true;
label="TMAP";
TMAS;
}
subgraph gmap_layer {
cluster=true;
label="GMAP";
GMAS;
}
subgraph gaf_layer {
cluster=true;
label="Generic Audio Framework";
subgraph transition_and_coordination_control_layer {
cluster=true;
label="Transition and Coordination Control";
style=dashed;
subgraph cap_layer {
cluster=true;
style=solid;
label="CAP";
CAS;
}
subgraph csip_layer {
cluster=true;
style=solid;
label="CSIP";
CSIS;
}
}
subgraph stream_control_layer {
cluster=true;
label="Stream Control";
style=dashed;
subgraph bap_layer {
cluster=true;
label="BAP";
style=solid;
PACS [style=dashed];
ASCS [style=dashed];
BASS [style=dashed];
}
}
subgraph content_control_layer {
cluster=true;
label="Content Control";
style=dashed;
subgraph mcp_layer {
cluster=true;
label="MCP";
style=solid;
MCS;
}
subgraph ccp_layer {
cluster=true;
label="CCP";
style=solid;
TBS;
}
}
subgraph rendering_and_capture_control_layer {
cluster=true;
label="Rendering and Capture Control";
style=dashed;
subgraph micp_layer {
cluster=true;
label="MICP";
style=solid;
MICS;
MICP_AICS [style=dashed];
}
subgraph vcp_layer {
cluster=true;
label="VCP";
style=solid;
VCS;
VOCS [style=dashed];
VCP_AICS [style=dashed];
}
}
}
HAS -> CAS;
PBS -> CAS;
TMAS -> CAS;
GMAS -> CAS;
CAS -> MCS;
CAS -> TBS;
CAS -> ASCS;
CAS -> PACS;
CAS -> BASS;
CAS -> MICS;
CAS -> MICP_AICS;
CAS -> VCS;
CAS -> VOCS;
CAS -> VCP_AICS;
CSIS -> MCS;
CSIS -> TBS;
CSIS -> ASCS;
CSIS -> PACS;
CSIS -> BASS;
CSIS -> MICS;
CSIS -> MICP_AICS;
CSIS -> VCS;
CSIS -> VOCS;
CSIS -> VCP_AICS;
}
The top-level profiles TMAP and HAP are not part of the GAF, but rather provide The top-level profiles TMAP and HAP are not part of the GAF, but rather provide
top-level requirements for how to use the GAF. top-level requirements for how to use the GAF.

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 33 KiB