denonavr 1.2.0__tar.gz → 1.3.0__tar.gz
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-1.2.0 → denonavr-1.3.0}/PKG-INFO +1 -1
- {denonavr-1.2.0 → denonavr-1.3.0}/denonavr/__init__.py +1 -1
- {denonavr-1.2.0 → denonavr-1.3.0}/denonavr/api.py +7 -5
- {denonavr-1.2.0 → denonavr-1.3.0}/denonavr/appcommand.py +48 -12
- {denonavr-1.2.0 → denonavr-1.3.0}/denonavr/audyssey.py +26 -23
- {denonavr-1.2.0 → denonavr-1.3.0}/denonavr/const.py +426 -141
- {denonavr-1.2.0 → denonavr-1.3.0}/denonavr/decorators.py +2 -3
- {denonavr-1.2.0 → denonavr-1.3.0}/denonavr/denonavr.py +140 -101
- {denonavr-1.2.0 → denonavr-1.3.0}/denonavr/dirac.py +5 -5
- {denonavr-1.2.0 → denonavr-1.3.0}/denonavr/foundation.py +382 -294
- {denonavr-1.2.0 → denonavr-1.3.0}/denonavr/input.py +55 -24
- {denonavr-1.2.0 → denonavr-1.3.0}/denonavr/soundmode.py +46 -32
- {denonavr-1.2.0 → denonavr-1.3.0}/denonavr/volume.py +33 -36
- {denonavr-1.2.0 → denonavr-1.3.0}/denonavr.egg-info/PKG-INFO +1 -1
- {denonavr-1.2.0 → denonavr-1.3.0}/denonavr.egg-info/SOURCES.txt +12 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/pyproject.toml +1 -1
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/test_const.py +10 -10
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/test_denonavr.py +1 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AV7703-AppCommand-update-8080.xml +25 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVC-8500H-AppCommand-update-8080.xml +25 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVC-A10H-AppCommand-update-8080.xml +25 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVC-X3700H-AppCommand-update-8080.xml +25 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1713-AppCommand-update.xml +10 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3313-AppCommand-update.xml +20 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X1100W-AppCommand-update.xml +16 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4000-AppCommand-update.xml +25 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4100W-AppCommand-update.xml +25 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4300H-AppCommand-update-8080.xml +25 -0
- denonavr-1.3.0/tests/xml/DRA-N4-AppCommand-setup.xml +6 -0
- denonavr-1.3.0/tests/xml/DRA-N4-AppCommand-update-tonecontrol.xml +15 -0
- denonavr-1.3.0/tests/xml/DRA-N4-AppCommand-update.xml +159 -0
- denonavr-1.3.0/tests/xml/DRA-N4-Deviceinfo.xml +631 -0
- denonavr-1.3.0/tests/xml/DRA-N4-formMainZone_MainZoneXml.xml +14 -0
- denonavr-1.3.0/tests/xml/DRA-N4-formMainZone_MainZoneXmlStatus.xml +9 -0
- denonavr-1.3.0/tests/xml/DRA-N4-formNetAudio_StatusXml.xml +56 -0
- denonavr-1.3.0/tests/xml/DRA-N4-formTuner_HdXml.xml +80 -0
- denonavr-1.3.0/tests/xml/DRA-N4-formTuner_TunerXml.xml +71 -0
- denonavr-1.3.0/tests/xml/DRA-N4-formZone2_Zone2XmlStatus.xml +48 -0
- denonavr-1.3.0/tests/xml/DRA-N4-formZone3_Zone3XmlStatus.xml +48 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-2-AppCommand-update.xml +3 -0
- denonavr-1.3.0/tests/xml/M-CR510-AppCommand-update-soundmode.xml +6 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-AppCommand-update.xml +4 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-RC610-AppCommand-update.xml +12 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1609-AppCommand-update-8080.xml +16 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6011-AppCommand-update.xml +16 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6012-AppCommand-update-8080.xml +16 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/LICENSE +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/README.md +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/denonavr/exceptions.py +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/denonavr/ssdp.py +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/denonavr/tonecontrol.py +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/denonavr.egg-info/dependency_links.txt +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/denonavr.egg-info/not-zip-safe +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/denonavr.egg-info/requires.txt +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/denonavr.egg-info/top_level.txt +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/setup.cfg +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/__init__.py +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/test_ssdp.py +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AV7703-AppCommand-setup-8080.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AV7703-AppCommand-update-soundmode-8080.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AV7703-AppCommand-update-tonecontrol-8080.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AV7703-Deviceinfo-8080.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVC-8500H-AppCommand-setup-8080.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVC-8500H-AppCommand-update-soundmode-8080.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVC-8500H-AppCommand-update-tonecontrol-8080.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVC-8500H-Deviceinfo-8080.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVC-A10H-AppCommand-setup-8080.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVC-A10H-AppCommand-update-soundmode-8080.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVC-A10H-AppCommand-update-tonecontrol-8080.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVC-A10H-Deviceinfo-8080.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVC-X3700H-AppCommand-setup-8080.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVC-X3700H-AppCommand-update-soundmode-8080.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVC-X3700H-AppCommand-update-tonecontrol-8080.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVC-X3700H-Deviceinfo-8080.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1713-AppCommand-setup.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1713-AppCommand-update-soundmode.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1713-AppCommand-update-tonecontrol.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1713-Deviceinfo.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1713-formMainZone_MainZoneXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1713-formMainZone_MainZoneXmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1713-formNetAudio_StatusXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1713-formTuner_HdXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1713-formTuner_TunerXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1713-formZone2_Zone2XmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1713-formZone3_Zone3XmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1912-AppCommand-setup.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1912-AppCommand-update-soundmode.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1912-AppCommand-update-tonecontrol.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1912-AppCommand-update.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1912-Deviceinfo.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1912-formMainZone_MainZoneXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1912-formMainZone_MainZoneXmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1912-formNetAudio_StatusXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-2312CI-AppCommand-setup.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-2312CI-AppCommand-update-soundmode.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-2312CI-AppCommand-update-tonecontrol.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-2312CI-AppCommand-update.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-2312CI-Deviceinfo.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-2312CI-formMainZone_MainZoneXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-2312CI-formMainZone_MainZoneXmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-2312CI-formNetAudio_StatusXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3311CI-AppCommand-setup.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3311CI-AppCommand-update-soundmode.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3311CI-AppCommand-update-tonecontrol.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3311CI-AppCommand-update.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3311CI-Deviceinfo.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3311CI-formMainZone_MainZoneXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3311CI-formMainZone_MainZoneXmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3311CI-formNetAudio_StatusXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3312-AppCommand-setup.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3312-AppCommand-update-soundmode.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3312-AppCommand-update-tonecontrol.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3312-AppCommand-update.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3312-Deviceinfo.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3312-formMainZone_MainZoneXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3312-formMainZone_MainZoneXmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3312-formNetAudio_StatusXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3312-formTuner_HdXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3312-formTuner_TunerXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3312-formZone2_Zone2XmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3312-formZone3_Zone3XmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3313-AppCommand-setup.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3313-AppCommand-update-soundmode.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3313-AppCommand-update-tonecontrol.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3313-Deviceinfo.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3313-formMainZone_MainZoneXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3313-formMainZone_MainZoneXmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3313-formNetAudio_StatusXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3313-formTuner_HdXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3313-formTuner_TunerXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3313-formZone2_Zone2XmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3313-formZone3_Zone3XmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-4810-AppCommand-setup.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-4810-AppCommand-update-soundmode.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-4810-AppCommand-update-tonecontrol.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-4810-AppCommand-update.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-4810-Deviceinfo.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-4810-formMainZone_MainZoneXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-4810-formMainZone_MainZoneXmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-4810-formNetAudio_StatusXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-4810-formTuner_HdXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-4810-formTuner_TunerXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-4810-formZone2_Zone2XmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-4810-formZone3_Zone3XmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X1100W-AppCommand-setup.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X1100W-AppCommand-update-soundmode.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X1100W-AppCommand-update-tonecontrol.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X1100W-Deviceinfo.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X1100W-formMainZone_MainZoneXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X1100W-formMainZone_MainZoneXmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X1100W-formNetAudio_StatusXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X1100W-formTuner_HdXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X1100W-formTuner_TunerXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X1100W-formZone2_Zone2XmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X1100W-formZone3_Zone3XmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X1600H_upnp.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-2-AppCommand-setup.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-2-AppCommand-update-soundmode.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-2-AppCommand-update-tonecontrol.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-2-AppCommand-update.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-2-Deviceinfo.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-2-formMainZone_MainZoneXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-2-formMainZone_MainZoneXmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-2-formNetAudio_StatusXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-AppCommand-setup.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-AppCommand-update-soundmode.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-AppCommand-update-tonecontrol.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-AppCommand-update.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-Deviceinfo.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-formMainZone_MainZoneXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-formMainZone_MainZoneXmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-formNetAudio_StatusXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-formTuner_HdXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-formTuner_TunerXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-formZone2_Zone2XmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-formZone3_Zone3XmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2100W-2-AppCommand-setup.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2100W-2-AppCommand-update-soundmode.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2100W-2-AppCommand-update-tonecontrol.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2100W-2-AppCommand-update.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2100W-2-Deviceinfo.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2100W-2-formMainZone_MainZoneXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2100W-2-formMainZone_MainZoneXmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2100W-2-formNetAudio_StatusXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2100W-AppCommand-setup.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2100W-AppCommand-update-soundmode.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2100W-AppCommand-update-tonecontrol.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2100W-AppCommand-update.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2100W-formMainZone_MainZoneXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2100W-formMainZone_MainZoneXmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2100W-formNetAudio_StatusXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4000-AppCommand-setup.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4000-AppCommand-update-soundmode.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4000-AppCommand-update-tonecontrol.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4000-Deviceinfo.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4000-formMainZone_MainZoneXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4000-formMainZone_MainZoneXmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4000-formNetAudio_StatusXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4000-formTuner_HdXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4000-formTuner_TunerXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4000-formZone2_Zone2XmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4000-formZone3_Zone3XmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4100W-AppCommand-setup.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4100W-AppCommand-update-soundmode.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4100W-AppCommand-update-tonecontrol.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4100W-Deviceinfo.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4100W-formMainZone_MainZoneXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4100W-formMainZone_MainZoneXmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4100W-formNetAudio_StatusXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4300H-AppCommand-setup-8080.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4300H-AppCommand-update-soundmode-8080.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4300H-AppCommand-update-tonecontrol-8080.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4300H-Deviceinfo-8080.xml +0 -0
- /denonavr-1.2.0/tests/xml/M-CR510-2-AppCommand-update-soundmode.xml → /denonavr-1.3.0/tests/xml/DRA-N4-AppCommand-update-soundmode.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-2-AppCommand-setup.xml +0 -0
- /denonavr-1.2.0/tests/xml/M-CR510-AppCommand-update-soundmode.xml → /denonavr-1.3.0/tests/xml/M-CR510-2-AppCommand-update-soundmode.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-2-AppCommand-update-tonecontrol.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-2-Deviceinfo.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-2-formMainZone_MainZoneXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-2-formMainZone_MainZoneXmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-2-formNetAudio_StatusXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-2-formTuner_HdXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-2-formTuner_TunerXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-AppCommand-setup.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-AppCommand-update-tonecontrol.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-Deviceinfo.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-formMainZone_MainZoneXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-formMainZone_MainZoneXmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-formNetAudio_StatusXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-formTuner_HdXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-formTuner_TunerXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR603-AppCommand-setup.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR603-AppCommand-update-soundmode.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR603-AppCommand-update-tonecontrol.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR603-AppCommand-update.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR603-Deviceinfo.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR603-formMainZone_MainZoneXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR603-formMainZone_MainZoneXmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR603-formNetAudio_StatusXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR603-formTuner_HdXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR603-formTuner_TunerXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR603-formZone2_Zone2XmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR603-formZone3_Zone3XmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-RC610-AppCommand-setup.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-RC610-AppCommand-update-soundmode.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-RC610-AppCommand-update-tonecontrol.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-RC610-Deviceinfo.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-RC610-formMainZone_MainZoneXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-RC610-formMainZone_MainZoneXmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-RC610-formNetAudio_StatusXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-RC610-formTuner_TunerXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1604-AppCommand-setup.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1604-AppCommand-update-soundmode.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1604-AppCommand-update-tonecontrol.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1604-AppCommand-update.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1604-Deviceinfo.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1604-formMainZone_MainZoneXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1604-formMainZone_MainZoneXmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1604-formNetAudio_StatusXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1604-formTuner_HdXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1604-formTuner_TunerXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1604-formZone2_Zone2XmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1604-formZone3_Zone3XmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1609-AppCommand-setup-8080.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1609-AppCommand-update-soundmode-8080.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1609-AppCommand-update-tonecontrol-8080.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1609-Deviceinfo-8080.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR5008-AppCommand-setup.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR5008-AppCommand-update-soundmode.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR5008-AppCommand-update-tonecontrol.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR5008-AppCommand-update.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR5008-Deviceinfo.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR5008-formMainZone_MainZoneXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR5008-formMainZone_MainZoneXmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR5008-formNetAudio_StatusXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR5008-formTuner_HdXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR5008-formTuner_TunerXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6011-AppCommand-setup.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6011-AppCommand-update-soundmode.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6011-AppCommand-update-tonecontrol.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6011-Deviceinfo.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6011-formMainZone_MainZoneXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6011-formMainZone_MainZoneXmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6011-formNetAudio_StatusXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6011-formTuner_HdXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6011-formTuner_TunerXml.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6011-formZone2_Zone2XmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6011-formZone3_Zone3XmlStatus.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6012-AppCommand-setup-8080.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6012-AppCommand-update-soundmode-8080.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6012-AppCommand-update-tonecontrol-8080.xml +0 -0
- {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6012-Deviceinfo-8080.xml +0 -0
|
@@ -16,7 +16,7 @@ import xml.etree.ElementTree as ET
|
|
|
16
16
|
from collections import defaultdict
|
|
17
17
|
from collections.abc import Hashable
|
|
18
18
|
from io import BytesIO
|
|
19
|
-
from typing import Callable, DefaultDict, Dict, List, Optional, Set, Tuple
|
|
19
|
+
from typing import Callable, DefaultDict, Dict, List, Optional, Set, Tuple
|
|
20
20
|
|
|
21
21
|
import attr
|
|
22
22
|
import httpx
|
|
@@ -124,7 +124,7 @@ class HTTPXAsyncClient:
|
|
|
124
124
|
data: Optional[Dict] = None,
|
|
125
125
|
cache_id: Hashable = None,
|
|
126
126
|
) -> httpx.Response:
|
|
127
|
-
"""Call
|
|
127
|
+
"""Call POST endpoint of Denon AVR receiver asynchronously."""
|
|
128
128
|
client = self.client_getter()
|
|
129
129
|
try:
|
|
130
130
|
async with client.stream(
|
|
@@ -483,7 +483,7 @@ class DenonAVRTelnetApi:
|
|
|
483
483
|
default=attr.Factory(asyncio.Event)
|
|
484
484
|
)
|
|
485
485
|
_send_confirmation_command: str = attr.ib(converter=str, default="")
|
|
486
|
-
_send_tasks: Set[asyncio.Task] = attr.ib(attr.Factory(set))
|
|
486
|
+
_send_tasks: Set[asyncio.Task] = attr.ib(default=attr.Factory(set))
|
|
487
487
|
_callbacks: Dict[str, List[Callable]] = attr.ib(
|
|
488
488
|
validator=attr.validators.instance_of(dict),
|
|
489
489
|
default=attr.Factory(dict),
|
|
@@ -494,7 +494,7 @@ class DenonAVRTelnetApi:
|
|
|
494
494
|
default=attr.Factory(list),
|
|
495
495
|
init=False,
|
|
496
496
|
)
|
|
497
|
-
_update_callback_tasks: Set[asyncio.Task] = attr.ib(attr.Factory(set))
|
|
497
|
+
_update_callback_tasks: Set[asyncio.Task] = attr.ib(default=attr.Factory(set))
|
|
498
498
|
|
|
499
499
|
def __attrs_post_init__(self) -> None:
|
|
500
500
|
"""Initialize special attributes."""
|
|
@@ -537,7 +537,7 @@ class DenonAVRTelnetApi:
|
|
|
537
537
|
"%s: Connection failed on telnet reconnect: %s", self.host, err
|
|
538
538
|
)
|
|
539
539
|
raise AvrNetworkError(f"OSError: {err}", "telnet connect") from err
|
|
540
|
-
self._protocol =
|
|
540
|
+
self._protocol = transport_protocol[1]
|
|
541
541
|
_LOGGER.debug("%s: telnet connection established", self.host)
|
|
542
542
|
self._connection_enabled = True
|
|
543
543
|
self._last_message_time = time.monotonic()
|
|
@@ -602,6 +602,8 @@ class DenonAVRTelnetApi:
|
|
|
602
602
|
"PSIMAXSWO ?", # Subwoofer Output LFE+Main/LFE
|
|
603
603
|
"PSSWL ?", # Subwoofer Level
|
|
604
604
|
"STBY?", # Auto Standby
|
|
605
|
+
"Z2STBY?", # Auto Standby
|
|
606
|
+
"Z3STBY?", # Auto Standby
|
|
605
607
|
"SLP?", # Sleep
|
|
606
608
|
"VSVPM ?", # Video Process
|
|
607
609
|
"PSLFE ?", # LFE Level
|
|
@@ -30,6 +30,8 @@ class AppCommandResponsePattern:
|
|
|
30
30
|
|
|
31
31
|
update_attribute: str = attr.ib(converter=str)
|
|
32
32
|
add_zone: bool = attr.ib(converter=bool, default=True)
|
|
33
|
+
search_zone_text: bool = attr.ib(converter=bool, default=False)
|
|
34
|
+
prefix: str = attr.ib(converter=str, default="")
|
|
33
35
|
suffix: str = attr.ib(converter=str, default="")
|
|
34
36
|
get_xml_attribute: Optional[str] = attr.ib(
|
|
35
37
|
converter=attr.converters.optional(str), default=None
|
|
@@ -73,7 +75,7 @@ class AppCommands:
|
|
|
73
75
|
"""Collect known AppCommand.xml tags."""
|
|
74
76
|
|
|
75
77
|
GetAllZoneMuteStatus = AppCommandCmd(
|
|
76
|
-
cmd_id=1,
|
|
78
|
+
cmd_id="1",
|
|
77
79
|
cmd_text="GetAllZoneMuteStatus",
|
|
78
80
|
response_pattern=(
|
|
79
81
|
AppCommandResponsePattern(
|
|
@@ -82,7 +84,7 @@ class AppCommands:
|
|
|
82
84
|
),
|
|
83
85
|
)
|
|
84
86
|
GetAllZonePowerStatus = AppCommandCmd(
|
|
85
|
-
cmd_id=1,
|
|
87
|
+
cmd_id="1",
|
|
86
88
|
cmd_text="GetAllZonePowerStatus",
|
|
87
89
|
response_pattern=(
|
|
88
90
|
AppCommandResponsePattern(
|
|
@@ -91,7 +93,7 @@ class AppCommands:
|
|
|
91
93
|
),
|
|
92
94
|
)
|
|
93
95
|
GetAllZoneSource = AppCommandCmd(
|
|
94
|
-
cmd_id=1,
|
|
96
|
+
cmd_id="1",
|
|
95
97
|
cmd_text="GetAllZoneSource",
|
|
96
98
|
response_pattern=(
|
|
97
99
|
AppCommandResponsePattern(
|
|
@@ -100,7 +102,7 @@ class AppCommands:
|
|
|
100
102
|
),
|
|
101
103
|
)
|
|
102
104
|
GetAllZoneVolume = AppCommandCmd(
|
|
103
|
-
cmd_id=1,
|
|
105
|
+
cmd_id="1",
|
|
104
106
|
cmd_text="GetAllZoneVolume",
|
|
105
107
|
response_pattern=(
|
|
106
108
|
AppCommandResponsePattern(
|
|
@@ -109,8 +111,42 @@ class AppCommands:
|
|
|
109
111
|
),
|
|
110
112
|
)
|
|
111
113
|
|
|
114
|
+
GetAutoStandby = AppCommandCmd(
|
|
115
|
+
cmd_id="1",
|
|
116
|
+
cmd_text="GetAutoStandby",
|
|
117
|
+
response_pattern=(
|
|
118
|
+
AppCommandResponsePattern(
|
|
119
|
+
update_attribute="_auto_standby",
|
|
120
|
+
add_zone=False,
|
|
121
|
+
search_zone_text=True,
|
|
122
|
+
prefix="/list/listvalue/",
|
|
123
|
+
suffix="/value",
|
|
124
|
+
),
|
|
125
|
+
),
|
|
126
|
+
)
|
|
127
|
+
|
|
128
|
+
GetDimmer = AppCommandCmd(
|
|
129
|
+
cmd_id="1",
|
|
130
|
+
cmd_text="GetDimmer",
|
|
131
|
+
response_pattern=(
|
|
132
|
+
AppCommandResponsePattern(
|
|
133
|
+
update_attribute="_dimmer", add_zone=False, suffix="/value"
|
|
134
|
+
),
|
|
135
|
+
),
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
GetECO = AppCommandCmd(
|
|
139
|
+
cmd_id="1",
|
|
140
|
+
cmd_text="GetECO",
|
|
141
|
+
response_pattern=(
|
|
142
|
+
AppCommandResponsePattern(
|
|
143
|
+
update_attribute="_eco_mode", add_zone=False, suffix="/mode"
|
|
144
|
+
),
|
|
145
|
+
),
|
|
146
|
+
)
|
|
147
|
+
|
|
112
148
|
GetSurroundModeStatus = AppCommandCmd(
|
|
113
|
-
cmd_id=1,
|
|
149
|
+
cmd_id="1",
|
|
114
150
|
cmd_text="GetSurroundModeStatus",
|
|
115
151
|
response_pattern=(
|
|
116
152
|
AppCommandResponsePattern(
|
|
@@ -120,7 +156,7 @@ class AppCommands:
|
|
|
120
156
|
)
|
|
121
157
|
|
|
122
158
|
GetToneControl = AppCommandCmd(
|
|
123
|
-
cmd_id=1,
|
|
159
|
+
cmd_id="1",
|
|
124
160
|
cmd_text="GetToneControl",
|
|
125
161
|
response_pattern=(
|
|
126
162
|
AppCommandResponsePattern(
|
|
@@ -149,7 +185,7 @@ class AppCommands:
|
|
|
149
185
|
)
|
|
150
186
|
# Replace set command with a real command using attr.evolve
|
|
151
187
|
SetToneControl = AppCommandCmd(
|
|
152
|
-
cmd_id=1,
|
|
188
|
+
cmd_id="1",
|
|
153
189
|
cmd_text="SetToneControl",
|
|
154
190
|
set_command=AppCommandCmdParam(name="REPLACE", text="REPLACE"),
|
|
155
191
|
)
|
|
@@ -160,7 +196,7 @@ class AppCommands:
|
|
|
160
196
|
GetFriendlyName = AppCommandCmd(cmd_id=1, cmd_text="GetFriendlyName")
|
|
161
197
|
|
|
162
198
|
GetAudyssey = AppCommandCmd(
|
|
163
|
-
cmd_id=3,
|
|
199
|
+
cmd_id="3",
|
|
164
200
|
name="GetAudyssey",
|
|
165
201
|
param_list=(
|
|
166
202
|
AppCommandCmdParam(name="dynamiceq"),
|
|
@@ -216,22 +252,22 @@ class AppCommands:
|
|
|
216
252
|
),
|
|
217
253
|
)
|
|
218
254
|
SetAudysseyDynamicEQ = AppCommandCmd(
|
|
219
|
-
cmd_id=3,
|
|
255
|
+
cmd_id="3",
|
|
220
256
|
name="SetAudyssey",
|
|
221
257
|
param_list=(AppCommandCmdParam(name="dynamiceq", text="REPLACE"),),
|
|
222
258
|
)
|
|
223
259
|
SetAudysseyMultiEQ = AppCommandCmd(
|
|
224
|
-
cmd_id=3,
|
|
260
|
+
cmd_id="3",
|
|
225
261
|
name="SetAudyssey",
|
|
226
262
|
param_list=(AppCommandCmdParam(name="multieq", text="REPLACE"),),
|
|
227
263
|
)
|
|
228
264
|
SetAudysseyReflevoffset = AppCommandCmd(
|
|
229
|
-
cmd_id=3,
|
|
265
|
+
cmd_id="3",
|
|
230
266
|
name="SetAudyssey",
|
|
231
267
|
param_list=(AppCommandCmdParam(name="reflevoffset", text="REPLACE"),),
|
|
232
268
|
)
|
|
233
269
|
SetAudysseyDynamicvol = AppCommandCmd(
|
|
234
|
-
cmd_id=3,
|
|
270
|
+
cmd_id="3",
|
|
235
271
|
name="SetAudyssey",
|
|
236
272
|
param_list=(AppCommandCmdParam(name="dynamicvol", text="REPLACE"),),
|
|
237
273
|
)
|
|
@@ -17,14 +17,17 @@ from .appcommand import AppCommandCmd, AppCommandCmdParam, AppCommands
|
|
|
17
17
|
from .const import (
|
|
18
18
|
DENON_ATTR_SETATTR,
|
|
19
19
|
DYNAMIC_VOLUME_MAP,
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
DYNAMIC_VOLUME_MAP_REVERSE_APPCOMMAND,
|
|
21
|
+
DYNAMIC_VOLUME_MAP_REVERSE_TELNET,
|
|
22
22
|
MULTI_EQ_MAP,
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
MULTI_EQ_MAP_REVERSE_APPCOMMAND,
|
|
24
|
+
MULTI_EQ_MAP_REVERSE_TELNET,
|
|
25
25
|
REF_LVL_OFFSET_MAP,
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
REF_LVL_OFFSET_MAP_REVERSE_APPCOMMAND,
|
|
27
|
+
REF_LVL_OFFSET_MAP_REVERSE_TELNET,
|
|
28
|
+
DynamicVolumeSettings,
|
|
29
|
+
MultiEQModes,
|
|
30
|
+
ReferenceLevelOffsets,
|
|
28
31
|
)
|
|
29
32
|
from .exceptions import AvrCommandError, AvrProcessingError
|
|
30
33
|
from .foundation import DenonAVRFoundation, convert_string_int_bool
|
|
@@ -167,8 +170,8 @@ class DenonAVRAudyssey(DenonAVRFoundation):
|
|
|
167
170
|
def reference_level_offset_setting_list(self) -> List[str]:
|
|
168
171
|
"""Return a list of available reference level offset settings."""
|
|
169
172
|
if self._device.telnet_available:
|
|
170
|
-
return list(
|
|
171
|
-
return list(
|
|
173
|
+
return list(REF_LVL_OFFSET_MAP_REVERSE_TELNET.keys())
|
|
174
|
+
return list(REF_LVL_OFFSET_MAP_REVERSE_APPCOMMAND.keys())
|
|
172
175
|
|
|
173
176
|
@property
|
|
174
177
|
def dynamic_volume(self) -> Optional[str]:
|
|
@@ -179,8 +182,8 @@ class DenonAVRAudyssey(DenonAVRFoundation):
|
|
|
179
182
|
def dynamic_volume_setting_list(self) -> List[str]:
|
|
180
183
|
"""Return a list of available Dynamic Volume settings."""
|
|
181
184
|
if self._device.telnet_available:
|
|
182
|
-
return list(
|
|
183
|
-
return list(
|
|
185
|
+
return list(DYNAMIC_VOLUME_MAP_REVERSE_TELNET.keys())
|
|
186
|
+
return list(DYNAMIC_VOLUME_MAP_REVERSE_APPCOMMAND.keys())
|
|
184
187
|
|
|
185
188
|
@property
|
|
186
189
|
def multi_eq(self) -> Optional[str]:
|
|
@@ -191,8 +194,8 @@ class DenonAVRAudyssey(DenonAVRFoundation):
|
|
|
191
194
|
def multi_eq_setting_list(self) -> List[str]:
|
|
192
195
|
"""Return a list of available MultiEQ settings."""
|
|
193
196
|
if self._device.telnet_available:
|
|
194
|
-
return list(
|
|
195
|
-
return list(
|
|
197
|
+
return list(MULTI_EQ_MAP_REVERSE_TELNET.keys())
|
|
198
|
+
return list(MULTI_EQ_MAP_REVERSE_APPCOMMAND.keys())
|
|
196
199
|
|
|
197
200
|
@property
|
|
198
201
|
def lfc(self) -> Optional[bool]:
|
|
@@ -223,7 +226,7 @@ class DenonAVRAudyssey(DenonAVRFoundation):
|
|
|
223
226
|
return
|
|
224
227
|
cmd = attr.evolve(
|
|
225
228
|
AppCommands.SetAudysseyDynamicEQ,
|
|
226
|
-
param_list=(AppCommandCmdParam(name="dynamiceq", text=0),),
|
|
229
|
+
param_list=(AppCommandCmdParam(name="dynamiceq", text="0"),),
|
|
227
230
|
)
|
|
228
231
|
await self._async_set_audyssey(cmd)
|
|
229
232
|
|
|
@@ -235,21 +238,21 @@ class DenonAVRAudyssey(DenonAVRFoundation):
|
|
|
235
238
|
return
|
|
236
239
|
cmd = attr.evolve(
|
|
237
240
|
AppCommands.SetAudysseyDynamicEQ,
|
|
238
|
-
param_list=(AppCommandCmdParam(name="dynamiceq", text=1),),
|
|
241
|
+
param_list=(AppCommandCmdParam(name="dynamiceq", text="1"),),
|
|
239
242
|
)
|
|
240
243
|
await self._async_set_audyssey(cmd)
|
|
241
244
|
|
|
242
|
-
async def async_set_multieq(self, value:
|
|
245
|
+
async def async_set_multieq(self, value: MultiEQModes) -> None:
|
|
243
246
|
"""Set MultiEQ mode."""
|
|
244
247
|
if self._device.telnet_available:
|
|
245
|
-
setting =
|
|
248
|
+
setting = MULTI_EQ_MAP_REVERSE_TELNET.get(value)
|
|
246
249
|
if setting is None:
|
|
247
250
|
raise AvrCommandError(f"Value {value} not known for MultiEQ")
|
|
248
251
|
telnet_command = self._device.telnet_commands.command_multieq + setting
|
|
249
252
|
await self._device.telnet_api.async_send_commands(telnet_command)
|
|
250
253
|
return
|
|
251
254
|
|
|
252
|
-
setting =
|
|
255
|
+
setting = MULTI_EQ_MAP_REVERSE_APPCOMMAND.get(value)
|
|
253
256
|
if setting is None:
|
|
254
257
|
raise AvrCommandError(f"Value {value} not known for MultiEQ")
|
|
255
258
|
cmd = attr.evolve(
|
|
@@ -258,7 +261,7 @@ class DenonAVRAudyssey(DenonAVRFoundation):
|
|
|
258
261
|
)
|
|
259
262
|
await self._async_set_audyssey(cmd)
|
|
260
263
|
|
|
261
|
-
async def async_set_reflevoffset(self, value:
|
|
264
|
+
async def async_set_reflevoffset(self, value: ReferenceLevelOffsets) -> None:
|
|
262
265
|
"""Set Reference Level Offset."""
|
|
263
266
|
# Reference level offset can only be used with DynamicEQ
|
|
264
267
|
if not self._dynamiceq:
|
|
@@ -266,7 +269,7 @@ class DenonAVRAudyssey(DenonAVRFoundation):
|
|
|
266
269
|
"Reference level could only be set when DynamicEQ is active"
|
|
267
270
|
)
|
|
268
271
|
if self._device.telnet_available:
|
|
269
|
-
setting =
|
|
272
|
+
setting = REF_LVL_OFFSET_MAP_REVERSE_TELNET.get(value)
|
|
270
273
|
if setting is None:
|
|
271
274
|
raise AvrCommandError(
|
|
272
275
|
f"Value {value} not known for Reference level offset"
|
|
@@ -275,7 +278,7 @@ class DenonAVRAudyssey(DenonAVRFoundation):
|
|
|
275
278
|
await self._device.telnet_api.async_send_commands(telnet_command)
|
|
276
279
|
return
|
|
277
280
|
|
|
278
|
-
setting =
|
|
281
|
+
setting = REF_LVL_OFFSET_MAP_REVERSE_APPCOMMAND.get(value)
|
|
279
282
|
if setting is None:
|
|
280
283
|
raise AvrCommandError(f"Value {value} not known for Reference level offset")
|
|
281
284
|
cmd = attr.evolve(
|
|
@@ -284,17 +287,17 @@ class DenonAVRAudyssey(DenonAVRFoundation):
|
|
|
284
287
|
)
|
|
285
288
|
await self._async_set_audyssey(cmd)
|
|
286
289
|
|
|
287
|
-
async def async_set_dynamicvol(self, value:
|
|
290
|
+
async def async_set_dynamicvol(self, value: DynamicVolumeSettings) -> None:
|
|
288
291
|
"""Set Dynamic Volume."""
|
|
289
292
|
if self._device.telnet_available:
|
|
290
|
-
setting =
|
|
293
|
+
setting = DYNAMIC_VOLUME_MAP_REVERSE_TELNET.get(value)
|
|
291
294
|
if setting is None:
|
|
292
295
|
raise AvrCommandError(f"Value {value} not known for Dynamic Volume")
|
|
293
296
|
telnet_command = self._device.telnet_commands.command_dynamicvol + setting
|
|
294
297
|
await self._device.telnet_api.async_send_commands(telnet_command)
|
|
295
298
|
return
|
|
296
299
|
|
|
297
|
-
setting =
|
|
300
|
+
setting = DYNAMIC_VOLUME_MAP_REVERSE_APPCOMMAND.get(value)
|
|
298
301
|
if setting is None:
|
|
299
302
|
raise AvrCommandError(f"Value {value} not known for Dynamic Volume")
|
|
300
303
|
cmd = attr.evolve(
|