mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-07-24 09:36:31 +00:00
Add default asound for pulse (#1538)
* Add default asound for pulse * fix lint * fix config
This commit is contained in:
parent
19ca836b78
commit
c36a6dcd65
@ -4,6 +4,7 @@ from contextlib import suppress
|
||||
import logging
|
||||
from pathlib import Path
|
||||
from typing import Awaitable, Optional
|
||||
import shutil
|
||||
|
||||
import jinja2
|
||||
|
||||
@ -18,6 +19,7 @@ from .validate import SCHEMA_AUDIO_CONFIG
|
||||
_LOGGER: logging.Logger = logging.getLogger(__name__)
|
||||
|
||||
PULSE_CLIENT_TMPL: Path = Path(__file__).parents[0].joinpath("data/pulse-client.tmpl")
|
||||
ASOUND_TMPL: Path = Path(__file__).parents[0].joinpath("data/asound.tmpl")
|
||||
|
||||
|
||||
class Audio(JsonConfig, CoreSysAttributes):
|
||||
@ -31,9 +33,14 @@ class Audio(JsonConfig, CoreSysAttributes):
|
||||
self.client_template: Optional[jinja2.Template] = None
|
||||
|
||||
@property
|
||||
def path_extern_data(self) -> Path:
|
||||
"""Return path of pulse cookie file."""
|
||||
return self.sys_config.path_extern_audio.joinpath("external")
|
||||
def path_extern_pulse(self) -> Path:
|
||||
"""Return path of pulse socket file."""
|
||||
return self.sys_config.path_extern_audio.joinpath("external/pulse.sock")
|
||||
|
||||
@property
|
||||
def path_extern_asound(self) -> Path:
|
||||
"""Return path of default asound config file."""
|
||||
return self.sys_config.path_extern_audio.joinpath("asound")
|
||||
|
||||
@property
|
||||
def version(self) -> Optional[str]:
|
||||
@ -90,6 +97,14 @@ class Audio(JsonConfig, CoreSysAttributes):
|
||||
except OSError as err:
|
||||
_LOGGER.error("Can't read pulse-client.tmpl: %s", err)
|
||||
|
||||
# Setup default asound config
|
||||
asound = self.sys_config.path_audio.joinpath("asound")
|
||||
if not asound.exists():
|
||||
try:
|
||||
shutil.copy(ASOUND_TMPL, asound)
|
||||
except OSError as err:
|
||||
_LOGGER.error("Can't create default asound: %s", err)
|
||||
|
||||
async def install(self) -> None:
|
||||
"""Install Audio."""
|
||||
_LOGGER.info("Setup Audio plugin")
|
||||
|
13
supervisor/data/asound.tmpl
Normal file
13
supervisor/data/asound.tmpl
Normal file
@ -0,0 +1,13 @@
|
||||
# Default to PulseAudio
|
||||
|
||||
pcm.!default {
|
||||
type pulse
|
||||
hint {
|
||||
show on
|
||||
description "Default ALSA Output (Home Assistant PulseAudio Sound Server)"
|
||||
}
|
||||
}
|
||||
|
||||
ctl.!default {
|
||||
type pulse
|
||||
}
|
@ -308,10 +308,14 @@ class DockerAddon(DockerInterface):
|
||||
"bind": "/etc/pulse/client.conf",
|
||||
"mode": "ro",
|
||||
},
|
||||
str(self.sys_audio.path_extern_data.joinpath("pulse.sock")): {
|
||||
str(self.sys_audio.path_extern_pulse): {
|
||||
"bind": "/run/pulse.sock",
|
||||
"mode": "rw",
|
||||
},
|
||||
str(self.sys_audio.path_extern_asound): {
|
||||
"bind": "/etc/asound.conf",
|
||||
"mode": "ro",
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user