1 """Constants for the Onkyo integration."""
5 from typing
import ClassVar, Literal, Self
11 DEVICE_INTERVIEW_TIMEOUT = 5
12 DEVICE_DISCOVERY_TIMEOUT = 5
14 CONF_SOURCES =
"sources"
15 CONF_RECEIVER_MAX_VOLUME =
"receiver_max_volume"
17 type VolumeResolution = Literal[50, 80, 100, 200]
18 OPTION_VOLUME_RESOLUTION =
"volume_resolution"
19 OPTION_VOLUME_RESOLUTION_DEFAULT: VolumeResolution = 50
20 VOLUME_RESOLUTION_ALLOWED: tuple[VolumeResolution, ...] = typing.get_args(
21 VolumeResolution.__value__
24 OPTION_MAX_VOLUME =
"max_volume"
25 OPTION_MAX_VOLUME_DEFAULT = 100.0
27 OPTION_INPUT_SOURCES =
"input_sources"
29 _INPUT_SOURCE_MEANINGS = {
30 "00":
"VIDEO1 ··· VCR/DVR ··· STB/DVR",
31 "01":
"VIDEO2 ··· CBL/SAT",
32 "02":
"VIDEO3 ··· GAME/TV ··· GAME",
33 "03":
"VIDEO4 ··· AUX",
34 "04":
"VIDEO5 ··· AUX2 ··· GAME2",
35 "05":
"VIDEO6 ··· PC",
37 "07":
"HIDDEN1 ··· EXTRA1",
38 "08":
"HIDDEN2 ··· EXTRA2",
39 "09":
"HIDDEN3 ··· EXTRA3",
40 "10":
"DVD ··· BD/DVD",
43 "20":
"TAPE ··· TV/TAPE",
50 "27":
"MUSIC SERVER ··· P4S ··· DLNA",
51 "28":
"INTERNET RADIO ··· IRADIO FAVORITE",
52 "29":
"USB ··· USB(FRONT)",
54 "2B":
"NETWORK ··· NET",
62 "40":
"UNIVERSAL PORT",
75 """Receiver input source."""
109 UNIVERSAL_PORT =
"40"
119 __meaning_mapping: ClassVar[dict[str, Self]] = {}
124 """Create InputSource enum."""
125 obj = object.__new__(cls)
127 obj.value_meaning = _INPUT_SOURCE_MEANINGS[value]
129 cls.__meaning_mapping[obj.value_meaning] = obj
135 """Get InputSource enum from its meaning."""
136 return cls.__meaning_mapping[meaning]
139 ZONES = {
"main":
"Main",
"zone2":
"Zone 2",
"zone3":
"Zone 3",
"zone4":
"Zone 4"}
141 PYEISCP_COMMANDS = pyeiscp.commands.COMMANDS