# androidone-experience/vendor_dolby architecture

> Architecture diagram of the GitHub repository androidone-experience/vendor_dolby, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/androidone-experience/vendor_dolby
- Repository: https://github.com/androidone-experience/vendor_dolby

## Overview

This repository combines Android device-side Dolby integration with a Dolby audio control app. The main user workflow is selecting a profile and adjusting its sound controls; the app sends those settings through the Dolby effect interface, while a persistent backend restores settings and tracks engine updates. The tree also includes sound-settings and quick-settings entry points. The README documents codec and Dolby Vision support, but their implementing configuration and binaries are not shown in the supplied tree, so those capabilities are not expanded into speculative runtime components.

Main entry points: [`DolbyDaxUI/app/src/main/java/com/dolby/daxservice/DaxService.java`](https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/daxservice/DaxService.java) (Dolby backend), [`DolbyDaxUI/app/src/main/java/com/dolby/dax/DolbyAudioEffect.java`](https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/dax/DolbyAudioEffect.java) (Dolby effect API), [`DolbyDaxUI/app/src/main/java/com/dolby/daxappui/MainActivity.java`](https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/daxappui/MainActivity.java) (Main activity), [`DolbyDaxUI/app/src/main/java/com/dolby/daxappui/FragProfilePanel.java`](https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/daxappui/FragProfilePanel.java) (Profile controls)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["Audio controls"]
  node_main["Main activity<br/>[MainActivity.java]"]
  node_presets["Profile presets"]
  node_profile["Profile controls"]
  node_settingsclient["Control settings"]
  node_equalizer["Equalizer view<br/>[GeqView.java]"]
  node_explore["Atmos explainer"]
end

subgraph group_engine["Effect interface"]
  node_effect["Dolby effect API"]
  node_params["Parameter definitions<br/>[DsParams.java]"]
  node_tuning["Tuning definitions<br/>[DsTuning.java]"]
  node_audiofx["Android effect API<br/>[AudioEffect.java]"]
end

subgraph group_backend["System backend"]
  node_starter["Backend starter"]
  node_service["Dolby backend<br/>[DaxService.java]"]
  node_settings["Settings persistence<br/>[DaxSettings.java]"]
  node_watchdog["Audio server watchdog"]
  node_updates["Parameter updates<br/>[DapUpdate.java]"]
end

subgraph group_entry["System entry points"]
  node_application["Application setup"]
  node_tile["Quick settings tile"]
  node_soundsettings["Sound settings provider"]
end

node_user(("Device user"))
node_dms["Dolby system service"]

node_user -->|"opens"| node_main
node_main -->|"hosts"| node_presets
node_main -->|"hosts"| node_profile
node_main -->|"routes to"| node_explore
node_presets -->|"pages"| node_profile
node_profile -->|"uses"| node_settingsclient
node_profile -->|"renders"| node_equalizer
node_settingsclient -->|"reads and writes"| node_effect
node_effect -->|"uses"| node_params
node_effect -->|"uses"| node_tuning
node_effect -->|"extends"| node_audiofx
node_application -->|"starts"| node_starter
node_starter -->|"starts"| node_service
node_tile -->|"controls"| node_effect
node_tile -->|"uses"| node_service
node_soundsettings -->|"controls"| node_effect
node_soundsettings -->|"uses"| node_service
node_service -->|"restores and saves"| node_settings
node_service -->|"configures"| node_effect
node_service -->|"registers and monitors"| node_dms
node_service -->|"uses"| node_watchdog
node_service -->|"decodes"| node_updates

click node_main "https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/daxappui/MainActivity.java"
click node_presets "https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/daxappui/FragProfilePresets.java"
click node_profile "https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/daxappui/FragProfilePanel.java"
click node_settingsclient "https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/daxappui/DsClientSettings.java"
click node_equalizer "https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/daxappui/GeqView.java"
click node_explore "https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/daxappui/exploreDolby/FragExploreDolbyAtmos.java"
click node_effect "https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/dax/DolbyAudioEffect.java"
click node_params "https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/dax/DsParams.java"
click node_tuning "https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/dax/DsTuning.java"
click node_audiofx "https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/hidden-api/src/main/java/android/media/audiofx/AudioEffect.java"
click node_application "https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/daxappui/DAXApplication.java"
click node_tile "https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/daxappui/DaxTileService.java"
click node_soundsettings "https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/daxappui/soundsettings/DaxSettingsProvider.java"
click node_starter "https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/daxservice/DaxServiceStarter.java"
click node_service "https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/daxservice/DaxService.java"
click node_settings "https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/daxservice/DaxSettings.java"
click node_watchdog "https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/daxservice/AudioServerWatchDog.java"
click node_updates "https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/daxservice/DapUpdate.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_main,node_presets,node_profile,node_settingsclient,node_equalizer,node_explore,node_user toneBlue
class node_effect,node_params,node_tuning,node_audiofx toneAmber
class node_starter,node_service,node_settings,node_watchdog,node_updates toneMint
class node_application,node_tile,node_soundsettings toneRose
class node_dms toneIndigo
```

## Components

### Audio controls

- [Main activity](https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/daxappui/MainActivity.java): `DolbyDaxUI/app/src/main/java/com/dolby/daxappui/MainActivity.java`
- [Profile presets](https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/daxappui/FragProfilePresets.java): `DolbyDaxUI/app/src/main/java/com/dolby/daxappui/FragProfilePresets.java`
- [Profile controls](https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/daxappui/FragProfilePanel.java): `DolbyDaxUI/app/src/main/java/com/dolby/daxappui/FragProfilePanel.java`
- [Control settings](https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/daxappui/DsClientSettings.java): `DolbyDaxUI/app/src/main/java/com/dolby/daxappui/DsClientSettings.java`
- [Equalizer view](https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/daxappui/GeqView.java): `DolbyDaxUI/app/src/main/java/com/dolby/daxappui/GeqView.java`
- [Atmos explainer](https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/daxappui/exploreDolby/FragExploreDolbyAtmos.java): `DolbyDaxUI/app/src/main/java/com/dolby/daxappui/exploreDolby/FragExploreDolbyAtmos.java`

### Effect interface

- [Dolby effect API](https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/dax/DolbyAudioEffect.java): `DolbyDaxUI/app/src/main/java/com/dolby/dax/DolbyAudioEffect.java`
- [Parameter definitions](https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/dax/DsParams.java): `DolbyDaxUI/app/src/main/java/com/dolby/dax/DsParams.java`
- [Tuning definitions](https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/dax/DsTuning.java): `DolbyDaxUI/app/src/main/java/com/dolby/dax/DsTuning.java`
- [Android effect API](https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/hidden-api/src/main/java/android/media/audiofx/AudioEffect.java): `DolbyDaxUI/hidden-api/src/main/java/android/media/audiofx/AudioEffect.java`

### System backend

- [Backend starter](https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/daxservice/DaxServiceStarter.java): `DolbyDaxUI/app/src/main/java/com/dolby/daxservice/DaxServiceStarter.java`
- [Dolby backend](https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/daxservice/DaxService.java): `DolbyDaxUI/app/src/main/java/com/dolby/daxservice/DaxService.java`
- [Settings persistence](https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/daxservice/DaxSettings.java): `DolbyDaxUI/app/src/main/java/com/dolby/daxservice/DaxSettings.java`
- [Audio server watchdog](https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/daxservice/AudioServerWatchDog.java): `DolbyDaxUI/app/src/main/java/com/dolby/daxservice/AudioServerWatchDog.java`
- [Parameter updates](https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/daxservice/DapUpdate.java): `DolbyDaxUI/app/src/main/java/com/dolby/daxservice/DapUpdate.java`

### System entry points

- [Application setup](https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/daxappui/DAXApplication.java): `DolbyDaxUI/app/src/main/java/com/dolby/daxappui/DAXApplication.java`
- [Quick settings tile](https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/daxappui/DaxTileService.java): `DolbyDaxUI/app/src/main/java/com/dolby/daxappui/DaxTileService.java`
- [Sound settings provider](https://github.com/androidone-experience/vendor_dolby/blob/v1.2/DolbyDaxUI/app/src/main/java/com/dolby/daxappui/soundsettings/DaxSettingsProvider.java): `DolbyDaxUI/app/src/main/java/com/dolby/daxappui/soundsettings/DaxSettingsProvider.java`

### Other components

- **Device user**
- **Dolby system service**

## Connections

- Device user → Main activity: opens (evidence: `DolbyDaxUI/app/src/main/java/com/dolby/daxappui/MainActivity.java`)
- Main activity → Profile presets: hosts (evidence: `DolbyDaxUI/app/src/main/java/com/dolby/daxappui/MainActivity.java`)
- Main activity → Profile controls: hosts (evidence: `DolbyDaxUI/app/src/main/java/com/dolby/daxappui/MainActivity.java`)
- Main activity → Atmos explainer: routes to (evidence: `DolbyDaxUI/app/src/main/java/com/dolby/daxappui/MainActivity.java`)
- Profile presets → Profile controls: pages (evidence: `DolbyDaxUI/app/src/main/java/com/dolby/daxappui/FragProfilePresets.java`)
- Profile controls → Control settings: uses (evidence: `DolbyDaxUI/app/src/main/java/com/dolby/daxappui/FragProfilePanel.java`)
- Profile controls → Equalizer view: renders (evidence: `DolbyDaxUI/app/src/main/java/com/dolby/daxappui/FragProfilePanel.java`)
- Control settings → Dolby effect API: reads and writes (evidence: `DolbyDaxUI/app/src/main/java/com/dolby/daxappui/DsClientSettings.java`)
- Dolby effect API → Parameter definitions: uses (evidence: `DolbyDaxUI/app/src/main/java/com/dolby/dax/DolbyAudioEffect.java`)
- Dolby effect API → Tuning definitions: uses (evidence: `DolbyDaxUI/app/src/main/java/com/dolby/dax/DolbyAudioEffect.java`)
- Dolby effect API → Android effect API: extends (evidence: `DolbyDaxUI/app/src/main/java/com/dolby/dax/DolbyAudioEffect.java`)
- Application setup → Backend starter: starts (evidence: `DolbyDaxUI/app/src/main/java/com/dolby/daxappui/DAXApplication.java`)
- Backend starter → Dolby backend: starts (evidence: `DolbyDaxUI/app/src/main/java/com/dolby/daxservice/DaxServiceStarter.java`)
- Quick settings tile → Dolby effect API: controls (evidence: `DolbyDaxUI/app/src/main/java/com/dolby/daxappui/DaxTileService.java`)
- Quick settings tile → Dolby backend: uses (evidence: `DolbyDaxUI/app/src/main/java/com/dolby/daxappui/DaxTileService.java`)
- Sound settings provider → Dolby effect API: controls (evidence: `DolbyDaxUI/app/src/main/java/com/dolby/daxappui/soundsettings/DaxSettingsProvider.java`)
- Sound settings provider → Dolby backend: uses (evidence: `DolbyDaxUI/app/src/main/java/com/dolby/daxappui/soundsettings/DaxSettingsProvider.java`)
- Dolby backend → Settings persistence: restores and saves (evidence: `DolbyDaxUI/app/src/main/java/com/dolby/daxservice/DaxService.java`)
- Dolby backend → Dolby effect API: configures (evidence: `DolbyDaxUI/app/src/main/java/com/dolby/daxservice/DaxService.java`)
- Dolby backend → Dolby system service: registers and monitors (evidence: `DolbyDaxUI/app/src/main/java/com/dolby/daxservice/DaxService.java`)
- Dolby backend → Audio server watchdog: uses (evidence: `DolbyDaxUI/app/src/main/java/com/dolby/daxservice/DaxService.java`)
- Dolby backend → Parameter updates: decodes (evidence: `DolbyDaxUI/app/src/main/java/com/dolby/daxservice/DaxService.java`)
