denonavr 1.2.0__py3-none-any.whl → 1.3.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- denonavr/__init__.py +1 -1
- denonavr/api.py +7 -5
- denonavr/appcommand.py +48 -12
- denonavr/audyssey.py +26 -23
- denonavr/const.py +426 -141
- denonavr/decorators.py +2 -3
- denonavr/denonavr.py +140 -101
- denonavr/dirac.py +5 -5
- denonavr/foundation.py +382 -294
- denonavr/input.py +57 -24
- denonavr/soundmode.py +46 -32
- denonavr/volume.py +33 -36
- {denonavr-1.2.0.dist-info → denonavr-1.3.1.dist-info}/METADATA +1 -1
- denonavr-1.3.1.dist-info/RECORD +20 -0
- {denonavr-1.2.0.dist-info → denonavr-1.3.1.dist-info}/WHEEL +1 -1
- denonavr-1.2.0.dist-info/RECORD +0 -20
- {denonavr-1.2.0.dist-info → denonavr-1.3.1.dist-info}/licenses/LICENSE +0 -0
- {denonavr-1.2.0.dist-info → denonavr-1.3.1.dist-info}/top_level.txt +0 -0
denonavr/decorators.py
CHANGED
|
@@ -9,7 +9,6 @@ This module implements the REST API to Denon AVR receivers.
|
|
|
9
9
|
|
|
10
10
|
import inspect
|
|
11
11
|
import logging
|
|
12
|
-
import time
|
|
13
12
|
from functools import wraps
|
|
14
13
|
from typing import Callable, TypeVar
|
|
15
14
|
|
|
@@ -64,7 +63,7 @@ def cache_result(func: Callable[..., AnyT]) -> Callable[..., AnyT]:
|
|
|
64
63
|
"""
|
|
65
64
|
Decorate a function to cache its results with an lru_cache of maxsize 32.
|
|
66
65
|
|
|
67
|
-
|
|
66
|
+
The cache is only used if the "cache_id" keyword argument is set.
|
|
68
67
|
"""
|
|
69
68
|
if inspect.signature(func).parameters.get("cache_id") is None:
|
|
70
69
|
raise AttributeError(
|
|
@@ -77,7 +76,7 @@ def cache_result(func: Callable[..., AnyT]) -> Callable[..., AnyT]:
|
|
|
77
76
|
@wraps(func)
|
|
78
77
|
async def wrapper(*args, **kwargs):
|
|
79
78
|
if kwargs.get("cache_id") is None:
|
|
80
|
-
|
|
79
|
+
return await func(*args, **kwargs)
|
|
81
80
|
|
|
82
81
|
return await cached_func(*args, **kwargs)
|
|
83
82
|
|
denonavr/denonavr.py
CHANGED
|
@@ -17,6 +17,7 @@ import httpx
|
|
|
17
17
|
|
|
18
18
|
from .audyssey import DenonAVRAudyssey, audyssey_factory
|
|
19
19
|
from .const import (
|
|
20
|
+
AVR_X,
|
|
20
21
|
DENON_ATTR_SETATTR,
|
|
21
22
|
MAIN_ZONE,
|
|
22
23
|
VALID_ZONES,
|
|
@@ -24,17 +25,21 @@ from .const import (
|
|
|
24
25
|
AutoStandbys,
|
|
25
26
|
BluetoothOutputModes,
|
|
26
27
|
DimmerModes,
|
|
28
|
+
DynamicVolumeSettings,
|
|
27
29
|
EcoModes,
|
|
28
30
|
HDMIAudioDecodes,
|
|
29
31
|
HDMIOutputs,
|
|
30
32
|
Illuminations,
|
|
33
|
+
InputModes,
|
|
34
|
+
MultiEQModes,
|
|
31
35
|
PanelLocks,
|
|
36
|
+
ReferenceLevelOffsets,
|
|
32
37
|
RoomSizes,
|
|
33
38
|
TransducerLPFs,
|
|
34
39
|
VideoProcessingModes,
|
|
35
40
|
)
|
|
36
41
|
from .dirac import DenonAVRDirac, dirac_factory
|
|
37
|
-
from .exceptions import AvrCommandError
|
|
42
|
+
from .exceptions import AvrCommandError, AvrForbiddenError, AvrIncompleteResponseError
|
|
38
43
|
from .foundation import DenonAVRFoundation, set_api_host, set_api_timeout
|
|
39
44
|
from .input import DenonAVRInput, input_factory
|
|
40
45
|
from .soundmode import DenonAVRSoundMode, sound_mode_factory
|
|
@@ -85,7 +90,7 @@ class DenonAVR(DenonAVRFoundation):
|
|
|
85
90
|
_timeout: float = attr.ib(
|
|
86
91
|
converter=float, on_setattr=[*DENON_ATTR_SETATTR, set_api_timeout], default=2.0
|
|
87
92
|
)
|
|
88
|
-
_zones: Dict[str,
|
|
93
|
+
_zones: Dict[str, "DenonAVR"] = attr.ib(
|
|
89
94
|
validator=attr.validators.deep_mapping(
|
|
90
95
|
attr.validators.in_(VALID_ZONES),
|
|
91
96
|
attr.validators.instance_of(DenonAVRFoundation),
|
|
@@ -95,6 +100,7 @@ class DenonAVR(DenonAVRFoundation):
|
|
|
95
100
|
init=False,
|
|
96
101
|
)
|
|
97
102
|
_setup_lock: asyncio.Lock = attr.ib(default=attr.Factory(asyncio.Lock))
|
|
103
|
+
_allow_recovery: bool = attr.ib(converter=bool, default=True, init=True)
|
|
98
104
|
audyssey: DenonAVRAudyssey = attr.ib(
|
|
99
105
|
validator=attr.validators.instance_of(DenonAVRAudyssey),
|
|
100
106
|
default=attr.Factory(audyssey_factory, takes_self=True),
|
|
@@ -194,23 +200,46 @@ class DenonAVR(DenonAVRFoundation):
|
|
|
194
200
|
# Create a cache id for this global update
|
|
195
201
|
cache_id = time.time()
|
|
196
202
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
203
|
+
try:
|
|
204
|
+
# Update device
|
|
205
|
+
await self._device.async_update(global_update=True, cache_id=cache_id)
|
|
206
|
+
|
|
207
|
+
# Update other functions
|
|
208
|
+
await self.input.async_update(global_update=True, cache_id=cache_id)
|
|
209
|
+
await self.soundmode.async_update(global_update=True, cache_id=cache_id)
|
|
210
|
+
await self.tonecontrol.async_update(global_update=True, cache_id=cache_id)
|
|
211
|
+
await self.vol.async_update(global_update=True, cache_id=cache_id)
|
|
212
|
+
except AvrForbiddenError:
|
|
213
|
+
# Recovery in case receiver changes port from 80 to 8080 which
|
|
214
|
+
# might happen at Denon AVR-X 2016 receivers
|
|
215
|
+
if self._device.use_avr_2016_update and self._allow_recovery:
|
|
216
|
+
self._allow_recovery = False
|
|
217
|
+
_LOGGER.warning(
|
|
218
|
+
"AppCommand.xml returns HTTP status 403. Running setup"
|
|
219
|
+
" again once to check if receiver interface switched "
|
|
220
|
+
"ports"
|
|
221
|
+
)
|
|
222
|
+
self._is_setup = False
|
|
223
|
+
await self.async_update()
|
|
224
|
+
else:
|
|
225
|
+
raise
|
|
226
|
+
except AvrIncompleteResponseError:
|
|
227
|
+
# Use status XML interface if Appcommand.xml returns an incomplete result
|
|
228
|
+
# Only AVR_X devices support both interfaces
|
|
229
|
+
if self._device.use_avr_2016_update and self._device.receiver == AVR_X:
|
|
230
|
+
_LOGGER.warning(
|
|
231
|
+
"Error verifying Appcommand.xml update method, it returns "
|
|
232
|
+
"an incomplete result set. Deactivating the interface"
|
|
233
|
+
)
|
|
234
|
+
self._device.use_avr_2016_update = False
|
|
235
|
+
await self.async_update()
|
|
236
|
+
else:
|
|
237
|
+
raise
|
|
238
|
+
else:
|
|
239
|
+
if not self._allow_recovery:
|
|
240
|
+
self._allow_recovery = True
|
|
241
|
+
_LOGGER.info("AppCommand.xml recovered from HTTP status 403 error")
|
|
200
242
|
|
|
201
|
-
# Update device
|
|
202
|
-
await self._device.async_update(global_update=True, cache_id=cache_id)
|
|
203
|
-
|
|
204
|
-
# Update other functions
|
|
205
|
-
await self.input.async_update(global_update=True, cache_id=cache_id)
|
|
206
|
-
await self.soundmode.async_update(global_update=True, cache_id=cache_id)
|
|
207
|
-
await self.tonecontrol.async_update(global_update=True, cache_id=cache_id)
|
|
208
|
-
await self.vol.async_update(global_update=True, cache_id=cache_id)
|
|
209
|
-
|
|
210
|
-
# AppCommand0300.xml interface is very slow, thus it is not included
|
|
211
|
-
# into main update
|
|
212
|
-
# await self.audyssey.async_update(
|
|
213
|
-
# global_update=True, cache_id=cache_id)
|
|
214
243
|
_LOGGER.debug("Finished denonavr update")
|
|
215
244
|
|
|
216
245
|
async def async_update_tonecontrol(self):
|
|
@@ -320,7 +349,7 @@ class DenonAVR(DenonAVRFoundation):
|
|
|
320
349
|
return self.input.state
|
|
321
350
|
|
|
322
351
|
@property
|
|
323
|
-
def muted(self) -> bool:
|
|
352
|
+
def muted(self) -> Optional[bool]:
|
|
324
353
|
"""
|
|
325
354
|
Boolean if volume is currently muted.
|
|
326
355
|
|
|
@@ -329,7 +358,7 @@ class DenonAVR(DenonAVRFoundation):
|
|
|
329
358
|
return self.vol.muted
|
|
330
359
|
|
|
331
360
|
@property
|
|
332
|
-
def volume(self) -> float:
|
|
361
|
+
def volume(self) -> Optional[float]:
|
|
333
362
|
"""
|
|
334
363
|
Return volume of Denon AVR as float.
|
|
335
364
|
|
|
@@ -432,7 +461,7 @@ class DenonAVR(DenonAVRFoundation):
|
|
|
432
461
|
return self.input.playing_func_list
|
|
433
462
|
|
|
434
463
|
@property
|
|
435
|
-
def receiver_port(self) -> int:
|
|
464
|
+
def receiver_port(self) -> Optional[int]:
|
|
436
465
|
"""Return the receiver's port."""
|
|
437
466
|
if self._device.receiver is None:
|
|
438
467
|
return None
|
|
@@ -540,8 +569,6 @@ class DenonAVR(DenonAVRFoundation):
|
|
|
540
569
|
"""
|
|
541
570
|
Returns the dimmer state of the device.
|
|
542
571
|
|
|
543
|
-
Only available if using Telnet.
|
|
544
|
-
|
|
545
572
|
Possible values are: "Off", "Dark", "Dim" and "Bright"
|
|
546
573
|
"""
|
|
547
574
|
return self._device.dimmer
|
|
@@ -551,9 +578,7 @@ class DenonAVR(DenonAVRFoundation):
|
|
|
551
578
|
"""
|
|
552
579
|
Return the auto-standby state of the device.
|
|
553
580
|
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
Possible values are: "OFF", "15M", "30M", "60M"
|
|
581
|
+
Possible values are: "OFF", "15M", "30M", "60M", "2H", "4H", "8H"
|
|
557
582
|
"""
|
|
558
583
|
return self._device.auto_standby
|
|
559
584
|
|
|
@@ -582,8 +607,6 @@ class DenonAVR(DenonAVRFoundation):
|
|
|
582
607
|
"""
|
|
583
608
|
Returns the eco-mode for the device.
|
|
584
609
|
|
|
585
|
-
Only available if using Telnet.
|
|
586
|
-
|
|
587
610
|
Possible values are: "Off", "On", "Auto"
|
|
588
611
|
"""
|
|
589
612
|
return self._device.eco_mode
|
|
@@ -622,7 +645,7 @@ class DenonAVR(DenonAVRFoundation):
|
|
|
622
645
|
return self._device.video_processing_mode
|
|
623
646
|
|
|
624
647
|
@property
|
|
625
|
-
def tactile_transducer(self) -> Optional[
|
|
648
|
+
def tactile_transducer(self) -> Optional[str]:
|
|
626
649
|
"""
|
|
627
650
|
Return the tactile transducer state of the device.
|
|
628
651
|
|
|
@@ -660,7 +683,7 @@ class DenonAVR(DenonAVRFoundation):
|
|
|
660
683
|
return self._device.room_size
|
|
661
684
|
|
|
662
685
|
@property
|
|
663
|
-
def triggers(self) -> Dict[int, str]:
|
|
686
|
+
def triggers(self) -> Optional[Dict[int, str]]:
|
|
664
687
|
"""
|
|
665
688
|
Return the triggers and their statuses for the device.
|
|
666
689
|
|
|
@@ -799,15 +822,15 @@ class DenonAVR(DenonAVRFoundation):
|
|
|
799
822
|
"""Toggle DynamicEQ."""
|
|
800
823
|
await self.audyssey.async_toggle_dynamic_eq()
|
|
801
824
|
|
|
802
|
-
async def async_set_multieq(self, value:
|
|
825
|
+
async def async_set_multieq(self, value: MultiEQModes) -> None:
|
|
803
826
|
"""Set MultiEQ mode."""
|
|
804
827
|
await self.audyssey.async_set_multieq(value)
|
|
805
828
|
|
|
806
|
-
async def async_set_reflevoffset(self, value:
|
|
829
|
+
async def async_set_reflevoffset(self, value: ReferenceLevelOffsets) -> None:
|
|
807
830
|
"""Set Reference Level Offset."""
|
|
808
831
|
await self.audyssey.async_set_reflevoffset(value)
|
|
809
832
|
|
|
810
|
-
async def async_set_dynamicvol(self, value:
|
|
833
|
+
async def async_set_dynamicvol(self, value: DynamicVolumeSettings) -> None:
|
|
811
834
|
"""Set Dynamic Volume."""
|
|
812
835
|
await self.audyssey.async_set_dynamicvol(value)
|
|
813
836
|
|
|
@@ -834,40 +857,44 @@ class DenonAVR(DenonAVRFoundation):
|
|
|
834
857
|
await self.input.async_toggle_play_pause()
|
|
835
858
|
|
|
836
859
|
async def async_play(self) -> None:
|
|
837
|
-
"""Send play command to receiver command
|
|
860
|
+
"""Send play command to receiver command."""
|
|
838
861
|
await self.input.async_play()
|
|
839
862
|
|
|
840
863
|
async def async_pause(self) -> None:
|
|
841
|
-
"""Send pause command to receiver command
|
|
864
|
+
"""Send pause command to receiver command."""
|
|
842
865
|
await self.input.async_pause()
|
|
843
866
|
|
|
867
|
+
async def async_stop(self) -> None:
|
|
868
|
+
"""Send stop command to receiver command."""
|
|
869
|
+
await self.input.async_stop()
|
|
870
|
+
|
|
844
871
|
async def async_previous_track(self) -> None:
|
|
845
|
-
"""Send previous track command to receiver command
|
|
872
|
+
"""Send previous track command to receiver command."""
|
|
846
873
|
await self.input.async_previous_track()
|
|
847
874
|
|
|
848
875
|
async def async_next_track(self) -> None:
|
|
849
|
-
"""Send next track command to receiver command
|
|
876
|
+
"""Send next track command to receiver command."""
|
|
850
877
|
await self.input.async_next_track()
|
|
851
878
|
|
|
852
879
|
async def async_power_on(self) -> None:
|
|
853
|
-
"""Turn on receiver
|
|
880
|
+
"""Turn on receiver."""
|
|
854
881
|
await self._device.async_power_on()
|
|
855
882
|
|
|
856
883
|
async def async_power_off(self) -> None:
|
|
857
|
-
"""Turn off receiver
|
|
884
|
+
"""Turn off receiver."""
|
|
858
885
|
await self._device.async_power_off()
|
|
859
886
|
|
|
860
887
|
async def async_volume_up(self) -> None:
|
|
861
|
-
"""Volume up receiver
|
|
888
|
+
"""Volume up receiver."""
|
|
862
889
|
await self.vol.async_volume_up()
|
|
863
890
|
|
|
864
891
|
async def async_volume_down(self) -> None:
|
|
865
|
-
"""Volume down receiver
|
|
892
|
+
"""Volume down receiver."""
|
|
866
893
|
await self.vol.async_volume_down()
|
|
867
894
|
|
|
868
895
|
async def async_set_volume(self, volume: float) -> None:
|
|
869
896
|
"""
|
|
870
|
-
Set receiver volume
|
|
897
|
+
Set receiver volume.
|
|
871
898
|
|
|
872
899
|
Volume is send in a format like -50.0.
|
|
873
900
|
Minimum is -80.0, maximum at 18.0
|
|
@@ -875,7 +902,7 @@ class DenonAVR(DenonAVRFoundation):
|
|
|
875
902
|
await self.vol.async_set_volume(volume)
|
|
876
903
|
|
|
877
904
|
async def async_mute(self, mute: bool) -> None:
|
|
878
|
-
"""Mute receiver
|
|
905
|
+
"""Mute receiver."""
|
|
879
906
|
await self.vol.async_mute(mute)
|
|
880
907
|
|
|
881
908
|
async def async_enable_tone_control(self) -> None:
|
|
@@ -945,60 +972,60 @@ class DenonAVR(DenonAVRFoundation):
|
|
|
945
972
|
await self.tonecontrol.async_treble_down()
|
|
946
973
|
|
|
947
974
|
async def async_cursor_up(self) -> None:
|
|
948
|
-
"""Send cursor up to receiver
|
|
975
|
+
"""Send cursor up to receiver."""
|
|
949
976
|
await self._device.async_cursor_up()
|
|
950
977
|
|
|
951
978
|
async def async_cursor_down(self) -> None:
|
|
952
|
-
"""Send cursor down to receiver
|
|
979
|
+
"""Send cursor down to receiver."""
|
|
953
980
|
await self._device.async_cursor_down()
|
|
954
981
|
|
|
955
982
|
async def async_cursor_left(self) -> None:
|
|
956
|
-
"""Send cursor left to receiver
|
|
983
|
+
"""Send cursor left to receiver."""
|
|
957
984
|
await self._device.async_cursor_left()
|
|
958
985
|
|
|
959
986
|
async def async_cursor_right(self) -> None:
|
|
960
|
-
"""Send cursor right to receiver
|
|
987
|
+
"""Send cursor right to receiver."""
|
|
961
988
|
await self._device.async_cursor_right()
|
|
962
989
|
|
|
963
990
|
async def async_cursor_enter(self) -> None:
|
|
964
|
-
"""Send cursor enter to receiver
|
|
991
|
+
"""Send cursor enter to receiver."""
|
|
965
992
|
await self._device.async_cursor_enter()
|
|
966
993
|
|
|
967
994
|
async def async_back(self) -> None:
|
|
968
|
-
"""Send back to receiver
|
|
995
|
+
"""Send back to receiver."""
|
|
969
996
|
await self._device.async_back()
|
|
970
997
|
|
|
971
998
|
async def async_info(self) -> None:
|
|
972
|
-
"""Send info to receiver
|
|
999
|
+
"""Send info to receiver."""
|
|
973
1000
|
await self._device.async_info()
|
|
974
1001
|
|
|
975
1002
|
async def async_options(self) -> None:
|
|
976
|
-
"""Raise options menu to receiver
|
|
1003
|
+
"""Raise options menu to receiver."""
|
|
977
1004
|
await self._device.async_options()
|
|
978
1005
|
|
|
979
1006
|
async def async_settings_menu(self) -> None:
|
|
980
|
-
"""Raise settings menu to receiver
|
|
1007
|
+
"""Raise settings menu to receiver."""
|
|
981
1008
|
await self._device.async_settings_menu()
|
|
982
1009
|
|
|
983
1010
|
async def async_channel_level_adjust(self) -> None:
|
|
984
|
-
"""Toggle the channel level adjust menu on receiver
|
|
1011
|
+
"""Toggle the channel level adjust menu on receiver."""
|
|
985
1012
|
await self._device.async_channel_level_adjust()
|
|
986
1013
|
|
|
987
1014
|
async def async_dimmer_toggle(self) -> None:
|
|
988
|
-
"""Toggle dimmer on receiver
|
|
1015
|
+
"""Toggle dimmer on receiver."""
|
|
989
1016
|
await self._device.async_dimmer_toggle()
|
|
990
1017
|
|
|
991
1018
|
async def async_dimmer(self, mode: DimmerModes) -> None:
|
|
992
|
-
"""Set dimmer mode on receiver
|
|
1019
|
+
"""Set dimmer mode on receiver."""
|
|
993
1020
|
await self._device.async_dimmer(mode)
|
|
994
1021
|
|
|
995
1022
|
async def async_auto_standby(self, auto_standby: AutoStandbys) -> None:
|
|
996
|
-
"""Set auto standby on receiver
|
|
1023
|
+
"""Set auto standby on receiver."""
|
|
997
1024
|
await self._device.async_auto_standby(auto_standby)
|
|
998
1025
|
|
|
999
1026
|
async def async_sleep(self, sleep: Union[Literal["OFF"], int]) -> None:
|
|
1000
1027
|
"""
|
|
1001
|
-
Set auto standby on receiver
|
|
1028
|
+
Set auto standby on receiver.
|
|
1002
1029
|
|
|
1003
1030
|
Valid sleep values are "OFF" and 1-120 (in minutes)
|
|
1004
1031
|
"""
|
|
@@ -1021,14 +1048,14 @@ class DenonAVR(DenonAVRFoundation):
|
|
|
1021
1048
|
await self._device.async_hdmi_output(output)
|
|
1022
1049
|
|
|
1023
1050
|
async def async_hdmi_audio_decode(self, mode: HDMIAudioDecodes) -> None:
|
|
1024
|
-
"""Set HDMI Audio Decode mode on receiver
|
|
1051
|
+
"""Set HDMI Audio Decode mode on receiver."""
|
|
1025
1052
|
await self._device.async_hdmi_audio_decode(mode)
|
|
1026
1053
|
|
|
1027
1054
|
async def async_video_processing_mode(self, mode: VideoProcessingModes) -> None:
|
|
1028
|
-
"""Set video processing mode on receiver
|
|
1055
|
+
"""Set video processing mode on receiver."""
|
|
1029
1056
|
await self._device.async_video_processing_mode(mode)
|
|
1030
1057
|
|
|
1031
|
-
async def async_status(self) ->
|
|
1058
|
+
async def async_status(self) -> None:
|
|
1032
1059
|
"""
|
|
1033
1060
|
Toggles the display of status on the device.
|
|
1034
1061
|
|
|
@@ -1037,16 +1064,16 @@ class DenonAVR(DenonAVRFoundation):
|
|
|
1037
1064
|
return await self._device.async_status()
|
|
1038
1065
|
|
|
1039
1066
|
async def async_system_reset(self) -> None:
|
|
1040
|
-
"""DANGER! Reset the receiver
|
|
1067
|
+
"""DANGER! Reset the receiver."""
|
|
1041
1068
|
await self._device.async_system_reset()
|
|
1042
1069
|
|
|
1043
1070
|
async def async_network_restart(self) -> None:
|
|
1044
|
-
"""Restart the network on the receiver
|
|
1071
|
+
"""Restart the network on the receiver."""
|
|
1045
1072
|
await self._device.async_network_restart()
|
|
1046
1073
|
|
|
1047
1074
|
async def async_speaker_preset(self, preset: int) -> None:
|
|
1048
1075
|
"""
|
|
1049
|
-
Set speaker preset on receiver
|
|
1076
|
+
Set speaker preset on receiver.
|
|
1050
1077
|
|
|
1051
1078
|
Valid preset values are 1-2.
|
|
1052
1079
|
"""
|
|
@@ -1054,143 +1081,143 @@ class DenonAVR(DenonAVRFoundation):
|
|
|
1054
1081
|
|
|
1055
1082
|
async def async_speaker_preset_toggle(self) -> None:
|
|
1056
1083
|
"""
|
|
1057
|
-
Toggle speaker preset on receiver
|
|
1084
|
+
Toggle speaker preset on receiver.
|
|
1058
1085
|
|
|
1059
1086
|
Only available if using Telnet.
|
|
1060
1087
|
"""
|
|
1061
1088
|
await self._device.async_speaker_preset_toggle()
|
|
1062
1089
|
|
|
1063
1090
|
async def async_bt_transmitter_on(self) -> None:
|
|
1064
|
-
"""Turn on Bluetooth transmitter on receiver
|
|
1091
|
+
"""Turn on Bluetooth transmitter on receiver."""
|
|
1065
1092
|
await self._device.async_bt_transmitter_on()
|
|
1066
1093
|
|
|
1067
1094
|
async def async_bt_transmitter_off(self) -> None:
|
|
1068
|
-
"""Turn off Bluetooth transmitter on receiver
|
|
1095
|
+
"""Turn off Bluetooth transmitter on receiver."""
|
|
1069
1096
|
await self._device.async_bt_transmitter_off()
|
|
1070
1097
|
|
|
1071
1098
|
async def async_bt_transmitter_toggle(self) -> None:
|
|
1072
1099
|
"""
|
|
1073
|
-
Toggle Bluetooth transmitter mode on receiver
|
|
1100
|
+
Toggle Bluetooth transmitter mode on receiver.
|
|
1074
1101
|
|
|
1075
1102
|
Only available if using Telnet.
|
|
1076
1103
|
"""
|
|
1077
1104
|
await self._device.async_bt_transmitter_toggle()
|
|
1078
1105
|
|
|
1079
1106
|
async def async_bt_output_mode(self, mode: BluetoothOutputModes) -> None:
|
|
1080
|
-
"""Set Bluetooth transmitter mode on receiver
|
|
1107
|
+
"""Set Bluetooth transmitter mode on receiver."""
|
|
1081
1108
|
await self._device.async_bt_output_mode(mode)
|
|
1082
1109
|
|
|
1083
1110
|
async def async_bt_output_mode_toggle(self) -> None:
|
|
1084
1111
|
"""
|
|
1085
|
-
Toggle Bluetooth output mode on receiver
|
|
1112
|
+
Toggle Bluetooth output mode on receiver.
|
|
1086
1113
|
|
|
1087
1114
|
Only available if using Telnet.
|
|
1088
1115
|
"""
|
|
1089
1116
|
await self._device.async_bt_output_mode_toggle()
|
|
1090
1117
|
|
|
1091
1118
|
async def async_delay_time_up(self) -> None:
|
|
1092
|
-
"""Delay time up on receiver
|
|
1119
|
+
"""Delay time up on receiver."""
|
|
1093
1120
|
await self._device.async_delay_time_up()
|
|
1094
1121
|
|
|
1095
1122
|
async def async_delay_time_down(self) -> None:
|
|
1096
|
-
"""Delay time up on receiver
|
|
1123
|
+
"""Delay time up on receiver."""
|
|
1097
1124
|
await self._device.async_delay_time_down()
|
|
1098
1125
|
|
|
1099
1126
|
async def async_delay_time(self, delay_time: int) -> None:
|
|
1100
1127
|
"""
|
|
1101
|
-
Set delay time on receiver
|
|
1128
|
+
Set delay time on receiver.
|
|
1102
1129
|
|
|
1103
1130
|
:param delay_time: Delay time in ms. Valid values are 0-999.
|
|
1104
1131
|
"""
|
|
1105
1132
|
await self._device.async_delay_time(delay_time)
|
|
1106
1133
|
|
|
1107
1134
|
async def async_audio_restorer(self, mode: AudioRestorers):
|
|
1108
|
-
"""Set audio restorer on receiver
|
|
1135
|
+
"""Set audio restorer on receiver."""
|
|
1109
1136
|
await self._device.async_audio_restorer(mode)
|
|
1110
1137
|
|
|
1111
1138
|
async def async_remote_control_lock(self):
|
|
1112
|
-
"""Set remote control lock on receiver
|
|
1139
|
+
"""Set remote control lock on receiver."""
|
|
1113
1140
|
await self._device.async_remote_control_lock()
|
|
1114
1141
|
|
|
1115
1142
|
async def async_remote_control_unlock(self):
|
|
1116
|
-
"""Set remote control unlock on receiver
|
|
1143
|
+
"""Set remote control unlock on receiver."""
|
|
1117
1144
|
await self._device.async_remote_control_unlock()
|
|
1118
1145
|
|
|
1119
1146
|
async def async_panel_lock(self, panel_lock_mode: PanelLocks):
|
|
1120
|
-
"""Set panel lock on receiver
|
|
1147
|
+
"""Set panel lock on receiver."""
|
|
1121
1148
|
await self._device.async_panel_lock(panel_lock_mode)
|
|
1122
1149
|
|
|
1123
1150
|
async def async_panel_unlock(self):
|
|
1124
|
-
"""Set panel unlock on receiver
|
|
1151
|
+
"""Set panel unlock on receiver."""
|
|
1125
1152
|
await self._device.async_panel_unlock()
|
|
1126
1153
|
|
|
1127
1154
|
async def async_graphic_eq_on(self) -> None:
|
|
1128
|
-
"""Turn on Graphic EQ on receiver
|
|
1155
|
+
"""Turn on Graphic EQ on receiver."""
|
|
1129
1156
|
await self._device.async_graphic_eq_on()
|
|
1130
1157
|
|
|
1131
1158
|
async def async_graphic_eq_off(self) -> None:
|
|
1132
|
-
"""Turn off Graphic EQ on receiver
|
|
1159
|
+
"""Turn off Graphic EQ on receiver."""
|
|
1133
1160
|
await self._device.async_graphic_eq_off()
|
|
1134
1161
|
|
|
1135
1162
|
async def async_graphic_eq_toggle(self) -> None:
|
|
1136
1163
|
"""
|
|
1137
|
-
Toggle Graphic EQ on receiver
|
|
1164
|
+
Toggle Graphic EQ on receiver.
|
|
1138
1165
|
|
|
1139
1166
|
Only available if using Telnet.
|
|
1140
1167
|
"""
|
|
1141
1168
|
await self._device.async_graphic_eq_toggle()
|
|
1142
1169
|
|
|
1143
1170
|
async def async_headphone_eq_on(self) -> None:
|
|
1144
|
-
"""Turn on Headphone EQ on receiver
|
|
1171
|
+
"""Turn on Headphone EQ on receiver."""
|
|
1145
1172
|
await self._device.async_headphone_eq_on()
|
|
1146
1173
|
|
|
1147
1174
|
async def async_headphone_eq_off(self) -> None:
|
|
1148
|
-
"""Turn off Headphone EQ on receiver
|
|
1175
|
+
"""Turn off Headphone EQ on receiver."""
|
|
1149
1176
|
await self._device.async_headphone_eq_off()
|
|
1150
1177
|
|
|
1151
1178
|
async def async_headphone_eq_toggle(self) -> None:
|
|
1152
1179
|
"""
|
|
1153
|
-
Toggle Headphone EQ on receiver
|
|
1180
|
+
Toggle Headphone EQ on receiver.
|
|
1154
1181
|
|
|
1155
1182
|
Only available if using Telnet.
|
|
1156
1183
|
"""
|
|
1157
1184
|
await self._device.async_headphone_eq_toggle()
|
|
1158
1185
|
|
|
1159
1186
|
async def async_tactile_transducer_on(self) -> None:
|
|
1160
|
-
"""Turn on tactile transducer on receiver
|
|
1187
|
+
"""Turn on tactile transducer on receiver."""
|
|
1161
1188
|
await self._device.async_tactile_transducer_on()
|
|
1162
1189
|
|
|
1163
1190
|
async def async_tactile_transducer_off(self) -> None:
|
|
1164
|
-
"""Turn on tactile transducer on receiver
|
|
1191
|
+
"""Turn on tactile transducer on receiver."""
|
|
1165
1192
|
await self._device.async_tactile_transducer_off()
|
|
1166
1193
|
|
|
1167
1194
|
async def async_tactile_transducer_toggle(self) -> None:
|
|
1168
1195
|
"""
|
|
1169
|
-
Turn on tactile transducer on receiver
|
|
1196
|
+
Turn on tactile transducer on receiver.
|
|
1170
1197
|
|
|
1171
1198
|
Only available if using Telnet.
|
|
1172
1199
|
"""
|
|
1173
1200
|
await self._device.async_tactile_transducer_toggle()
|
|
1174
1201
|
|
|
1175
1202
|
async def async_tactile_transducer_level_up(self) -> None:
|
|
1176
|
-
"""Increase the transducer level on receiver
|
|
1203
|
+
"""Increase the transducer level on receiver."""
|
|
1177
1204
|
await self._device.async_tactile_transducer_level_up()
|
|
1178
1205
|
|
|
1179
1206
|
async def async_tactile_transducer_level_down(self) -> None:
|
|
1180
|
-
"""Decrease the transducer on receiver
|
|
1207
|
+
"""Decrease the transducer on receiver."""
|
|
1181
1208
|
await self._device.async_tactile_transducer_level_down()
|
|
1182
1209
|
|
|
1183
1210
|
async def async_transducer_lpf(self, lpf: TransducerLPFs) -> None:
|
|
1184
|
-
"""Set transducer low pass filter on receiver
|
|
1211
|
+
"""Set transducer low pass filter on receiver."""
|
|
1185
1212
|
await self._device.async_transducer_lpf(lpf)
|
|
1186
1213
|
|
|
1187
1214
|
async def async_room_size(self, room_size: RoomSizes) -> None:
|
|
1188
|
-
"""Set room size on receiver
|
|
1215
|
+
"""Set room size on receiver."""
|
|
1189
1216
|
await self._device.async_room_size(room_size)
|
|
1190
1217
|
|
|
1191
1218
|
async def async_trigger_on(self, trigger: int) -> None:
|
|
1192
1219
|
"""
|
|
1193
|
-
Set trigger to ON on receiver
|
|
1220
|
+
Set trigger to ON on receiver.
|
|
1194
1221
|
|
|
1195
1222
|
:param trigger: Trigger number to set to ON. Valid values are 1-3.
|
|
1196
1223
|
"""
|
|
@@ -1198,7 +1225,7 @@ class DenonAVR(DenonAVRFoundation):
|
|
|
1198
1225
|
|
|
1199
1226
|
async def async_trigger_off(self, trigger: int) -> None:
|
|
1200
1227
|
"""
|
|
1201
|
-
Set trigger to OFF on receiver
|
|
1228
|
+
Set trigger to OFF on receiver.
|
|
1202
1229
|
|
|
1203
1230
|
:param trigger: Trigger number to set to OFF. Valid values are 1-3.
|
|
1204
1231
|
"""
|
|
@@ -1206,7 +1233,7 @@ class DenonAVR(DenonAVRFoundation):
|
|
|
1206
1233
|
|
|
1207
1234
|
async def async_trigger_toggle(self, trigger: int) -> None:
|
|
1208
1235
|
"""
|
|
1209
|
-
Toggle trigger on receiver
|
|
1236
|
+
Toggle trigger on receiver.
|
|
1210
1237
|
|
|
1211
1238
|
Only available if using Telnet.
|
|
1212
1239
|
|
|
@@ -1216,7 +1243,7 @@ class DenonAVR(DenonAVRFoundation):
|
|
|
1216
1243
|
|
|
1217
1244
|
async def async_quick_select_mode(self, quick_select_number: int) -> None:
|
|
1218
1245
|
"""
|
|
1219
|
-
Set quick select mode on receiver
|
|
1246
|
+
Set quick select mode on receiver.
|
|
1220
1247
|
|
|
1221
1248
|
:param quick_select_number: Quick select number to set. Valid values are 1-5.
|
|
1222
1249
|
"""
|
|
@@ -1224,23 +1251,23 @@ class DenonAVR(DenonAVRFoundation):
|
|
|
1224
1251
|
|
|
1225
1252
|
async def async_quick_select_memory(self, quick_select_number: int) -> None:
|
|
1226
1253
|
"""
|
|
1227
|
-
Set quick select memory on receiver
|
|
1254
|
+
Set quick select memory on receiver.
|
|
1228
1255
|
|
|
1229
1256
|
:param quick_select_number: Quick select number to set. Valid values are 1-5.
|
|
1230
1257
|
"""
|
|
1231
1258
|
await self._device.async_quick_select_memory(quick_select_number)
|
|
1232
1259
|
|
|
1233
1260
|
async def async_hdmi_cec_on(self) -> None:
|
|
1234
|
-
"""Turn on HDMI CEC on receiver
|
|
1261
|
+
"""Turn on HDMI CEC on receiver."""
|
|
1235
1262
|
await self._device.async_hdmi_cec_on()
|
|
1236
1263
|
|
|
1237
1264
|
async def async_hdmi_cec_off(self) -> None:
|
|
1238
|
-
"""Turn off HDMI CEC on receiver
|
|
1265
|
+
"""Turn off HDMI CEC on receiver."""
|
|
1239
1266
|
await self._device.async_hdmi_cec_off()
|
|
1240
1267
|
|
|
1241
1268
|
async def async_illumination(self, mode: Illuminations):
|
|
1242
1269
|
"""
|
|
1243
|
-
Set illumination mode on receiver
|
|
1270
|
+
Set illumination mode on receiver.
|
|
1244
1271
|
|
|
1245
1272
|
Only available for Marantz devices.
|
|
1246
1273
|
"""
|
|
@@ -1248,7 +1275,7 @@ class DenonAVR(DenonAVRFoundation):
|
|
|
1248
1275
|
|
|
1249
1276
|
async def async_auto_lip_sync_on(self) -> None:
|
|
1250
1277
|
"""
|
|
1251
|
-
Turn on auto lip sync on receiver
|
|
1278
|
+
Turn on auto lip sync on receiver.
|
|
1252
1279
|
|
|
1253
1280
|
Only available on Marantz devices.
|
|
1254
1281
|
"""
|
|
@@ -1256,7 +1283,7 @@ class DenonAVR(DenonAVRFoundation):
|
|
|
1256
1283
|
|
|
1257
1284
|
async def async_auto_lip_sync_off(self) -> None:
|
|
1258
1285
|
"""
|
|
1259
|
-
Turn off auto lip sync on receiver
|
|
1286
|
+
Turn off auto lip sync on receiver.
|
|
1260
1287
|
|
|
1261
1288
|
Only available on Marantz devices.
|
|
1262
1289
|
"""
|
|
@@ -1264,8 +1291,20 @@ class DenonAVR(DenonAVRFoundation):
|
|
|
1264
1291
|
|
|
1265
1292
|
async def async_auto_lip_sync_toggle(self) -> None:
|
|
1266
1293
|
"""
|
|
1267
|
-
Toggle auto lip sync on receiver
|
|
1294
|
+
Toggle auto lip sync on receiver.
|
|
1268
1295
|
|
|
1269
1296
|
Only available on Marantz devices and when using Telnet.
|
|
1270
1297
|
"""
|
|
1271
1298
|
await self._device.async_auto_lip_sync_toggle()
|
|
1299
|
+
|
|
1300
|
+
async def async_page_up(self) -> None:
|
|
1301
|
+
"""Page Up on receiver."""
|
|
1302
|
+
await self._device.async_page_up()
|
|
1303
|
+
|
|
1304
|
+
async def async_page_down(self) -> None:
|
|
1305
|
+
"""Page Down on receiver."""
|
|
1306
|
+
await self._device.async_page_down()
|
|
1307
|
+
|
|
1308
|
+
async def async_input_mode(self, mode: InputModes):
|
|
1309
|
+
"""Set input mode on receiver."""
|
|
1310
|
+
await self._device.async_input_mode(mode)
|