mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-07-19 07:06:30 +00:00
fix: use a different convention to handle multiple devices on same card (#767)
* fix: use a different convention to handle multiple devices on same card * fix: use a different convention to handle multiple devices on same card * Update alsa.py * Update alsa.py
This commit is contained in:
parent
d3b4a03851
commit
1f091b20ad
@ -259,3 +259,6 @@ ROLE_HOMEASSISTANT = 'homeassistant'
|
|||||||
ROLE_BACKUP = 'backup'
|
ROLE_BACKUP = 'backup'
|
||||||
ROLE_MANAGER = 'manager'
|
ROLE_MANAGER = 'manager'
|
||||||
ROLE_ADMIN = 'admin'
|
ROLE_ADMIN = 'admin'
|
||||||
|
|
||||||
|
CHAN_ID = 'chan_id'
|
||||||
|
CHAN_TYPE = 'chan_type'
|
||||||
|
@ -6,7 +6,8 @@ from string import Template
|
|||||||
|
|
||||||
import attr
|
import attr
|
||||||
|
|
||||||
from ..const import ATTR_INPUT, ATTR_OUTPUT, ATTR_DEVICES, ATTR_NAME
|
from ..const import (
|
||||||
|
ATTR_INPUT, ATTR_OUTPUT, ATTR_DEVICES, ATTR_NAME, CHAN_ID, CHAN_TYPE)
|
||||||
from ..coresys import CoreSysAttributes
|
from ..coresys import CoreSysAttributes
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
@ -58,7 +59,9 @@ class AlsaAudio(CoreSysAttributes):
|
|||||||
|
|
||||||
# Process devices
|
# Process devices
|
||||||
for dev_id, dev_data in self.sys_hardware.audio_devices.items():
|
for dev_id, dev_data in self.sys_hardware.audio_devices.items():
|
||||||
for chan_id, chan_type in dev_data[ATTR_DEVICES].items():
|
for chan_info in dev_data[ATTR_DEVICES]:
|
||||||
|
chan_id = chan_info[CHAN_ID]
|
||||||
|
chan_type = chan_info[CHAN_TYPE]
|
||||||
alsa_id = f"{dev_id},{chan_id}"
|
alsa_id = f"{dev_id},{chan_id}"
|
||||||
dev_name = dev_data[ATTR_NAME]
|
dev_name = dev_data[ATTR_NAME]
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ import re
|
|||||||
|
|
||||||
import pyudev
|
import pyudev
|
||||||
|
|
||||||
from ..const import ATTR_NAME, ATTR_TYPE, ATTR_DEVICES
|
from ..const import ATTR_NAME, ATTR_TYPE, ATTR_DEVICES, CHAN_ID, CHAN_TYPE
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -87,14 +87,16 @@ class Hardware:
|
|||||||
audio_list[match.group(1)] = {
|
audio_list[match.group(1)] = {
|
||||||
ATTR_NAME: match.group(3),
|
ATTR_NAME: match.group(3),
|
||||||
ATTR_TYPE: match.group(2),
|
ATTR_TYPE: match.group(2),
|
||||||
ATTR_DEVICES: {},
|
ATTR_DEVICES: [],
|
||||||
}
|
}
|
||||||
|
|
||||||
# parse devices
|
# parse devices
|
||||||
for match in RE_DEVICES.finditer(devices):
|
for match in RE_DEVICES.finditer(devices):
|
||||||
try:
|
try:
|
||||||
audio_list[match.group(1)][ATTR_DEVICES][match.group(2)] = \
|
audio_list[match.group(1)][ATTR_DEVICES].append({
|
||||||
match.group(3)
|
CHAN_ID: match.group(2),
|
||||||
|
CHAN_TYPE: match.group(3)
|
||||||
|
})
|
||||||
except KeyError:
|
except KeyError:
|
||||||
_LOGGER.warning("Wrong audio device found %s", match.group(0))
|
_LOGGER.warning("Wrong audio device found %s", match.group(0))
|
||||||
continue
|
continue
|
||||||
|
Loading…
x
Reference in New Issue
Block a user