denonavr 1.1.1__py3-none-any.whl → 1.2.0__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 +145 -111
- denonavr/audyssey.py +2 -6
- denonavr/const.py +148 -19
- denonavr/denonavr.py +64 -5
- denonavr/dirac.py +5 -8
- denonavr/foundation.py +245 -96
- denonavr/input.py +56 -48
- denonavr/soundmode.py +128 -44
- denonavr/ssdp.py +12 -11
- denonavr/tonecontrol.py +2 -6
- denonavr/volume.py +14 -30
- {denonavr-1.1.1.dist-info → denonavr-1.2.0.dist-info}/METADATA +2 -1
- denonavr-1.2.0.dist-info/RECORD +20 -0
- {denonavr-1.1.1.dist-info → denonavr-1.2.0.dist-info}/WHEEL +1 -1
- denonavr-1.1.1.dist-info/RECORD +0 -20
- {denonavr-1.1.1.dist-info → denonavr-1.2.0.dist-info}/licenses/LICENSE +0 -0
- {denonavr-1.1.1.dist-info → denonavr-1.2.0.dist-info}/top_level.txt +0 -0
denonavr/const.py
CHANGED
|
@@ -90,6 +90,8 @@ ReceiverURLs = namedtuple(
|
|
|
90
90
|
"command_hdmi_audio_decode",
|
|
91
91
|
"command_quick_select_mode",
|
|
92
92
|
"command_quick_select_memory",
|
|
93
|
+
"command_smart_select_mode", # Marantz
|
|
94
|
+
"command_smart_select_memory", # Marantz
|
|
93
95
|
"command_auto_standby",
|
|
94
96
|
"command_sleep",
|
|
95
97
|
"command_center_spread",
|
|
@@ -112,6 +114,14 @@ ReceiverURLs = namedtuple(
|
|
|
112
114
|
"command_panel_and_volume_lock",
|
|
113
115
|
"command_graphic_eq",
|
|
114
116
|
"command_headphone_eq",
|
|
117
|
+
"command_denon_hdmi_cec_on",
|
|
118
|
+
"command_denon_hdmi_cec_off",
|
|
119
|
+
"command_marantz_hdmi_cec_on",
|
|
120
|
+
"command_marantz_hdmi_cec_off",
|
|
121
|
+
"command_mdax", # Marantz Only
|
|
122
|
+
"command_dac_filter", # Marantz Only
|
|
123
|
+
"command_illumination", # Marantz Only
|
|
124
|
+
"command_auto_lip_sync", # Marantz Only
|
|
115
125
|
],
|
|
116
126
|
)
|
|
117
127
|
TelnetCommands = namedtuple(
|
|
@@ -183,6 +193,8 @@ TelnetCommands = namedtuple(
|
|
|
183
193
|
"command_hdmi_audio_decode",
|
|
184
194
|
"command_quick_select_mode",
|
|
185
195
|
"command_quick_select_memory",
|
|
196
|
+
"command_smart_select_mode", # Marantz
|
|
197
|
+
"command_smart_select_memory", # Marantz
|
|
186
198
|
"command_auto_standby",
|
|
187
199
|
"command_sleep",
|
|
188
200
|
"command_center_spread",
|
|
@@ -205,6 +217,14 @@ TelnetCommands = namedtuple(
|
|
|
205
217
|
"command_panel_and_volume_lock",
|
|
206
218
|
"command_graphic_eq",
|
|
207
219
|
"command_headphone_eq",
|
|
220
|
+
"command_denon_hdmi_cec_on",
|
|
221
|
+
"command_denon_hdmi_cec_off",
|
|
222
|
+
"command_marantz_hdmi_cec_on",
|
|
223
|
+
"command_marantz_hdmi_cec_off",
|
|
224
|
+
"command_mdax", # Marantz Only
|
|
225
|
+
"command_dac_filter", # Marantz Only
|
|
226
|
+
"command_illumination", # Marantz Only
|
|
227
|
+
"command_auto_lip_sync", # Marantz Only
|
|
208
228
|
],
|
|
209
229
|
)
|
|
210
230
|
|
|
@@ -364,9 +384,13 @@ SOUND_MODE_MAPPING = {
|
|
|
364
384
|
"DOLBY AUDIO - TRUEHD + NEURAL:X",
|
|
365
385
|
"DOLBY AUDIO-DD",
|
|
366
386
|
"DOLBY AUDIO-DD+ +DSUR",
|
|
387
|
+
# Added both variants as we don't know if type is intentional
|
|
388
|
+
"DOLBY AUDIO-DD+ +NERUAL:X",
|
|
367
389
|
"DOLBY AUDIO-DD+ +NEURAL:X",
|
|
368
390
|
"DOLBY AUDIO-DD+",
|
|
391
|
+
"DOLBY AUDIO-DD+",
|
|
369
392
|
"DOLBY AUDIO-DD+DSUR",
|
|
393
|
+
"DOLBY AUDIO-DD+NEURAL:X",
|
|
370
394
|
"DOLBY AUDIO-DSUR",
|
|
371
395
|
"DOLBY AUDIO-TRUEHD",
|
|
372
396
|
"DOLBY AUDIO-TRUEHD+DSUR",
|
|
@@ -391,16 +415,16 @@ SOUND_MODE_MAPPING = {
|
|
|
391
415
|
"MULTI IN + NEURAL:X",
|
|
392
416
|
"NEURAL",
|
|
393
417
|
"STANDARD(DOLBY)",
|
|
394
|
-
"DOLBY AUDIO-DD+NEURAL:X",
|
|
395
|
-
"DOLBY AUDIO-DD+",
|
|
396
|
-
# Added both variants as we don't know if type is intentional
|
|
397
|
-
"DOLBY AUDIO-DD+ +NERUAL:X",
|
|
398
|
-
"DOLBY AUDIO-DD+ +NEURAL:X",
|
|
399
418
|
],
|
|
400
419
|
"DTS SURROUND": [
|
|
401
420
|
"DTS + DOLBY SURROUND",
|
|
402
421
|
"DTS + NEURAL:X",
|
|
403
422
|
"DTS + VIRTUAL:X",
|
|
423
|
+
"DTS HD MSTR",
|
|
424
|
+
"DTS HD",
|
|
425
|
+
"DTS HD+DSUR",
|
|
426
|
+
"DTS HD+NEURAL:X",
|
|
427
|
+
"DTS HD+VIRTUAL:X",
|
|
404
428
|
"DTS NEURAL:X",
|
|
405
429
|
"DTS SURROUND",
|
|
406
430
|
"DTS VIRTUAL:X",
|
|
@@ -411,26 +435,22 @@ SOUND_MODE_MAPPING = {
|
|
|
411
435
|
"DTS-HD",
|
|
412
436
|
"DTS:X MSTR",
|
|
413
437
|
"DTS:X",
|
|
414
|
-
"
|
|
415
|
-
"MULTI CH IN",
|
|
416
|
-
"NEURAL:X",
|
|
417
|
-
"STANDARD(DTS)",
|
|
418
|
-
"VIRTUAL:X",
|
|
419
|
-
"IMAX DTS",
|
|
420
|
-
"IMAX DTS+NEURAL:X",
|
|
421
|
-
"MAX DTS+VIRTUAL:X",
|
|
438
|
+
"DTS:X+VIRTUAL:X",
|
|
422
439
|
"DTS+DSUR",
|
|
423
440
|
"DTS+NEURAL:X",
|
|
424
441
|
"DTS+VIRTUAL:X",
|
|
425
|
-
"DTS HD",
|
|
426
|
-
"DTS HD+DSUR",
|
|
427
|
-
"DTS HD+NEURAL:X",
|
|
428
|
-
"DTS HD+VIRTUAL:X",
|
|
429
|
-
"DTS:X+VIRTUAL:X",
|
|
430
442
|
"IMAX DTS:X",
|
|
431
443
|
"IMAX DTS:X+VIRTUAL:X",
|
|
444
|
+
"IMAX DTS",
|
|
445
|
+
"IMAX DTS+NEURAL:X",
|
|
446
|
+
"M CH IN+DSUR",
|
|
432
447
|
"M CH IN+NEURAL:X",
|
|
433
448
|
"M CH IN+VIRTUAL:X",
|
|
449
|
+
"MAX DTS+VIRTUAL:X",
|
|
450
|
+
"MULTI CH IN",
|
|
451
|
+
"NEURAL:X",
|
|
452
|
+
"STANDARD(DTS)",
|
|
453
|
+
"VIRTUAL:X",
|
|
434
454
|
],
|
|
435
455
|
"AURO3D": ["AURO-3D", "AURO3D"],
|
|
436
456
|
"AURO2DSURR": ["AURO-2D SURROUND", "AURO2DSURR"],
|
|
@@ -541,7 +561,11 @@ COMMAND_DIALOG_ENHANCER = "/goform/formiPhoneAppDirect.xml?PSDEH%20{level}"
|
|
|
541
561
|
COMMAND_HDMI_OUTPUT = "/goform/formiPhoneAppDirect.xml?VSMONI{output}"
|
|
542
562
|
COMMAND_HDMI_AUDIO_DECODE = "/goform/formiPhoneAppDirect.xml?VSAUDIO%20{mode}"
|
|
543
563
|
COMMAND_QUICK_SELECT_MODE = "/goform/formiPhoneAppDirect.xml?MSQUICK{number}"
|
|
544
|
-
COMMAND_QUICK_SELECT_MEMORY = "/goform/formiPhoneAppDirect.xml?MSQUICK{number}"
|
|
564
|
+
COMMAND_QUICK_SELECT_MEMORY = "/goform/formiPhoneAppDirect.xml?MSQUICK{number}%20MEMORY"
|
|
565
|
+
COMMAND_SMART_SELECT_MODE = "/goform/formiPhoneAppDirect.xml?MSSMART{number}" # Marantz
|
|
566
|
+
COMMAND_SMART_SELECT_MEMORY = (
|
|
567
|
+
"/goform/formiPhoneAppDirect.xml?MSSMART{number}%20MEMORY" # Marantz
|
|
568
|
+
)
|
|
545
569
|
COMMAND_AUTO_STANDBY = "/goform/formiPhoneAppDirect.xml?STBY{mode}"
|
|
546
570
|
COMMAND_SLEEP = "/goform/formiPhoneAppDirect.xml?SLP{value}"
|
|
547
571
|
COMMAND_CENTER_SPREAD = "/goform/formiPhoneAppDirect.xml?PSCES%20{mode}"
|
|
@@ -564,6 +588,16 @@ COMMAND_PANEL_LOCK = "/goform/formiPhoneAppDirect.xml?SYPANEL%20LOCK%20{mode}"
|
|
|
564
588
|
COMMAND_PANEL_AND_VOLUME_LOCK = "/goform/formiPhoneAppDirect.xml?SYPANEL+V%20LOCK%20ON"
|
|
565
589
|
COMMAND_GRAPHIC_EQ = "/goform/formiPhoneAppDirect.xml?PSGEQ%20{mode}"
|
|
566
590
|
COMMAND_HEADPHONE_EQ = "/goform/formiPhoneAppDirect.xml?PSHEQ%20{mode}"
|
|
591
|
+
COMMAND_DENON_HDMI_CEC_ON = "/goform/formiPhoneAppDirect.xml?RCKSK0410826"
|
|
592
|
+
COMMAND_DENON_HDMI_CEC_OFF = "/goform/formiPhoneAppDirect.xml?RCKSK0410827"
|
|
593
|
+
COMMAND_MARANTZ_HDMI_CEC_ON = "/goform/formiPhoneAppDirect.xml?RCRC51608408"
|
|
594
|
+
COMMAND_MARANTZ_HDMI_CEC_OFF = "/goform/formiPhoneAppDirect.xml?RCRC51608409"
|
|
595
|
+
COMMAND_MDAX = "/goform/formiPhoneAppDirect.xml?PSMDAX%20{mode}" # Marantz Only
|
|
596
|
+
COMMAND_DAC_FILTER = "/goform/formiPhoneAppDirect.xml?PSDACFIL%20{mode}" # Marantz Only
|
|
597
|
+
COMMAND_ILLUMINATION = "/goform/formiPhoneAppDirect.xml?ILB%20{mode}" # Marantz Only
|
|
598
|
+
COMMAND_AUTO_LIP_SYNC = (
|
|
599
|
+
"/goform/formiPhoneAppDirect.xml?SSHOSALS%20{mode}" # Marantz Only
|
|
600
|
+
)
|
|
567
601
|
|
|
568
602
|
# Zone 2 URLs
|
|
569
603
|
STATUS_Z2_URL = "/goform/formZone2_Zone2XmlStatus.xml"
|
|
@@ -658,6 +692,8 @@ DENONAVR_URLS = ReceiverURLs(
|
|
|
658
692
|
command_hdmi_audio_decode=COMMAND_HDMI_AUDIO_DECODE,
|
|
659
693
|
command_quick_select_mode=COMMAND_QUICK_SELECT_MODE,
|
|
660
694
|
command_quick_select_memory=COMMAND_QUICK_SELECT_MODE,
|
|
695
|
+
command_smart_select_mode=COMMAND_SMART_SELECT_MODE, # Marantz
|
|
696
|
+
command_smart_select_memory=COMMAND_SMART_SELECT_MEMORY, # Marantz
|
|
661
697
|
command_auto_standby=COMMAND_AUTO_STANDBY,
|
|
662
698
|
command_sleep=COMMAND_SLEEP,
|
|
663
699
|
command_center_spread=COMMAND_CENTER_SPREAD,
|
|
@@ -680,6 +716,14 @@ DENONAVR_URLS = ReceiverURLs(
|
|
|
680
716
|
command_panel_and_volume_lock=COMMAND_PANEL_AND_VOLUME_LOCK,
|
|
681
717
|
command_graphic_eq=COMMAND_GRAPHIC_EQ,
|
|
682
718
|
command_headphone_eq=COMMAND_HEADPHONE_EQ,
|
|
719
|
+
command_denon_hdmi_cec_on=COMMAND_DENON_HDMI_CEC_ON,
|
|
720
|
+
command_denon_hdmi_cec_off=COMMAND_DENON_HDMI_CEC_OFF,
|
|
721
|
+
command_marantz_hdmi_cec_on=COMMAND_MARANTZ_HDMI_CEC_ON,
|
|
722
|
+
command_marantz_hdmi_cec_off=COMMAND_MARANTZ_HDMI_CEC_OFF,
|
|
723
|
+
command_mdax=COMMAND_MDAX, # Marantz Only
|
|
724
|
+
command_dac_filter=COMMAND_DAC_FILTER, # Marantz Only
|
|
725
|
+
command_illumination=COMMAND_ILLUMINATION, # Marantz Only
|
|
726
|
+
command_auto_lip_sync=COMMAND_AUTO_LIP_SYNC, # Marantz Only
|
|
683
727
|
)
|
|
684
728
|
|
|
685
729
|
ZONE2_URLS = ReceiverURLs(
|
|
@@ -751,6 +795,8 @@ ZONE2_URLS = ReceiverURLs(
|
|
|
751
795
|
command_hdmi_audio_decode=COMMAND_HDMI_AUDIO_DECODE,
|
|
752
796
|
command_quick_select_mode=COMMAND_QUICK_SELECT_MODE,
|
|
753
797
|
command_quick_select_memory=COMMAND_QUICK_SELECT_MEMORY,
|
|
798
|
+
command_smart_select_mode=COMMAND_SMART_SELECT_MODE, # Marantz
|
|
799
|
+
command_smart_select_memory=COMMAND_SMART_SELECT_MEMORY, # Marantz
|
|
754
800
|
command_auto_standby=COMMAND_AUTO_STANDBY,
|
|
755
801
|
command_sleep=COMMAND_SLEEP,
|
|
756
802
|
command_center_spread=COMMAND_CENTER_SPREAD,
|
|
@@ -773,6 +819,14 @@ ZONE2_URLS = ReceiverURLs(
|
|
|
773
819
|
command_panel_and_volume_lock=COMMAND_PANEL_AND_VOLUME_LOCK,
|
|
774
820
|
command_graphic_eq=COMMAND_GRAPHIC_EQ,
|
|
775
821
|
command_headphone_eq=COMMAND_HEADPHONE_EQ,
|
|
822
|
+
command_denon_hdmi_cec_on=COMMAND_DENON_HDMI_CEC_ON,
|
|
823
|
+
command_denon_hdmi_cec_off=COMMAND_DENON_HDMI_CEC_OFF,
|
|
824
|
+
command_marantz_hdmi_cec_on=COMMAND_MARANTZ_HDMI_CEC_ON,
|
|
825
|
+
command_marantz_hdmi_cec_off=COMMAND_MARANTZ_HDMI_CEC_OFF,
|
|
826
|
+
command_mdax=COMMAND_MDAX, # Marantz Only
|
|
827
|
+
command_dac_filter=COMMAND_DAC_FILTER, # Marantz Only
|
|
828
|
+
command_illumination=COMMAND_ILLUMINATION, # Marantz Only
|
|
829
|
+
command_auto_lip_sync=COMMAND_AUTO_LIP_SYNC, # Marantz Only
|
|
776
830
|
)
|
|
777
831
|
|
|
778
832
|
ZONE3_URLS = ReceiverURLs(
|
|
@@ -844,6 +898,8 @@ ZONE3_URLS = ReceiverURLs(
|
|
|
844
898
|
command_hdmi_audio_decode=COMMAND_HDMI_AUDIO_DECODE,
|
|
845
899
|
command_quick_select_mode=COMMAND_QUICK_SELECT_MODE,
|
|
846
900
|
command_quick_select_memory=COMMAND_QUICK_SELECT_MEMORY,
|
|
901
|
+
command_smart_select_mode=COMMAND_SMART_SELECT_MODE, # Marantz
|
|
902
|
+
command_smart_select_memory=COMMAND_SMART_SELECT_MEMORY, # Marantz
|
|
847
903
|
command_auto_standby=COMMAND_AUTO_STANDBY,
|
|
848
904
|
command_sleep=COMMAND_SLEEP,
|
|
849
905
|
command_center_spread=COMMAND_CENTER_SPREAD,
|
|
@@ -866,6 +922,14 @@ ZONE3_URLS = ReceiverURLs(
|
|
|
866
922
|
command_panel_and_volume_lock=COMMAND_PANEL_AND_VOLUME_LOCK,
|
|
867
923
|
command_graphic_eq=COMMAND_GRAPHIC_EQ,
|
|
868
924
|
command_headphone_eq=COMMAND_HEADPHONE_EQ,
|
|
925
|
+
command_denon_hdmi_cec_on=COMMAND_DENON_HDMI_CEC_ON,
|
|
926
|
+
command_denon_hdmi_cec_off=COMMAND_DENON_HDMI_CEC_OFF,
|
|
927
|
+
command_marantz_hdmi_cec_on=COMMAND_MARANTZ_HDMI_CEC_ON,
|
|
928
|
+
command_marantz_hdmi_cec_off=COMMAND_MARANTZ_HDMI_CEC_OFF,
|
|
929
|
+
command_mdax=COMMAND_MDAX, # Marantz Only
|
|
930
|
+
command_dac_filter=COMMAND_DAC_FILTER, # Marantz Only
|
|
931
|
+
command_illumination=COMMAND_ILLUMINATION, # Marantz Only
|
|
932
|
+
command_auto_lip_sync=COMMAND_AUTO_LIP_SYNC, # Marantz Only
|
|
869
933
|
)
|
|
870
934
|
|
|
871
935
|
# Telnet Events
|
|
@@ -877,6 +941,7 @@ TELNET_EVENTS = {
|
|
|
877
941
|
"DIM",
|
|
878
942
|
"ECO",
|
|
879
943
|
"HD",
|
|
944
|
+
"ILB", # Marantz Only
|
|
880
945
|
"MN",
|
|
881
946
|
"MS",
|
|
882
947
|
"MU",
|
|
@@ -992,6 +1057,8 @@ DENONAVR_TELNET_COMMANDS = TelnetCommands(
|
|
|
992
1057
|
command_hdmi_audio_decode="VSAUDIO {mode}",
|
|
993
1058
|
command_quick_select_mode="MSQUICK{number}",
|
|
994
1059
|
command_quick_select_memory="MSQUICK{number} MEMORY",
|
|
1060
|
+
command_smart_select_mode="MSSMART{number}", # Marantz
|
|
1061
|
+
command_smart_select_memory="MSSMART{number} MEMORY", # Marantz
|
|
995
1062
|
command_auto_standby="STBY{mode}",
|
|
996
1063
|
command_sleep="SLP{value}",
|
|
997
1064
|
command_center_spread="PSCES {mode}",
|
|
@@ -1014,6 +1081,14 @@ DENONAVR_TELNET_COMMANDS = TelnetCommands(
|
|
|
1014
1081
|
command_panel_and_volume_lock="SYPANEL+V LOCK ON",
|
|
1015
1082
|
command_graphic_eq="PSGEQ {mode}",
|
|
1016
1083
|
command_headphone_eq="PSHEQ {mode}",
|
|
1084
|
+
command_denon_hdmi_cec_on="RCKSK0410826",
|
|
1085
|
+
command_denon_hdmi_cec_off="RCKSK0410827",
|
|
1086
|
+
command_marantz_hdmi_cec_on="RCRC51608408",
|
|
1087
|
+
command_marantz_hdmi_cec_off="RCRC51608409",
|
|
1088
|
+
command_mdax="PSMDAX {mode}", # Marantz Only
|
|
1089
|
+
command_dac_filter="PSDACFIL {mode}", # Marantz Only
|
|
1090
|
+
command_illumination="ILB {mode}", # Marantz Only
|
|
1091
|
+
command_auto_lip_sync="SSHOSALS {mode}", # Marantz Only
|
|
1017
1092
|
)
|
|
1018
1093
|
|
|
1019
1094
|
ZONE2_TELNET_COMMANDS = TelnetCommands(
|
|
@@ -1083,6 +1158,8 @@ ZONE2_TELNET_COMMANDS = TelnetCommands(
|
|
|
1083
1158
|
command_hdmi_audio_decode="VSAUDIO {mode}",
|
|
1084
1159
|
command_quick_select_mode="MSQUICK{number}",
|
|
1085
1160
|
command_quick_select_memory="MSQUICK{number} MEMORY",
|
|
1161
|
+
command_smart_select_mode="MSSMART{number}", # Marantz
|
|
1162
|
+
command_smart_select_memory="MSSMART{number} MEMORY", # Marantz
|
|
1086
1163
|
command_auto_standby="STBY{mode}",
|
|
1087
1164
|
command_sleep="SLP{value}",
|
|
1088
1165
|
command_center_spread="PSCES {mode}",
|
|
@@ -1105,6 +1182,14 @@ ZONE2_TELNET_COMMANDS = TelnetCommands(
|
|
|
1105
1182
|
command_panel_and_volume_lock="SYPANEL+V LOCK ON",
|
|
1106
1183
|
command_graphic_eq="PSGEQ {mode}",
|
|
1107
1184
|
command_headphone_eq="PSHEQ {mode}",
|
|
1185
|
+
command_denon_hdmi_cec_on="RCKSK0410826",
|
|
1186
|
+
command_denon_hdmi_cec_off="RCKSK0410827",
|
|
1187
|
+
command_marantz_hdmi_cec_on="RCRC51608408",
|
|
1188
|
+
command_marantz_hdmi_cec_off="RCRC51608409",
|
|
1189
|
+
command_mdax="PSMDAX {mode}", # Marantz Only
|
|
1190
|
+
command_dac_filter="PSDACFIL {mode}", # Marantz Only
|
|
1191
|
+
command_illumination="ILB {mode}", # Marantz Only
|
|
1192
|
+
command_auto_lip_sync="SSHOSALS {mode}", # Marantz Only
|
|
1108
1193
|
)
|
|
1109
1194
|
|
|
1110
1195
|
ZONE3_TELNET_COMMANDS = TelnetCommands(
|
|
@@ -1174,6 +1259,8 @@ ZONE3_TELNET_COMMANDS = TelnetCommands(
|
|
|
1174
1259
|
command_hdmi_audio_decode="VSAUDIO {mode}",
|
|
1175
1260
|
command_quick_select_mode="MSQUICK{number}",
|
|
1176
1261
|
command_quick_select_memory="MSQUICK{number} MEMORY",
|
|
1262
|
+
command_smart_select_mode="MSSMART{number}", # Marantz
|
|
1263
|
+
command_smart_select_memory="MSSMART{number} MEMORY", # Marantz
|
|
1177
1264
|
command_auto_standby="STBY{mode}",
|
|
1178
1265
|
command_sleep="SLP{value}",
|
|
1179
1266
|
command_center_spread="PSCES {mode}",
|
|
@@ -1196,6 +1283,14 @@ ZONE3_TELNET_COMMANDS = TelnetCommands(
|
|
|
1196
1283
|
command_panel_and_volume_lock="SYPANEL+V LOCK ON",
|
|
1197
1284
|
command_graphic_eq="PSGEQ {mode}",
|
|
1198
1285
|
command_headphone_eq="PSHEQ {mode}",
|
|
1286
|
+
command_denon_hdmi_cec_on="RCKSK0410826",
|
|
1287
|
+
command_denon_hdmi_cec_off="RCKSK0410827",
|
|
1288
|
+
command_marantz_hdmi_cec_on="RCRC51608408",
|
|
1289
|
+
command_marantz_hdmi_cec_off="RCRC51608409",
|
|
1290
|
+
command_mdax="PSMDAX {mode}", # Marantz Only
|
|
1291
|
+
command_dac_filter="PSDACFIL {mode}", # Marantz Only
|
|
1292
|
+
command_illumination="ILB {mode}", # Marantz Only
|
|
1293
|
+
command_auto_lip_sync="SSHOSALS {mode}", # Marantz Only
|
|
1199
1294
|
)
|
|
1200
1295
|
|
|
1201
1296
|
# States
|
|
@@ -1604,3 +1699,37 @@ VIDEO_PROCESSING_MODES_MAP = {
|
|
|
1604
1699
|
VIDEO_PROCESSING_MODES_MAP_LABELS = {
|
|
1605
1700
|
value: key for key, value in VIDEO_PROCESSING_MODES_MAP.items()
|
|
1606
1701
|
}
|
|
1702
|
+
|
|
1703
|
+
MDAXs = Literal["Off", "Low", "Medium", "High"]
|
|
1704
|
+
"""M-DAX Modes."""
|
|
1705
|
+
|
|
1706
|
+
MDAX_MAP = {
|
|
1707
|
+
"Off": "OFF",
|
|
1708
|
+
"Low": "LOW",
|
|
1709
|
+
"Medium": "MED",
|
|
1710
|
+
"High": "HI",
|
|
1711
|
+
}
|
|
1712
|
+
MDAX_MAP_LABELS = {value: key for key, value in MDAX_MAP.items()}
|
|
1713
|
+
|
|
1714
|
+
DACFilters = Literal["Mode 1", "Mode 2"]
|
|
1715
|
+
"""DAC Filter Modes."""
|
|
1716
|
+
|
|
1717
|
+
DAC_FILTERS_MAP = {
|
|
1718
|
+
"Mode 1": "MODE1",
|
|
1719
|
+
"Mode 2": "MODE2",
|
|
1720
|
+
}
|
|
1721
|
+
|
|
1722
|
+
DAC_FILTERS_MAP_LABELS = {value: key for key, value in DAC_FILTERS_MAP.items()}
|
|
1723
|
+
|
|
1724
|
+
Illuminations = Literal["Auto", "Bright", "Dim", "Dark", "Off"]
|
|
1725
|
+
"""Illumination Modes."""
|
|
1726
|
+
|
|
1727
|
+
ILLUMINATION_MAP = {
|
|
1728
|
+
"Auto": "AUTO",
|
|
1729
|
+
"Bright": "BRI",
|
|
1730
|
+
"Dim": "DIM",
|
|
1731
|
+
"Dark": "DAR",
|
|
1732
|
+
"Off": "OFF",
|
|
1733
|
+
}
|
|
1734
|
+
|
|
1735
|
+
ILLUMINATION_MAP_LABELS = {value: key for key, value in ILLUMINATION_MAP.items()}
|
denonavr/denonavr.py
CHANGED
|
@@ -10,7 +10,7 @@ This module implements the interface to Denon AVR receivers.
|
|
|
10
10
|
import asyncio
|
|
11
11
|
import logging
|
|
12
12
|
import time
|
|
13
|
-
from typing import
|
|
13
|
+
from typing import Callable, Dict, List, Literal, Optional, Union
|
|
14
14
|
|
|
15
15
|
import attr
|
|
16
16
|
import httpx
|
|
@@ -27,6 +27,7 @@ from .const import (
|
|
|
27
27
|
EcoModes,
|
|
28
28
|
HDMIAudioDecodes,
|
|
29
29
|
HDMIOutputs,
|
|
30
|
+
Illuminations,
|
|
30
31
|
PanelLocks,
|
|
31
32
|
RoomSizes,
|
|
32
33
|
TransducerLPFs,
|
|
@@ -232,14 +233,12 @@ class DenonAVR(DenonAVRFoundation):
|
|
|
232
233
|
"""Send telnet commands to the receiver."""
|
|
233
234
|
self._device.telnet_api.send_commands(*commands)
|
|
234
235
|
|
|
235
|
-
def register_callback(
|
|
236
|
-
self, event: str, callback: Callable[[str, str, str], Awaitable[None]]
|
|
237
|
-
):
|
|
236
|
+
def register_callback(self, event: str, callback: Callable[[str, str, str], None]):
|
|
238
237
|
"""Register a callback for telnet events."""
|
|
239
238
|
self._device.telnet_api.register_callback(event, callback=callback)
|
|
240
239
|
|
|
241
240
|
def unregister_callback(
|
|
242
|
-
self, event: str, callback: Callable[[str, str, str],
|
|
241
|
+
self, event: str, callback: Callable[[str, str, str], None]
|
|
243
242
|
):
|
|
244
243
|
"""Unregister a callback for telnet events."""
|
|
245
244
|
self._device.telnet_api.unregister_callback(event, callback=callback)
|
|
@@ -738,6 +737,26 @@ class DenonAVR(DenonAVRFoundation):
|
|
|
738
737
|
"""
|
|
739
738
|
return self._device.headphone_eq
|
|
740
739
|
|
|
740
|
+
@property
|
|
741
|
+
def illumination(self) -> Optional[str]:
|
|
742
|
+
"""
|
|
743
|
+
Return the illumination status for the device.
|
|
744
|
+
|
|
745
|
+
Only available on Marantz devices and when using Telnet.
|
|
746
|
+
|
|
747
|
+
Possible values are: "Auto", "Bright", "Dim", "Dark", "Off"
|
|
748
|
+
"""
|
|
749
|
+
return self.illumination
|
|
750
|
+
|
|
751
|
+
@property
|
|
752
|
+
def auto_lip_sync(self) -> Optional[bool]:
|
|
753
|
+
"""
|
|
754
|
+
Return the auto lip sync status for the device.
|
|
755
|
+
|
|
756
|
+
Only available on Marantz devices and when using Telnet.
|
|
757
|
+
"""
|
|
758
|
+
return self.auto_lip_sync
|
|
759
|
+
|
|
741
760
|
##########
|
|
742
761
|
# Getter #
|
|
743
762
|
##########
|
|
@@ -1210,3 +1229,43 @@ class DenonAVR(DenonAVRFoundation):
|
|
|
1210
1229
|
:param quick_select_number: Quick select number to set. Valid values are 1-5.
|
|
1211
1230
|
"""
|
|
1212
1231
|
await self._device.async_quick_select_memory(quick_select_number)
|
|
1232
|
+
|
|
1233
|
+
async def async_hdmi_cec_on(self) -> None:
|
|
1234
|
+
"""Turn on HDMI CEC on receiver via HTTP get command."""
|
|
1235
|
+
await self._device.async_hdmi_cec_on()
|
|
1236
|
+
|
|
1237
|
+
async def async_hdmi_cec_off(self) -> None:
|
|
1238
|
+
"""Turn off HDMI CEC on receiver via HTTP get command."""
|
|
1239
|
+
await self._device.async_hdmi_cec_off()
|
|
1240
|
+
|
|
1241
|
+
async def async_illumination(self, mode: Illuminations):
|
|
1242
|
+
"""
|
|
1243
|
+
Set illumination mode on receiver via HTTP get command.
|
|
1244
|
+
|
|
1245
|
+
Only available for Marantz devices.
|
|
1246
|
+
"""
|
|
1247
|
+
await self._device.async_illumination(mode)
|
|
1248
|
+
|
|
1249
|
+
async def async_auto_lip_sync_on(self) -> None:
|
|
1250
|
+
"""
|
|
1251
|
+
Turn on auto lip sync on receiver via HTTP get command.
|
|
1252
|
+
|
|
1253
|
+
Only available on Marantz devices.
|
|
1254
|
+
"""
|
|
1255
|
+
await self._device.async_auto_lip_sync_on()
|
|
1256
|
+
|
|
1257
|
+
async def async_auto_lip_sync_off(self) -> None:
|
|
1258
|
+
"""
|
|
1259
|
+
Turn off auto lip sync on receiver via HTTP get command.
|
|
1260
|
+
|
|
1261
|
+
Only available on Marantz devices.
|
|
1262
|
+
"""
|
|
1263
|
+
await self._device.async_auto_lip_sync_off()
|
|
1264
|
+
|
|
1265
|
+
async def async_auto_lip_sync_toggle(self) -> None:
|
|
1266
|
+
"""
|
|
1267
|
+
Toggle auto lip sync on receiver via HTTP get command.
|
|
1268
|
+
|
|
1269
|
+
Only available on Marantz devices and when using Telnet.
|
|
1270
|
+
"""
|
|
1271
|
+
await self._device.async_auto_lip_sync_toggle()
|
denonavr/dirac.py
CHANGED
|
@@ -8,7 +8,7 @@ This module implements the Audyssey settings of Denon AVR receivers.
|
|
|
8
8
|
"""
|
|
9
9
|
|
|
10
10
|
import logging
|
|
11
|
-
from typing import Optional
|
|
11
|
+
from typing import Optional, get_args
|
|
12
12
|
|
|
13
13
|
import attr
|
|
14
14
|
|
|
@@ -31,17 +31,14 @@ class DenonAVRDirac(DenonAVRFoundation):
|
|
|
31
31
|
_dirac_filter: Optional[str] = attr.ib(
|
|
32
32
|
converter=attr.converters.optional(str), default=None
|
|
33
33
|
)
|
|
34
|
+
_dirac_filters = get_args(DiracFilters)
|
|
34
35
|
|
|
35
36
|
def setup(self) -> None:
|
|
36
37
|
"""Ensure that the instance is initialized."""
|
|
37
|
-
self._device.telnet_api.register_callback(
|
|
38
|
-
"PS", self._async_dirac_filter_callback
|
|
39
|
-
)
|
|
38
|
+
self._device.telnet_api.register_callback("PS", self._dirac_filter_callback)
|
|
40
39
|
self._is_setup = True
|
|
41
40
|
|
|
42
|
-
|
|
43
|
-
self, zone: str, event: str, parameter: str
|
|
44
|
-
) -> None:
|
|
41
|
+
def _dirac_filter_callback(self, zone: str, event: str, parameter: str) -> None:
|
|
45
42
|
"""Handle Dirac filter change event."""
|
|
46
43
|
if event == "PS" and parameter[0:5] == "DIRAC":
|
|
47
44
|
self._dirac_filter = DIRAC_FILTER_MAP_LABELS[parameter[6:]]
|
|
@@ -66,7 +63,7 @@ class DenonAVRDirac(DenonAVRFoundation):
|
|
|
66
63
|
##########
|
|
67
64
|
async def async_dirac_filter(self, dirac_filter: DiracFilters) -> None:
|
|
68
65
|
"""Set Dirac filter."""
|
|
69
|
-
if dirac_filter not in
|
|
66
|
+
if dirac_filter not in self._dirac_filters:
|
|
70
67
|
raise AvrCommandError("Invalid Dirac filter")
|
|
71
68
|
|
|
72
69
|
mapped_filter = DIRAC_FILTER_MAP[dirac_filter]
|