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.
Files changed (292) hide show
  1. {denonavr-1.2.0 → denonavr-1.3.0}/PKG-INFO +1 -1
  2. {denonavr-1.2.0 → denonavr-1.3.0}/denonavr/__init__.py +1 -1
  3. {denonavr-1.2.0 → denonavr-1.3.0}/denonavr/api.py +7 -5
  4. {denonavr-1.2.0 → denonavr-1.3.0}/denonavr/appcommand.py +48 -12
  5. {denonavr-1.2.0 → denonavr-1.3.0}/denonavr/audyssey.py +26 -23
  6. {denonavr-1.2.0 → denonavr-1.3.0}/denonavr/const.py +426 -141
  7. {denonavr-1.2.0 → denonavr-1.3.0}/denonavr/decorators.py +2 -3
  8. {denonavr-1.2.0 → denonavr-1.3.0}/denonavr/denonavr.py +140 -101
  9. {denonavr-1.2.0 → denonavr-1.3.0}/denonavr/dirac.py +5 -5
  10. {denonavr-1.2.0 → denonavr-1.3.0}/denonavr/foundation.py +382 -294
  11. {denonavr-1.2.0 → denonavr-1.3.0}/denonavr/input.py +55 -24
  12. {denonavr-1.2.0 → denonavr-1.3.0}/denonavr/soundmode.py +46 -32
  13. {denonavr-1.2.0 → denonavr-1.3.0}/denonavr/volume.py +33 -36
  14. {denonavr-1.2.0 → denonavr-1.3.0}/denonavr.egg-info/PKG-INFO +1 -1
  15. {denonavr-1.2.0 → denonavr-1.3.0}/denonavr.egg-info/SOURCES.txt +12 -0
  16. {denonavr-1.2.0 → denonavr-1.3.0}/pyproject.toml +1 -1
  17. {denonavr-1.2.0 → denonavr-1.3.0}/tests/test_const.py +10 -10
  18. {denonavr-1.2.0 → denonavr-1.3.0}/tests/test_denonavr.py +1 -0
  19. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AV7703-AppCommand-update-8080.xml +25 -0
  20. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVC-8500H-AppCommand-update-8080.xml +25 -0
  21. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVC-A10H-AppCommand-update-8080.xml +25 -0
  22. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVC-X3700H-AppCommand-update-8080.xml +25 -0
  23. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1713-AppCommand-update.xml +10 -0
  24. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3313-AppCommand-update.xml +20 -0
  25. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X1100W-AppCommand-update.xml +16 -0
  26. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4000-AppCommand-update.xml +25 -0
  27. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4100W-AppCommand-update.xml +25 -0
  28. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4300H-AppCommand-update-8080.xml +25 -0
  29. denonavr-1.3.0/tests/xml/DRA-N4-AppCommand-setup.xml +6 -0
  30. denonavr-1.3.0/tests/xml/DRA-N4-AppCommand-update-tonecontrol.xml +15 -0
  31. denonavr-1.3.0/tests/xml/DRA-N4-AppCommand-update.xml +159 -0
  32. denonavr-1.3.0/tests/xml/DRA-N4-Deviceinfo.xml +631 -0
  33. denonavr-1.3.0/tests/xml/DRA-N4-formMainZone_MainZoneXml.xml +14 -0
  34. denonavr-1.3.0/tests/xml/DRA-N4-formMainZone_MainZoneXmlStatus.xml +9 -0
  35. denonavr-1.3.0/tests/xml/DRA-N4-formNetAudio_StatusXml.xml +56 -0
  36. denonavr-1.3.0/tests/xml/DRA-N4-formTuner_HdXml.xml +80 -0
  37. denonavr-1.3.0/tests/xml/DRA-N4-formTuner_TunerXml.xml +71 -0
  38. denonavr-1.3.0/tests/xml/DRA-N4-formZone2_Zone2XmlStatus.xml +48 -0
  39. denonavr-1.3.0/tests/xml/DRA-N4-formZone3_Zone3XmlStatus.xml +48 -0
  40. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-2-AppCommand-update.xml +3 -0
  41. denonavr-1.3.0/tests/xml/M-CR510-AppCommand-update-soundmode.xml +6 -0
  42. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-AppCommand-update.xml +4 -0
  43. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-RC610-AppCommand-update.xml +12 -0
  44. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1609-AppCommand-update-8080.xml +16 -0
  45. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6011-AppCommand-update.xml +16 -0
  46. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6012-AppCommand-update-8080.xml +16 -0
  47. {denonavr-1.2.0 → denonavr-1.3.0}/LICENSE +0 -0
  48. {denonavr-1.2.0 → denonavr-1.3.0}/README.md +0 -0
  49. {denonavr-1.2.0 → denonavr-1.3.0}/denonavr/exceptions.py +0 -0
  50. {denonavr-1.2.0 → denonavr-1.3.0}/denonavr/ssdp.py +0 -0
  51. {denonavr-1.2.0 → denonavr-1.3.0}/denonavr/tonecontrol.py +0 -0
  52. {denonavr-1.2.0 → denonavr-1.3.0}/denonavr.egg-info/dependency_links.txt +0 -0
  53. {denonavr-1.2.0 → denonavr-1.3.0}/denonavr.egg-info/not-zip-safe +0 -0
  54. {denonavr-1.2.0 → denonavr-1.3.0}/denonavr.egg-info/requires.txt +0 -0
  55. {denonavr-1.2.0 → denonavr-1.3.0}/denonavr.egg-info/top_level.txt +0 -0
  56. {denonavr-1.2.0 → denonavr-1.3.0}/setup.cfg +0 -0
  57. {denonavr-1.2.0 → denonavr-1.3.0}/tests/__init__.py +0 -0
  58. {denonavr-1.2.0 → denonavr-1.3.0}/tests/test_ssdp.py +0 -0
  59. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AV7703-AppCommand-setup-8080.xml +0 -0
  60. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AV7703-AppCommand-update-soundmode-8080.xml +0 -0
  61. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AV7703-AppCommand-update-tonecontrol-8080.xml +0 -0
  62. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AV7703-Deviceinfo-8080.xml +0 -0
  63. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVC-8500H-AppCommand-setup-8080.xml +0 -0
  64. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVC-8500H-AppCommand-update-soundmode-8080.xml +0 -0
  65. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVC-8500H-AppCommand-update-tonecontrol-8080.xml +0 -0
  66. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVC-8500H-Deviceinfo-8080.xml +0 -0
  67. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVC-A10H-AppCommand-setup-8080.xml +0 -0
  68. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVC-A10H-AppCommand-update-soundmode-8080.xml +0 -0
  69. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVC-A10H-AppCommand-update-tonecontrol-8080.xml +0 -0
  70. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVC-A10H-Deviceinfo-8080.xml +0 -0
  71. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVC-X3700H-AppCommand-setup-8080.xml +0 -0
  72. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVC-X3700H-AppCommand-update-soundmode-8080.xml +0 -0
  73. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVC-X3700H-AppCommand-update-tonecontrol-8080.xml +0 -0
  74. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVC-X3700H-Deviceinfo-8080.xml +0 -0
  75. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1713-AppCommand-setup.xml +0 -0
  76. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1713-AppCommand-update-soundmode.xml +0 -0
  77. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1713-AppCommand-update-tonecontrol.xml +0 -0
  78. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1713-Deviceinfo.xml +0 -0
  79. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1713-formMainZone_MainZoneXml.xml +0 -0
  80. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1713-formMainZone_MainZoneXmlStatus.xml +0 -0
  81. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1713-formNetAudio_StatusXml.xml +0 -0
  82. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1713-formTuner_HdXml.xml +0 -0
  83. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1713-formTuner_TunerXml.xml +0 -0
  84. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1713-formZone2_Zone2XmlStatus.xml +0 -0
  85. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1713-formZone3_Zone3XmlStatus.xml +0 -0
  86. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1912-AppCommand-setup.xml +0 -0
  87. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1912-AppCommand-update-soundmode.xml +0 -0
  88. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1912-AppCommand-update-tonecontrol.xml +0 -0
  89. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1912-AppCommand-update.xml +0 -0
  90. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1912-Deviceinfo.xml +0 -0
  91. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1912-formMainZone_MainZoneXml.xml +0 -0
  92. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1912-formMainZone_MainZoneXmlStatus.xml +0 -0
  93. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-1912-formNetAudio_StatusXml.xml +0 -0
  94. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-2312CI-AppCommand-setup.xml +0 -0
  95. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-2312CI-AppCommand-update-soundmode.xml +0 -0
  96. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-2312CI-AppCommand-update-tonecontrol.xml +0 -0
  97. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-2312CI-AppCommand-update.xml +0 -0
  98. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-2312CI-Deviceinfo.xml +0 -0
  99. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-2312CI-formMainZone_MainZoneXml.xml +0 -0
  100. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-2312CI-formMainZone_MainZoneXmlStatus.xml +0 -0
  101. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-2312CI-formNetAudio_StatusXml.xml +0 -0
  102. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3311CI-AppCommand-setup.xml +0 -0
  103. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3311CI-AppCommand-update-soundmode.xml +0 -0
  104. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3311CI-AppCommand-update-tonecontrol.xml +0 -0
  105. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3311CI-AppCommand-update.xml +0 -0
  106. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3311CI-Deviceinfo.xml +0 -0
  107. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3311CI-formMainZone_MainZoneXml.xml +0 -0
  108. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3311CI-formMainZone_MainZoneXmlStatus.xml +0 -0
  109. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3311CI-formNetAudio_StatusXml.xml +0 -0
  110. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3312-AppCommand-setup.xml +0 -0
  111. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3312-AppCommand-update-soundmode.xml +0 -0
  112. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3312-AppCommand-update-tonecontrol.xml +0 -0
  113. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3312-AppCommand-update.xml +0 -0
  114. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3312-Deviceinfo.xml +0 -0
  115. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3312-formMainZone_MainZoneXml.xml +0 -0
  116. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3312-formMainZone_MainZoneXmlStatus.xml +0 -0
  117. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3312-formNetAudio_StatusXml.xml +0 -0
  118. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3312-formTuner_HdXml.xml +0 -0
  119. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3312-formTuner_TunerXml.xml +0 -0
  120. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3312-formZone2_Zone2XmlStatus.xml +0 -0
  121. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3312-formZone3_Zone3XmlStatus.xml +0 -0
  122. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3313-AppCommand-setup.xml +0 -0
  123. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3313-AppCommand-update-soundmode.xml +0 -0
  124. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3313-AppCommand-update-tonecontrol.xml +0 -0
  125. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3313-Deviceinfo.xml +0 -0
  126. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3313-formMainZone_MainZoneXml.xml +0 -0
  127. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3313-formMainZone_MainZoneXmlStatus.xml +0 -0
  128. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3313-formNetAudio_StatusXml.xml +0 -0
  129. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3313-formTuner_HdXml.xml +0 -0
  130. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3313-formTuner_TunerXml.xml +0 -0
  131. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3313-formZone2_Zone2XmlStatus.xml +0 -0
  132. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-3313-formZone3_Zone3XmlStatus.xml +0 -0
  133. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-4810-AppCommand-setup.xml +0 -0
  134. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-4810-AppCommand-update-soundmode.xml +0 -0
  135. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-4810-AppCommand-update-tonecontrol.xml +0 -0
  136. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-4810-AppCommand-update.xml +0 -0
  137. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-4810-Deviceinfo.xml +0 -0
  138. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-4810-formMainZone_MainZoneXml.xml +0 -0
  139. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-4810-formMainZone_MainZoneXmlStatus.xml +0 -0
  140. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-4810-formNetAudio_StatusXml.xml +0 -0
  141. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-4810-formTuner_HdXml.xml +0 -0
  142. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-4810-formTuner_TunerXml.xml +0 -0
  143. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-4810-formZone2_Zone2XmlStatus.xml +0 -0
  144. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-4810-formZone3_Zone3XmlStatus.xml +0 -0
  145. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X1100W-AppCommand-setup.xml +0 -0
  146. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X1100W-AppCommand-update-soundmode.xml +0 -0
  147. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X1100W-AppCommand-update-tonecontrol.xml +0 -0
  148. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X1100W-Deviceinfo.xml +0 -0
  149. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X1100W-formMainZone_MainZoneXml.xml +0 -0
  150. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X1100W-formMainZone_MainZoneXmlStatus.xml +0 -0
  151. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X1100W-formNetAudio_StatusXml.xml +0 -0
  152. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X1100W-formTuner_HdXml.xml +0 -0
  153. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X1100W-formTuner_TunerXml.xml +0 -0
  154. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X1100W-formZone2_Zone2XmlStatus.xml +0 -0
  155. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X1100W-formZone3_Zone3XmlStatus.xml +0 -0
  156. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X1600H_upnp.xml +0 -0
  157. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-2-AppCommand-setup.xml +0 -0
  158. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-2-AppCommand-update-soundmode.xml +0 -0
  159. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-2-AppCommand-update-tonecontrol.xml +0 -0
  160. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-2-AppCommand-update.xml +0 -0
  161. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-2-Deviceinfo.xml +0 -0
  162. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-2-formMainZone_MainZoneXml.xml +0 -0
  163. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-2-formMainZone_MainZoneXmlStatus.xml +0 -0
  164. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-2-formNetAudio_StatusXml.xml +0 -0
  165. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-AppCommand-setup.xml +0 -0
  166. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-AppCommand-update-soundmode.xml +0 -0
  167. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-AppCommand-update-tonecontrol.xml +0 -0
  168. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-AppCommand-update.xml +0 -0
  169. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-Deviceinfo.xml +0 -0
  170. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-formMainZone_MainZoneXml.xml +0 -0
  171. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-formMainZone_MainZoneXmlStatus.xml +0 -0
  172. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-formNetAudio_StatusXml.xml +0 -0
  173. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-formTuner_HdXml.xml +0 -0
  174. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-formTuner_TunerXml.xml +0 -0
  175. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-formZone2_Zone2XmlStatus.xml +0 -0
  176. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2000-formZone3_Zone3XmlStatus.xml +0 -0
  177. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2100W-2-AppCommand-setup.xml +0 -0
  178. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2100W-2-AppCommand-update-soundmode.xml +0 -0
  179. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2100W-2-AppCommand-update-tonecontrol.xml +0 -0
  180. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2100W-2-AppCommand-update.xml +0 -0
  181. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2100W-2-Deviceinfo.xml +0 -0
  182. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2100W-2-formMainZone_MainZoneXml.xml +0 -0
  183. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2100W-2-formMainZone_MainZoneXmlStatus.xml +0 -0
  184. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2100W-2-formNetAudio_StatusXml.xml +0 -0
  185. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2100W-AppCommand-setup.xml +0 -0
  186. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2100W-AppCommand-update-soundmode.xml +0 -0
  187. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2100W-AppCommand-update-tonecontrol.xml +0 -0
  188. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2100W-AppCommand-update.xml +0 -0
  189. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2100W-formMainZone_MainZoneXml.xml +0 -0
  190. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2100W-formMainZone_MainZoneXmlStatus.xml +0 -0
  191. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X2100W-formNetAudio_StatusXml.xml +0 -0
  192. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4000-AppCommand-setup.xml +0 -0
  193. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4000-AppCommand-update-soundmode.xml +0 -0
  194. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4000-AppCommand-update-tonecontrol.xml +0 -0
  195. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4000-Deviceinfo.xml +0 -0
  196. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4000-formMainZone_MainZoneXml.xml +0 -0
  197. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4000-formMainZone_MainZoneXmlStatus.xml +0 -0
  198. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4000-formNetAudio_StatusXml.xml +0 -0
  199. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4000-formTuner_HdXml.xml +0 -0
  200. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4000-formTuner_TunerXml.xml +0 -0
  201. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4000-formZone2_Zone2XmlStatus.xml +0 -0
  202. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4000-formZone3_Zone3XmlStatus.xml +0 -0
  203. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4100W-AppCommand-setup.xml +0 -0
  204. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4100W-AppCommand-update-soundmode.xml +0 -0
  205. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4100W-AppCommand-update-tonecontrol.xml +0 -0
  206. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4100W-Deviceinfo.xml +0 -0
  207. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4100W-formMainZone_MainZoneXml.xml +0 -0
  208. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4100W-formMainZone_MainZoneXmlStatus.xml +0 -0
  209. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4100W-formNetAudio_StatusXml.xml +0 -0
  210. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4300H-AppCommand-setup-8080.xml +0 -0
  211. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4300H-AppCommand-update-soundmode-8080.xml +0 -0
  212. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4300H-AppCommand-update-tonecontrol-8080.xml +0 -0
  213. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/AVR-X4300H-Deviceinfo-8080.xml +0 -0
  214. /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
  215. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-2-AppCommand-setup.xml +0 -0
  216. /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
  217. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-2-AppCommand-update-tonecontrol.xml +0 -0
  218. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-2-Deviceinfo.xml +0 -0
  219. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-2-formMainZone_MainZoneXml.xml +0 -0
  220. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-2-formMainZone_MainZoneXmlStatus.xml +0 -0
  221. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-2-formNetAudio_StatusXml.xml +0 -0
  222. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-2-formTuner_HdXml.xml +0 -0
  223. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-2-formTuner_TunerXml.xml +0 -0
  224. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-AppCommand-setup.xml +0 -0
  225. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-AppCommand-update-tonecontrol.xml +0 -0
  226. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-Deviceinfo.xml +0 -0
  227. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-formMainZone_MainZoneXml.xml +0 -0
  228. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-formMainZone_MainZoneXmlStatus.xml +0 -0
  229. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-formNetAudio_StatusXml.xml +0 -0
  230. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-formTuner_HdXml.xml +0 -0
  231. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR510-formTuner_TunerXml.xml +0 -0
  232. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR603-AppCommand-setup.xml +0 -0
  233. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR603-AppCommand-update-soundmode.xml +0 -0
  234. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR603-AppCommand-update-tonecontrol.xml +0 -0
  235. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR603-AppCommand-update.xml +0 -0
  236. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR603-Deviceinfo.xml +0 -0
  237. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR603-formMainZone_MainZoneXml.xml +0 -0
  238. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR603-formMainZone_MainZoneXmlStatus.xml +0 -0
  239. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR603-formNetAudio_StatusXml.xml +0 -0
  240. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR603-formTuner_HdXml.xml +0 -0
  241. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR603-formTuner_TunerXml.xml +0 -0
  242. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR603-formZone2_Zone2XmlStatus.xml +0 -0
  243. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-CR603-formZone3_Zone3XmlStatus.xml +0 -0
  244. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-RC610-AppCommand-setup.xml +0 -0
  245. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-RC610-AppCommand-update-soundmode.xml +0 -0
  246. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-RC610-AppCommand-update-tonecontrol.xml +0 -0
  247. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-RC610-Deviceinfo.xml +0 -0
  248. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-RC610-formMainZone_MainZoneXml.xml +0 -0
  249. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-RC610-formMainZone_MainZoneXmlStatus.xml +0 -0
  250. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-RC610-formNetAudio_StatusXml.xml +0 -0
  251. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/M-RC610-formTuner_TunerXml.xml +0 -0
  252. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1604-AppCommand-setup.xml +0 -0
  253. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1604-AppCommand-update-soundmode.xml +0 -0
  254. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1604-AppCommand-update-tonecontrol.xml +0 -0
  255. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1604-AppCommand-update.xml +0 -0
  256. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1604-Deviceinfo.xml +0 -0
  257. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1604-formMainZone_MainZoneXml.xml +0 -0
  258. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1604-formMainZone_MainZoneXmlStatus.xml +0 -0
  259. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1604-formNetAudio_StatusXml.xml +0 -0
  260. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1604-formTuner_HdXml.xml +0 -0
  261. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1604-formTuner_TunerXml.xml +0 -0
  262. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1604-formZone2_Zone2XmlStatus.xml +0 -0
  263. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1604-formZone3_Zone3XmlStatus.xml +0 -0
  264. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1609-AppCommand-setup-8080.xml +0 -0
  265. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1609-AppCommand-update-soundmode-8080.xml +0 -0
  266. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1609-AppCommand-update-tonecontrol-8080.xml +0 -0
  267. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/NR1609-Deviceinfo-8080.xml +0 -0
  268. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR5008-AppCommand-setup.xml +0 -0
  269. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR5008-AppCommand-update-soundmode.xml +0 -0
  270. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR5008-AppCommand-update-tonecontrol.xml +0 -0
  271. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR5008-AppCommand-update.xml +0 -0
  272. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR5008-Deviceinfo.xml +0 -0
  273. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR5008-formMainZone_MainZoneXml.xml +0 -0
  274. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR5008-formMainZone_MainZoneXmlStatus.xml +0 -0
  275. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR5008-formNetAudio_StatusXml.xml +0 -0
  276. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR5008-formTuner_HdXml.xml +0 -0
  277. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR5008-formTuner_TunerXml.xml +0 -0
  278. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6011-AppCommand-setup.xml +0 -0
  279. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6011-AppCommand-update-soundmode.xml +0 -0
  280. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6011-AppCommand-update-tonecontrol.xml +0 -0
  281. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6011-Deviceinfo.xml +0 -0
  282. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6011-formMainZone_MainZoneXml.xml +0 -0
  283. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6011-formMainZone_MainZoneXmlStatus.xml +0 -0
  284. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6011-formNetAudio_StatusXml.xml +0 -0
  285. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6011-formTuner_HdXml.xml +0 -0
  286. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6011-formTuner_TunerXml.xml +0 -0
  287. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6011-formZone2_Zone2XmlStatus.xml +0 -0
  288. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6011-formZone3_Zone3XmlStatus.xml +0 -0
  289. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6012-AppCommand-setup-8080.xml +0 -0
  290. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6012-AppCommand-update-soundmode-8080.xml +0 -0
  291. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6012-AppCommand-update-tonecontrol-8080.xml +0 -0
  292. {denonavr-1.2.0 → denonavr-1.3.0}/tests/xml/SR6012-Deviceinfo-8080.xml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: denonavr
3
- Version: 1.2.0
3
+ Version: 1.3.0
4
4
  Summary: Automation Library for Denon AVR receivers
5
5
  Author-email: Oliver Goetz <scarface@mywoh.de>
6
6
  License: MIT
@@ -17,7 +17,7 @@ from .ssdp import async_identify_denonavr_receivers
17
17
  logging.getLogger(__name__).addHandler(logging.NullHandler())
18
18
 
19
19
  __title__ = "denonavr"
20
- __version__ = "1.2.0"
20
+ __version__ = "1.3.0"
21
21
 
22
22
 
23
23
  async def async_discover():
@@ -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, cast
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 GET endpoint of Denon AVR receiver asynchronously."""
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 = cast(DenonAVRTelnetProtocol, transport_protocol[1])
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
- DYNAMIC_VOLUME_MAP_LABELS_APPCOMMAND,
21
- DYNAMIC_VOLUME_MAP_LABELS_TELNET,
20
+ DYNAMIC_VOLUME_MAP_REVERSE_APPCOMMAND,
21
+ DYNAMIC_VOLUME_MAP_REVERSE_TELNET,
22
22
  MULTI_EQ_MAP,
23
- MULTI_EQ_MAP_LABELS_APPCOMMAND,
24
- MULTI_EQ_MAP_LABELS_TELNET,
23
+ MULTI_EQ_MAP_REVERSE_APPCOMMAND,
24
+ MULTI_EQ_MAP_REVERSE_TELNET,
25
25
  REF_LVL_OFFSET_MAP,
26
- REF_LVL_OFFSET_MAP_LABELS_APPCOMMAND,
27
- REF_LVL_OFFSET_MAP_LABELS_TELNET,
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(REF_LVL_OFFSET_MAP_LABELS_TELNET.keys())
171
- return list(REF_LVL_OFFSET_MAP_LABELS_APPCOMMAND.keys())
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(DYNAMIC_VOLUME_MAP_LABELS_TELNET.keys())
183
- return list(DYNAMIC_VOLUME_MAP_LABELS_APPCOMMAND.keys())
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(MULTI_EQ_MAP_LABELS_TELNET.keys())
195
- return list(MULTI_EQ_MAP_LABELS_APPCOMMAND.keys())
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: str) -> None:
245
+ async def async_set_multieq(self, value: MultiEQModes) -> None:
243
246
  """Set MultiEQ mode."""
244
247
  if self._device.telnet_available:
245
- setting = MULTI_EQ_MAP_LABELS_TELNET.get(value)
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 = MULTI_EQ_MAP_LABELS_APPCOMMAND.get(value)
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: str) -> None:
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 = REF_LVL_OFFSET_MAP_LABELS_TELNET.get(value)
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 = REF_LVL_OFFSET_MAP_LABELS_APPCOMMAND.get(value)
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: str) -> None:
290
+ async def async_set_dynamicvol(self, value: DynamicVolumeSettings) -> None:
288
291
  """Set Dynamic Volume."""
289
292
  if self._device.telnet_available:
290
- setting = DYNAMIC_VOLUME_MAP_LABELS_TELNET.get(value)
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 = DYNAMIC_VOLUME_MAP_LABELS_APPCOMMAND.get(value)
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(