@bharper/atv-js 0.2.6 → 0.3.4

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 (283) hide show
  1. package/dist/index.d.ts +15 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +89 -9
  4. package/dist/index.js.map +1 -1
  5. package/dist/mdns.d.ts.map +1 -1
  6. package/dist/mdns.js +96 -11
  7. package/dist/mdns.js.map +1 -1
  8. package/examples/print-device-json.js +22 -0
  9. package/package.json +2 -3
  10. package/pyatv/.codecov.yml +38 -0
  11. package/pyatv/.github/FUNDING.yml +3 -0
  12. package/pyatv/.github/ISSUE_TEMPLATE/bug_report.yml +80 -0
  13. package/pyatv/.github/ISSUE_TEMPLATE/config.yml +1 -0
  14. package/pyatv/.github/ISSUE_TEMPLATE/feature_request.yml +22 -0
  15. package/pyatv/.github/ISSUE_TEMPLATE/implementation-proposal.yml +29 -0
  16. package/pyatv/.github/ISSUE_TEMPLATE/investigation.yml +16 -0
  17. package/pyatv/.github/ISSUE_TEMPLATE/minor-change.yml +10 -0
  18. package/pyatv/.github/ISSUE_TEMPLATE/question-or-idea.yml +11 -0
  19. package/pyatv/.github/dependabot.yml +26 -0
  20. package/pyatv/.github/workflows/codeql-analysis.yml +71 -0
  21. package/pyatv/.github/workflows/release.yml +160 -0
  22. package/pyatv/.github/workflows/tests.yml +104 -0
  23. package/pyatv/.gitpod.yml +23 -0
  24. package/pyatv/CHANGES.md +3708 -0
  25. package/pyatv/CODE_OF_CONDUCT.md +76 -0
  26. package/pyatv/CONTRIBUTING.md +72 -0
  27. package/pyatv/CONTRIBUTORS.md +3 -0
  28. package/pyatv/Dockerfile +15 -0
  29. package/pyatv/LICENSE.md +9 -0
  30. package/pyatv/MANIFEST.in +14 -0
  31. package/pyatv/README.md +111 -0
  32. package/pyatv/base_versions.txt +13 -0
  33. package/pyatv/chickn.yaml +75 -0
  34. package/pyatv/docs/404.html +24 -0
  35. package/pyatv/docs/CNAME +1 -0
  36. package/pyatv/docs/Gemfile +31 -0
  37. package/pyatv/docs/_config.yml +121 -0
  38. package/pyatv/docs/_includes/api +10 -0
  39. package/pyatv/docs/_includes/atvremote_scan +32 -0
  40. package/pyatv/docs/_includes/code +6 -0
  41. package/pyatv/docs/_includes/issue +14 -0
  42. package/pyatv/docs/_includes/pypi +5 -0
  43. package/pyatv/docs/_layouts/template.html +109 -0
  44. package/pyatv/docs/api/pyatv.conf.html +312 -0
  45. package/pyatv/docs/api/pyatv.const.html +974 -0
  46. package/pyatv/docs/api/pyatv.convert.html +106 -0
  47. package/pyatv/docs/api/pyatv.exceptions.html +489 -0
  48. package/pyatv/docs/api/pyatv.helpers.html +102 -0
  49. package/pyatv/docs/api/pyatv.html +120 -0
  50. package/pyatv/docs/api/pyatv.interface.html +2369 -0
  51. package/pyatv/docs/api/pyatv.settings.html +484 -0
  52. package/pyatv/docs/api/pyatv.storage.file_storage.html +102 -0
  53. package/pyatv/docs/api/pyatv.storage.html +186 -0
  54. package/pyatv/docs/api/pyatv.storage.memory_storage.html +83 -0
  55. package/pyatv/docs/assets/css/custom.css +19 -0
  56. package/pyatv/docs/assets/css/hljs.css +1 -0
  57. package/pyatv/docs/assets/css/normalize.css +349 -0
  58. package/pyatv/docs/assets/css/pdoc.css +287 -0
  59. package/pyatv/docs/assets/css/sanitize.css +566 -0
  60. package/pyatv/docs/assets/css/style.scss +9 -0
  61. package/pyatv/docs/assets/img/logo.svg +63 -0
  62. package/pyatv/docs/assets/js/highlight.9.12.0.min.js +3 -0
  63. package/pyatv/docs/assets/js/mermaid.8.9.2.min.js +32 -0
  64. package/pyatv/docs/assets/js/mermaid.min.js.map +1 -0
  65. package/pyatv/docs/development/apps.md +81 -0
  66. package/pyatv/docs/development/audio.md +42 -0
  67. package/pyatv/docs/development/control.md +56 -0
  68. package/pyatv/docs/development/development.md +15 -0
  69. package/pyatv/docs/development/device_info.md +36 -0
  70. package/pyatv/docs/development/examples.md +44 -0
  71. package/pyatv/docs/development/features.md +70 -0
  72. package/pyatv/docs/development/keyboard.md +51 -0
  73. package/pyatv/docs/development/listeners.md +144 -0
  74. package/pyatv/docs/development/logging.md +55 -0
  75. package/pyatv/docs/development/metadata.md +115 -0
  76. package/pyatv/docs/development/power_management.md +53 -0
  77. package/pyatv/docs/development/scan_pair_and_connect.md +331 -0
  78. package/pyatv/docs/development/services.md +9 -0
  79. package/pyatv/docs/development/storage.md +259 -0
  80. package/pyatv/docs/development/stream.md +241 -0
  81. package/pyatv/docs/development/testing.md +9 -0
  82. package/pyatv/docs/documentation/atvlog.md +64 -0
  83. package/pyatv/docs/documentation/atvproxy.md +244 -0
  84. package/pyatv/docs/documentation/atvremote.md +639 -0
  85. package/pyatv/docs/documentation/atvscript.md +275 -0
  86. package/pyatv/docs/documentation/concepts.md +168 -0
  87. package/pyatv/docs/documentation/documentation.md +130 -0
  88. package/pyatv/docs/documentation/getting_started.md +248 -0
  89. package/pyatv/docs/documentation/protocols.md +1959 -0
  90. package/pyatv/docs/documentation/supported_features.md +246 -0
  91. package/pyatv/docs/documentation/tutorial.md +1062 -0
  92. package/pyatv/docs/documentation/workspace.code-workspace +7 -0
  93. package/pyatv/docs/favicon.ico +0 -0
  94. package/pyatv/docs/index.md +109 -0
  95. package/pyatv/docs/internals/design.md +354 -0
  96. package/pyatv/docs/internals/documentation.md +84 -0
  97. package/pyatv/docs/internals/interfaces.md +95 -0
  98. package/pyatv/docs/internals/internals.md +157 -0
  99. package/pyatv/docs/internals/submit_pr.md +56 -0
  100. package/pyatv/docs/internals/testing.md +176 -0
  101. package/pyatv/docs/internals/tools.md +574 -0
  102. package/pyatv/docs/pdoc_templates/config.mako +46 -0
  103. package/pyatv/docs/pdoc_templates/html.mako +454 -0
  104. package/pyatv/docs/support/acknowledgements.md +87 -0
  105. package/pyatv/docs/support/faq.md +214 -0
  106. package/pyatv/docs/support/migration.md +138 -0
  107. package/pyatv/docs/support/scanning_issues.md +110 -0
  108. package/pyatv/docs/support/support.md +18 -0
  109. package/pyatv/docs/support/troubleshooting.md +83 -0
  110. package/pyatv/pyatv/protocols/mrp/protobuf/AudioFadeMessage.proto +13 -0
  111. package/pyatv/pyatv/protocols/mrp/protobuf/AudioFadeMessage_pb2.pyi +37 -0
  112. package/pyatv/pyatv/protocols/mrp/protobuf/AudioFadeResponseMessage.proto +11 -0
  113. package/pyatv/pyatv/protocols/mrp/protobuf/AudioFadeResponseMessage_pb2.pyi +32 -0
  114. package/pyatv/pyatv/protocols/mrp/protobuf/AudioFormatSettingsMessage.proto +5 -0
  115. package/pyatv/pyatv/protocols/mrp/protobuf/AudioFormatSettingsMessage_pb2.pyi +27 -0
  116. package/pyatv/pyatv/protocols/mrp/protobuf/ClientUpdatesConfigMessage.proto +16 -0
  117. package/pyatv/pyatv/protocols/mrp/protobuf/ClientUpdatesConfigMessage_pb2.pyi +44 -0
  118. package/pyatv/pyatv/protocols/mrp/protobuf/CommandInfo.proto +117 -0
  119. package/pyatv/pyatv/protocols/mrp/protobuf/CommandInfo_pb2.pyi +325 -0
  120. package/pyatv/pyatv/protocols/mrp/protobuf/CommandOptions.proto +36 -0
  121. package/pyatv/pyatv/protocols/mrp/protobuf/CommandOptions_pb2.pyi +115 -0
  122. package/pyatv/pyatv/protocols/mrp/protobuf/Common.proto +79 -0
  123. package/pyatv/pyatv/protocols/mrp/protobuf/Common_pb2.pyi +228 -0
  124. package/pyatv/pyatv/protocols/mrp/protobuf/ConfigureConnectionMessage.proto +11 -0
  125. package/pyatv/pyatv/protocols/mrp/protobuf/ConfigureConnectionMessage_pb2.pyi +32 -0
  126. package/pyatv/pyatv/protocols/mrp/protobuf/ContentItem.proto +27 -0
  127. package/pyatv/pyatv/protocols/mrp/protobuf/ContentItemMetadata.proto +213 -0
  128. package/pyatv/pyatv/protocols/mrp/protobuf/ContentItemMetadata_pb2.pyi +630 -0
  129. package/pyatv/pyatv/protocols/mrp/protobuf/ContentItem_pb2.pyi +94 -0
  130. package/pyatv/pyatv/protocols/mrp/protobuf/CryptoPairingMessage.proto +15 -0
  131. package/pyatv/pyatv/protocols/mrp/protobuf/CryptoPairingMessage_pb2.pyi +46 -0
  132. package/pyatv/pyatv/protocols/mrp/protobuf/DeviceInfoMessage.proto +69 -0
  133. package/pyatv/pyatv/protocols/mrp/protobuf/DeviceInfoMessage_pb2.pyi +226 -0
  134. package/pyatv/pyatv/protocols/mrp/protobuf/GenericMessage.proto +12 -0
  135. package/pyatv/pyatv/protocols/mrp/protobuf/GenericMessage_pb2.pyi +35 -0
  136. package/pyatv/pyatv/protocols/mrp/protobuf/GetKeyboardSessionMessage.proto +11 -0
  137. package/pyatv/pyatv/protocols/mrp/protobuf/GetKeyboardSessionMessage_pb2.pyi +26 -0
  138. package/pyatv/pyatv/protocols/mrp/protobuf/GetRemoteTextInputSessionMessage.proto +10 -0
  139. package/pyatv/pyatv/protocols/mrp/protobuf/GetRemoteTextInputSessionMessage_pb2.pyi +26 -0
  140. package/pyatv/pyatv/protocols/mrp/protobuf/GetVolumeMessage.proto +11 -0
  141. package/pyatv/pyatv/protocols/mrp/protobuf/GetVolumeMessage_pb2.pyi +32 -0
  142. package/pyatv/pyatv/protocols/mrp/protobuf/GetVolumeResultMessage.proto +11 -0
  143. package/pyatv/pyatv/protocols/mrp/protobuf/GetVolumeResultMessage_pb2.pyi +32 -0
  144. package/pyatv/pyatv/protocols/mrp/protobuf/KeyboardMessage.proto +88 -0
  145. package/pyatv/pyatv/protocols/mrp/protobuf/KeyboardMessage_pb2.pyi +261 -0
  146. package/pyatv/pyatv/protocols/mrp/protobuf/LanguageOption.proto +9 -0
  147. package/pyatv/pyatv/protocols/mrp/protobuf/LanguageOption_pb2.pyi +42 -0
  148. package/pyatv/pyatv/protocols/mrp/protobuf/ModifyOutputContextRequestMessage.proto +23 -0
  149. package/pyatv/pyatv/protocols/mrp/protobuf/ModifyOutputContextRequestMessage_pb2.pyi +86 -0
  150. package/pyatv/pyatv/protocols/mrp/protobuf/NotificationMessage.proto +12 -0
  151. package/pyatv/pyatv/protocols/mrp/protobuf/NotificationMessage_pb2.pyi +38 -0
  152. package/pyatv/pyatv/protocols/mrp/protobuf/NowPlayingClient.proto +12 -0
  153. package/pyatv/pyatv/protocols/mrp/protobuf/NowPlayingClient_pb2.pyi +49 -0
  154. package/pyatv/pyatv/protocols/mrp/protobuf/NowPlayingInfo.proto +24 -0
  155. package/pyatv/pyatv/protocols/mrp/protobuf/NowPlayingInfo_pb2.pyi +79 -0
  156. package/pyatv/pyatv/protocols/mrp/protobuf/NowPlayingPlayer.proto +11 -0
  157. package/pyatv/pyatv/protocols/mrp/protobuf/NowPlayingPlayer_pb2.pyi +45 -0
  158. package/pyatv/pyatv/protocols/mrp/protobuf/Origin.proto +17 -0
  159. package/pyatv/pyatv/protocols/mrp/protobuf/OriginClientPropertiesMessage.proto +11 -0
  160. package/pyatv/pyatv/protocols/mrp/protobuf/OriginClientPropertiesMessage_pb2.pyi +32 -0
  161. package/pyatv/pyatv/protocols/mrp/protobuf/Origin_pb2.pyi +63 -0
  162. package/pyatv/pyatv/protocols/mrp/protobuf/PlaybackQueue.proto +15 -0
  163. package/pyatv/pyatv/protocols/mrp/protobuf/PlaybackQueueCapabilities.proto +7 -0
  164. package/pyatv/pyatv/protocols/mrp/protobuf/PlaybackQueueCapabilities_pb2.pyi +33 -0
  165. package/pyatv/pyatv/protocols/mrp/protobuf/PlaybackQueueContext.proto +5 -0
  166. package/pyatv/pyatv/protocols/mrp/protobuf/PlaybackQueueContext_pb2.pyi +27 -0
  167. package/pyatv/pyatv/protocols/mrp/protobuf/PlaybackQueueRequestMessage.proto +29 -0
  168. package/pyatv/pyatv/protocols/mrp/protobuf/PlaybackQueueRequestMessage_pb2.pyi +87 -0
  169. package/pyatv/pyatv/protocols/mrp/protobuf/PlaybackQueue_pb2.pyi +53 -0
  170. package/pyatv/pyatv/protocols/mrp/protobuf/PlayerClientPropertiesMessage.proto +13 -0
  171. package/pyatv/pyatv/protocols/mrp/protobuf/PlayerClientPropertiesMessage_pb2.pyi +37 -0
  172. package/pyatv/pyatv/protocols/mrp/protobuf/PlayerPath.proto +11 -0
  173. package/pyatv/pyatv/protocols/mrp/protobuf/PlayerPath_pb2.pyi +39 -0
  174. package/pyatv/pyatv/protocols/mrp/protobuf/ProtocolMessage.proto +171 -0
  175. package/pyatv/pyatv/protocols/mrp/protobuf/ProtocolMessage_pb2.pyi +377 -0
  176. package/pyatv/pyatv/protocols/mrp/protobuf/RegisterForGameControllerEventsMessage.proto +18 -0
  177. package/pyatv/pyatv/protocols/mrp/protobuf/RegisterForGameControllerEventsMessage_pb2.pyi +54 -0
  178. package/pyatv/pyatv/protocols/mrp/protobuf/RegisterHIDDeviceMessage.proto +12 -0
  179. package/pyatv/pyatv/protocols/mrp/protobuf/RegisterHIDDeviceMessage_pb2.pyi +34 -0
  180. package/pyatv/pyatv/protocols/mrp/protobuf/RegisterHIDDeviceResultMessage.proto +12 -0
  181. package/pyatv/pyatv/protocols/mrp/protobuf/RegisterHIDDeviceResultMessage_pb2.pyi +35 -0
  182. package/pyatv/pyatv/protocols/mrp/protobuf/RegisterVoiceInputDeviceMessage.proto +12 -0
  183. package/pyatv/pyatv/protocols/mrp/protobuf/RegisterVoiceInputDeviceMessage_pb2.pyi +34 -0
  184. package/pyatv/pyatv/protocols/mrp/protobuf/RegisterVoiceInputDeviceResponseMessage.proto +12 -0
  185. package/pyatv/pyatv/protocols/mrp/protobuf/RegisterVoiceInputDeviceResponseMessage_pb2.pyi +35 -0
  186. package/pyatv/pyatv/protocols/mrp/protobuf/RemoteTextInputMessage.proto +13 -0
  187. package/pyatv/pyatv/protocols/mrp/protobuf/RemoteTextInputMessage_pb2.pyi +38 -0
  188. package/pyatv/pyatv/protocols/mrp/protobuf/RemoveClientMessage.proto +12 -0
  189. package/pyatv/pyatv/protocols/mrp/protobuf/RemoveClientMessage_pb2.pyi +34 -0
  190. package/pyatv/pyatv/protocols/mrp/protobuf/RemoveEndpointsMessage.proto +11 -0
  191. package/pyatv/pyatv/protocols/mrp/protobuf/RemoveEndpointsMessage_pb2.pyi +34 -0
  192. package/pyatv/pyatv/protocols/mrp/protobuf/RemoveOutputDevicesMessage.proto +12 -0
  193. package/pyatv/pyatv/protocols/mrp/protobuf/RemoveOutputDevicesMessage_pb2.pyi +38 -0
  194. package/pyatv/pyatv/protocols/mrp/protobuf/RemovePlayerMessage.proto +12 -0
  195. package/pyatv/pyatv/protocols/mrp/protobuf/RemovePlayerMessage_pb2.pyi +34 -0
  196. package/pyatv/pyatv/protocols/mrp/protobuf/SendButtonEventMessage.proto +13 -0
  197. package/pyatv/pyatv/protocols/mrp/protobuf/SendButtonEventMessage_pb2.pyi +38 -0
  198. package/pyatv/pyatv/protocols/mrp/protobuf/SendCommandMessage.proto +16 -0
  199. package/pyatv/pyatv/protocols/mrp/protobuf/SendCommandMessage_pb2.pyi +43 -0
  200. package/pyatv/pyatv/protocols/mrp/protobuf/SendCommandResultMessage.proto +100 -0
  201. package/pyatv/pyatv/protocols/mrp/protobuf/SendCommandResultMessage_pb2.pyi +286 -0
  202. package/pyatv/pyatv/protocols/mrp/protobuf/SendHIDEventMessage.proto +41 -0
  203. package/pyatv/pyatv/protocols/mrp/protobuf/SendHIDEventMessage_pb2.pyi +63 -0
  204. package/pyatv/pyatv/protocols/mrp/protobuf/SendPackedVirtualTouchEventMessage.proto +24 -0
  205. package/pyatv/pyatv/protocols/mrp/protobuf/SendPackedVirtualTouchEventMessage_pb2.pyi +64 -0
  206. package/pyatv/pyatv/protocols/mrp/protobuf/SendVoiceInputMessage.proto +38 -0
  207. package/pyatv/pyatv/protocols/mrp/protobuf/SendVoiceInputMessage_pb2.pyi +134 -0
  208. package/pyatv/pyatv/protocols/mrp/protobuf/SetArtworkMessage.proto +11 -0
  209. package/pyatv/pyatv/protocols/mrp/protobuf/SetArtworkMessage_pb2.pyi +32 -0
  210. package/pyatv/pyatv/protocols/mrp/protobuf/SetConnectionStateMessage.proto +18 -0
  211. package/pyatv/pyatv/protocols/mrp/protobuf/SetConnectionStateMessage_pb2.pyi +54 -0
  212. package/pyatv/pyatv/protocols/mrp/protobuf/SetDefaultSupportedCommandsMessage.proto +28 -0
  213. package/pyatv/pyatv/protocols/mrp/protobuf/SetDefaultSupportedCommandsMessage_pb2.pyi +74 -0
  214. package/pyatv/pyatv/protocols/mrp/protobuf/SetDiscoveryModeMessage.proto +12 -0
  215. package/pyatv/pyatv/protocols/mrp/protobuf/SetDiscoveryModeMessage_pb2.pyi +35 -0
  216. package/pyatv/pyatv/protocols/mrp/protobuf/SetHiliteModeMessage.proto +11 -0
  217. package/pyatv/pyatv/protocols/mrp/protobuf/SetHiliteModeMessage_pb2.pyi +32 -0
  218. package/pyatv/pyatv/protocols/mrp/protobuf/SetNowPlayingClientMessage.proto +12 -0
  219. package/pyatv/pyatv/protocols/mrp/protobuf/SetNowPlayingClientMessage_pb2.pyi +34 -0
  220. package/pyatv/pyatv/protocols/mrp/protobuf/SetNowPlayingPlayerMessage.proto +12 -0
  221. package/pyatv/pyatv/protocols/mrp/protobuf/SetNowPlayingPlayerMessage_pb2.pyi +34 -0
  222. package/pyatv/pyatv/protocols/mrp/protobuf/SetRecordingStateMessage.proto +17 -0
  223. package/pyatv/pyatv/protocols/mrp/protobuf/SetRecordingStateMessage_pb2.pyi +54 -0
  224. package/pyatv/pyatv/protocols/mrp/protobuf/SetStateMessage.proto +27 -0
  225. package/pyatv/pyatv/protocols/mrp/protobuf/SetStateMessage_pb2.pyi +72 -0
  226. package/pyatv/pyatv/protocols/mrp/protobuf/SetVolumeMessage.proto +12 -0
  227. package/pyatv/pyatv/protocols/mrp/protobuf/SetVolumeMessage_pb2.pyi +35 -0
  228. package/pyatv/pyatv/protocols/mrp/protobuf/SupportedCommands.proto +7 -0
  229. package/pyatv/pyatv/protocols/mrp/protobuf/SupportedCommands_pb2.pyi +30 -0
  230. package/pyatv/pyatv/protocols/mrp/protobuf/TextInputMessage.proto +23 -0
  231. package/pyatv/pyatv/protocols/mrp/protobuf/TextInputMessage_pb2.pyi +76 -0
  232. package/pyatv/pyatv/protocols/mrp/protobuf/TransactionKey.proto +6 -0
  233. package/pyatv/pyatv/protocols/mrp/protobuf/TransactionKey_pb2.pyi +30 -0
  234. package/pyatv/pyatv/protocols/mrp/protobuf/TransactionMessage.proto +15 -0
  235. package/pyatv/pyatv/protocols/mrp/protobuf/TransactionMessage_pb2.pyi +42 -0
  236. package/pyatv/pyatv/protocols/mrp/protobuf/TransactionPacket.proto +11 -0
  237. package/pyatv/pyatv/protocols/mrp/protobuf/TransactionPacket_pb2.pyi +41 -0
  238. package/pyatv/pyatv/protocols/mrp/protobuf/TransactionPackets.proto +7 -0
  239. package/pyatv/pyatv/protocols/mrp/protobuf/TransactionPackets_pb2.pyi +30 -0
  240. package/pyatv/pyatv/protocols/mrp/protobuf/UpdateClientMessage.proto +12 -0
  241. package/pyatv/pyatv/protocols/mrp/protobuf/UpdateClientMessage_pb2.pyi +34 -0
  242. package/pyatv/pyatv/protocols/mrp/protobuf/UpdateContentItemArtworkMessage.proto +14 -0
  243. package/pyatv/pyatv/protocols/mrp/protobuf/UpdateContentItemArtworkMessage_pb2.pyi +41 -0
  244. package/pyatv/pyatv/protocols/mrp/protobuf/UpdateContentItemMessage.proto +14 -0
  245. package/pyatv/pyatv/protocols/mrp/protobuf/UpdateContentItemMessage_pb2.pyi +41 -0
  246. package/pyatv/pyatv/protocols/mrp/protobuf/UpdateEndPointsMessage.proto +25 -0
  247. package/pyatv/pyatv/protocols/mrp/protobuf/UpdateEndPointsMessage_pb2.pyi +74 -0
  248. package/pyatv/pyatv/protocols/mrp/protobuf/UpdateOutputDeviceMessage.proto +88 -0
  249. package/pyatv/pyatv/protocols/mrp/protobuf/UpdateOutputDeviceMessage_pb2.pyi +277 -0
  250. package/pyatv/pyatv/protocols/mrp/protobuf/UpdatePlayerPath.proto +12 -0
  251. package/pyatv/pyatv/protocols/mrp/protobuf/UpdatePlayerPath_pb2.pyi +34 -0
  252. package/pyatv/pyatv/protocols/mrp/protobuf/VirtualTouchDeviceDescriptorMessage.proto +8 -0
  253. package/pyatv/pyatv/protocols/mrp/protobuf/VirtualTouchDeviceDescriptorMessage_pb2.pyi +36 -0
  254. package/pyatv/pyatv/protocols/mrp/protobuf/VoiceInputDeviceDescriptorMessage.proto +8 -0
  255. package/pyatv/pyatv/protocols/mrp/protobuf/VoiceInputDeviceDescriptorMessage_pb2.pyi +35 -0
  256. package/pyatv/pyatv/protocols/mrp/protobuf/VolumeControlAvailabilityMessage.proto +23 -0
  257. package/pyatv/pyatv/protocols/mrp/protobuf/VolumeControlAvailabilityMessage_pb2.pyi +71 -0
  258. package/pyatv/pyatv/protocols/mrp/protobuf/VolumeControlCapabilitiesDidChangeMessage.proto +14 -0
  259. package/pyatv/pyatv/protocols/mrp/protobuf/VolumeControlCapabilitiesDidChangeMessage_pb2.pyi +40 -0
  260. package/pyatv/pyatv/protocols/mrp/protobuf/VolumeDidChangeMessage.proto +13 -0
  261. package/pyatv/pyatv/protocols/mrp/protobuf/VolumeDidChangeMessage_pb2.pyi +38 -0
  262. package/pyatv/pyatv/protocols/mrp/protobuf/WakeDeviceMessage.proto +11 -0
  263. package/pyatv/pyatv/protocols/mrp/protobuf/WakeDeviceMessage_pb2.pyi +26 -0
  264. package/pyatv/pyatv/py.typed +0 -0
  265. package/pyatv/pylintrc +49 -0
  266. package/pyatv/pyproject.toml +74 -0
  267. package/pyatv/requirements/requirements.txt +14 -0
  268. package/pyatv/requirements/requirements_docs.txt +2 -0
  269. package/pyatv/requirements/requirements_test.txt +20 -0
  270. package/pyatv/scripts/build_docs.sh +17 -0
  271. package/pyatv/scripts/setup_dev_env.sh +83 -0
  272. package/pyatv/setup.cfg +14 -0
  273. package/pyatv/tests/data/README +23 -0
  274. package/pyatv/tests/data/audio_10_frames.wav +0 -0
  275. package/pyatv/tests/data/audio_1_packet_metadata.wav +0 -0
  276. package/pyatv/tests/data/audio_3_packets.wav +0 -0
  277. package/pyatv/tests/data/only_metadata.wav +0 -0
  278. package/pyatv/tests/data/only_title.wav +0 -0
  279. package/pyatv/tests/data/static_3sec.ogg +0 -0
  280. package/pyatv/tests/data/testfile.txt +1 -0
  281. package/pyatv/tests/support/pyatv.code-workspace +14 -0
  282. package/src/index.ts +122 -8
  283. package/src/mdns.ts +64 -11
@@ -0,0 +1,94 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+
6
+ import builtins
7
+ import collections.abc
8
+ import google.protobuf.descriptor
9
+ import google.protobuf.internal.containers
10
+ import google.protobuf.message
11
+ import pyatv.protocols.mrp.protobuf.ContentItemMetadata_pb2
12
+ import pyatv.protocols.mrp.protobuf.LanguageOption_pb2
13
+ import typing
14
+
15
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
16
+
17
+ @typing.final
18
+ class LanguageOptionGroup(google.protobuf.message.Message):
19
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
20
+
21
+ ALLOWEMPTYSELECTION_FIELD_NUMBER: builtins.int
22
+ DEFAULTLANGUAGEOPTION_FIELD_NUMBER: builtins.int
23
+ LANGUAGEOPTIONS_FIELD_NUMBER: builtins.int
24
+ allowEmptySelection: builtins.bool
25
+ @property
26
+ def defaultLanguageOption(self) -> pyatv.protocols.mrp.protobuf.LanguageOption_pb2.LanguageOption: ...
27
+ @property
28
+ def languageOptions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[pyatv.protocols.mrp.protobuf.LanguageOption_pb2.LanguageOption]: ...
29
+ def __init__(
30
+ self,
31
+ *,
32
+ allowEmptySelection: builtins.bool | None = ...,
33
+ defaultLanguageOption: pyatv.protocols.mrp.protobuf.LanguageOption_pb2.LanguageOption | None = ...,
34
+ languageOptions: collections.abc.Iterable[pyatv.protocols.mrp.protobuf.LanguageOption_pb2.LanguageOption] | None = ...,
35
+ ) -> None: ...
36
+ def HasField(self, field_name: typing.Literal["allowEmptySelection", b"allowEmptySelection", "defaultLanguageOption", b"defaultLanguageOption"]) -> builtins.bool: ...
37
+ def ClearField(self, field_name: typing.Literal["allowEmptySelection", b"allowEmptySelection", "defaultLanguageOption", b"defaultLanguageOption", "languageOptions", b"languageOptions"]) -> None: ...
38
+
39
+ global___LanguageOptionGroup = LanguageOptionGroup
40
+
41
+ @typing.final
42
+ class ContentItem(google.protobuf.message.Message):
43
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
44
+
45
+ IDENTIFIER_FIELD_NUMBER: builtins.int
46
+ METADATA_FIELD_NUMBER: builtins.int
47
+ ARTWORKDATA_FIELD_NUMBER: builtins.int
48
+ INFO_FIELD_NUMBER: builtins.int
49
+ AVAILABLELANGUAGEOPTIONS_FIELD_NUMBER: builtins.int
50
+ CURRENTLANGUAGEOPTIONS_FIELD_NUMBER: builtins.int
51
+ PARENTIDENTIFIER_FIELD_NUMBER: builtins.int
52
+ ANCESTORIDENTIFIER_FIELD_NUMBER: builtins.int
53
+ QUEUEIDENTIFIER_FIELD_NUMBER: builtins.int
54
+ REQUESTIDENTIFIER_FIELD_NUMBER: builtins.int
55
+ ARTWORKDATAWIDTH_FIELD_NUMBER: builtins.int
56
+ ARTWORKDATAHEIGHT_FIELD_NUMBER: builtins.int
57
+ identifier: builtins.str
58
+ artworkData: builtins.bytes
59
+ info: builtins.str
60
+ parentIdentifier: builtins.str
61
+ """ optional Lyrics lyrics = 7;
62
+ repeated Sections sections = 8;
63
+ """
64
+ ancestorIdentifier: builtins.str
65
+ queueIdentifier: builtins.str
66
+ requestIdentifier: builtins.str
67
+ artworkDataWidth: builtins.int
68
+ artworkDataHeight: builtins.int
69
+ @property
70
+ def metadata(self) -> pyatv.protocols.mrp.protobuf.ContentItemMetadata_pb2.ContentItemMetadata: ...
71
+ @property
72
+ def availableLanguageOptions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___LanguageOptionGroup]: ...
73
+ @property
74
+ def currentLanguageOptions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[pyatv.protocols.mrp.protobuf.LanguageOption_pb2.LanguageOption]: ...
75
+ def __init__(
76
+ self,
77
+ *,
78
+ identifier: builtins.str | None = ...,
79
+ metadata: pyatv.protocols.mrp.protobuf.ContentItemMetadata_pb2.ContentItemMetadata | None = ...,
80
+ artworkData: builtins.bytes | None = ...,
81
+ info: builtins.str | None = ...,
82
+ availableLanguageOptions: collections.abc.Iterable[global___LanguageOptionGroup] | None = ...,
83
+ currentLanguageOptions: collections.abc.Iterable[pyatv.protocols.mrp.protobuf.LanguageOption_pb2.LanguageOption] | None = ...,
84
+ parentIdentifier: builtins.str | None = ...,
85
+ ancestorIdentifier: builtins.str | None = ...,
86
+ queueIdentifier: builtins.str | None = ...,
87
+ requestIdentifier: builtins.str | None = ...,
88
+ artworkDataWidth: builtins.int | None = ...,
89
+ artworkDataHeight: builtins.int | None = ...,
90
+ ) -> None: ...
91
+ def HasField(self, field_name: typing.Literal["ancestorIdentifier", b"ancestorIdentifier", "artworkData", b"artworkData", "artworkDataHeight", b"artworkDataHeight", "artworkDataWidth", b"artworkDataWidth", "identifier", b"identifier", "info", b"info", "metadata", b"metadata", "parentIdentifier", b"parentIdentifier", "queueIdentifier", b"queueIdentifier", "requestIdentifier", b"requestIdentifier"]) -> builtins.bool: ...
92
+ def ClearField(self, field_name: typing.Literal["ancestorIdentifier", b"ancestorIdentifier", "artworkData", b"artworkData", "artworkDataHeight", b"artworkDataHeight", "artworkDataWidth", b"artworkDataWidth", "availableLanguageOptions", b"availableLanguageOptions", "currentLanguageOptions", b"currentLanguageOptions", "identifier", b"identifier", "info", b"info", "metadata", b"metadata", "parentIdentifier", b"parentIdentifier", "queueIdentifier", b"queueIdentifier", "requestIdentifier", b"requestIdentifier"]) -> None: ...
93
+
94
+ global___ContentItem = ContentItem
@@ -0,0 +1,15 @@
1
+ syntax = "proto2";
2
+
3
+ import "pyatv/protocols/mrp/protobuf/ProtocolMessage.proto";
4
+
5
+ extend ProtocolMessage {
6
+ optional CryptoPairingMessage cryptoPairingMessage = 39;
7
+ }
8
+
9
+ message CryptoPairingMessage {
10
+ optional bytes pairingData = 1; // Example: <00010006 0101>
11
+ optional int32 status = 2; // Example: 0
12
+ optional bool isRetrying = 3;
13
+ optional bool isUsingSystemPairing = 4;
14
+ optional int32 state = 5;
15
+ }
@@ -0,0 +1,46 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+
6
+ import builtins
7
+ import google.protobuf.descriptor
8
+ import google.protobuf.internal.extension_dict
9
+ import google.protobuf.message
10
+ import pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2
11
+ import typing
12
+
13
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
14
+
15
+ @typing.final
16
+ class CryptoPairingMessage(google.protobuf.message.Message):
17
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
18
+
19
+ PAIRINGDATA_FIELD_NUMBER: builtins.int
20
+ STATUS_FIELD_NUMBER: builtins.int
21
+ ISRETRYING_FIELD_NUMBER: builtins.int
22
+ ISUSINGSYSTEMPAIRING_FIELD_NUMBER: builtins.int
23
+ STATE_FIELD_NUMBER: builtins.int
24
+ pairingData: builtins.bytes
25
+ """Example: <00010006 0101>"""
26
+ status: builtins.int
27
+ """Example: 0"""
28
+ isRetrying: builtins.bool
29
+ isUsingSystemPairing: builtins.bool
30
+ state: builtins.int
31
+ def __init__(
32
+ self,
33
+ *,
34
+ pairingData: builtins.bytes | None = ...,
35
+ status: builtins.int | None = ...,
36
+ isRetrying: builtins.bool | None = ...,
37
+ isUsingSystemPairing: builtins.bool | None = ...,
38
+ state: builtins.int | None = ...,
39
+ ) -> None: ...
40
+ def HasField(self, field_name: typing.Literal["isRetrying", b"isRetrying", "isUsingSystemPairing", b"isUsingSystemPairing", "pairingData", b"pairingData", "state", b"state", "status", b"status"]) -> builtins.bool: ...
41
+ def ClearField(self, field_name: typing.Literal["isRetrying", b"isRetrying", "isUsingSystemPairing", b"isUsingSystemPairing", "pairingData", b"pairingData", "state", b"state", "status", b"status"]) -> None: ...
42
+
43
+ global___CryptoPairingMessage = CryptoPairingMessage
44
+
45
+ CRYPTOPAIRINGMESSAGE_FIELD_NUMBER: builtins.int
46
+ cryptoPairingMessage: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2.ProtocolMessage, global___CryptoPairingMessage]
@@ -0,0 +1,69 @@
1
+ syntax = "proto2";
2
+
3
+ import "pyatv/protocols/mrp/protobuf/ProtocolMessage.proto";
4
+ import "pyatv/protocols/mrp/protobuf/Common.proto";
5
+
6
+ extend ProtocolMessage {
7
+ optional DeviceInfoMessage deviceInfoMessage = 20;
8
+ }
9
+
10
+ message PreferredEncoding {
11
+ enum Enum {
12
+ Default = 0;
13
+ JSON = 1;
14
+ }
15
+ }
16
+
17
+ message DeviceInfoMessage {
18
+ optional string uniqueIdentifier = 1; // Example: B8D8678C-9DA9-4D29-9338-5D6B827B8063
19
+ required string name = 2; // Example: Jean's iPhone
20
+ optional string localizedModelName = 3; // Example: iPhone
21
+ optional string systemBuildVersion = 4; // Example: 13F69
22
+ optional string applicationBundleIdentifier = 5; // Example: com.example.myremote
23
+ optional string applicationBundleVersion = 6; // Example: 107
24
+ optional int32 protocolVersion = 7; // Example: 1
25
+ optional uint32 lastSupportedMessageType = 8;
26
+ optional bool supportsSystemPairing = 9;
27
+ optional bool allowsPairing = 10;
28
+ optional bool connected = 11;
29
+ optional string systemMediaApplication = 12;
30
+ optional bool supportsACL = 13;
31
+ optional bool supportsSharedQueue = 14;
32
+ optional bool supportsExtendedMotion = 15;
33
+ optional bytes bluetoothAddress = 16;
34
+ optional uint32 sharedQueueVersion = 17;
35
+ optional string deviceUID = 19;
36
+ optional string managedConfigDeviceID = 20;
37
+ optional DeviceClass.Enum deviceClass = 21;
38
+ optional uint32 logicalDeviceCount = 22;
39
+ optional bool tightlySyncedGroup = 23;
40
+ optional bool isProxyGroupPlayer = 24;
41
+ optional string tightSyncUID = 25;
42
+ optional string groupUID = 26;
43
+ optional string groupName = 27;
44
+ repeated DeviceInfoMessage groupedDevices = 28;
45
+ optional bool isGroupLeader = 29;
46
+ optional bool isAirplayActive = 30;
47
+ optional string systemPodcastApplication = 31;
48
+ optional string senderDefaultGroupUID = 32;
49
+ repeated string airplayReceivers = 33;
50
+ optional string linkAgent = 34;
51
+ optional string clusterID = 35;
52
+ optional string clusterLeaderID = 36;
53
+ optional uint32 clusterType = 37;
54
+ optional bool isClusterAware = 38;
55
+ optional string modelID = 39;
56
+ optional bool supportsMultiplayer = 40;
57
+ optional string routingContextID = 41; // Example: 577E1BCA-2D9B-41C2-A8F8-C515CE8072D4
58
+ optional string airPlayGroupID = 42; // Example: 6E0ED14E-0BA4-4A84-AF30-9EB080E7AA73
59
+ optional string systemBooksApplication = 43; // Example: com.apple.iBooks
60
+ repeated DeviceInfoMessage clusteredDevices = 44;
61
+ optional uint32 parentGroupContainsDiscoverableGroupLeader = 45;
62
+ optional uint32 groupContainsDiscoverableGroupLeader = 46;
63
+ optional uint32 lastKnownClusterType = 47;
64
+ // repeated ... allClusteredDevices = 48;
65
+ optional bool supportsOutputContextSync = 49;
66
+ optional string computerName = 50;
67
+ optional uint32 configuredClusterSize = 51;
68
+ optional PreferredEncoding.Enum preferredEncoding = 52;
69
+ }
@@ -0,0 +1,226 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+
6
+ import builtins
7
+ import collections.abc
8
+ import google.protobuf.descriptor
9
+ import google.protobuf.internal.containers
10
+ import google.protobuf.internal.enum_type_wrapper
11
+ import google.protobuf.internal.extension_dict
12
+ import google.protobuf.message
13
+ import pyatv.protocols.mrp.protobuf.Common_pb2
14
+ import pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2
15
+ import sys
16
+ import typing
17
+
18
+ if sys.version_info >= (3, 10):
19
+ import typing as typing_extensions
20
+ else:
21
+ import typing_extensions
22
+
23
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
24
+
25
+ @typing.final
26
+ class PreferredEncoding(google.protobuf.message.Message):
27
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
28
+
29
+ class _Enum:
30
+ ValueType = typing.NewType("ValueType", builtins.int)
31
+ V: typing_extensions.TypeAlias = ValueType
32
+
33
+ class _EnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[PreferredEncoding._Enum.ValueType], builtins.type):
34
+ DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
35
+ Default: PreferredEncoding._Enum.ValueType # 0
36
+ JSON: PreferredEncoding._Enum.ValueType # 1
37
+
38
+ class Enum(_Enum, metaclass=_EnumEnumTypeWrapper): ...
39
+ Default: PreferredEncoding.Enum.ValueType # 0
40
+ JSON: PreferredEncoding.Enum.ValueType # 1
41
+
42
+ def __init__(
43
+ self,
44
+ ) -> None: ...
45
+
46
+ global___PreferredEncoding = PreferredEncoding
47
+
48
+ @typing.final
49
+ class DeviceInfoMessage(google.protobuf.message.Message):
50
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
51
+
52
+ UNIQUEIDENTIFIER_FIELD_NUMBER: builtins.int
53
+ NAME_FIELD_NUMBER: builtins.int
54
+ LOCALIZEDMODELNAME_FIELD_NUMBER: builtins.int
55
+ SYSTEMBUILDVERSION_FIELD_NUMBER: builtins.int
56
+ APPLICATIONBUNDLEIDENTIFIER_FIELD_NUMBER: builtins.int
57
+ APPLICATIONBUNDLEVERSION_FIELD_NUMBER: builtins.int
58
+ PROTOCOLVERSION_FIELD_NUMBER: builtins.int
59
+ LASTSUPPORTEDMESSAGETYPE_FIELD_NUMBER: builtins.int
60
+ SUPPORTSSYSTEMPAIRING_FIELD_NUMBER: builtins.int
61
+ ALLOWSPAIRING_FIELD_NUMBER: builtins.int
62
+ CONNECTED_FIELD_NUMBER: builtins.int
63
+ SYSTEMMEDIAAPPLICATION_FIELD_NUMBER: builtins.int
64
+ SUPPORTSACL_FIELD_NUMBER: builtins.int
65
+ SUPPORTSSHAREDQUEUE_FIELD_NUMBER: builtins.int
66
+ SUPPORTSEXTENDEDMOTION_FIELD_NUMBER: builtins.int
67
+ BLUETOOTHADDRESS_FIELD_NUMBER: builtins.int
68
+ SHAREDQUEUEVERSION_FIELD_NUMBER: builtins.int
69
+ DEVICEUID_FIELD_NUMBER: builtins.int
70
+ MANAGEDCONFIGDEVICEID_FIELD_NUMBER: builtins.int
71
+ DEVICECLASS_FIELD_NUMBER: builtins.int
72
+ LOGICALDEVICECOUNT_FIELD_NUMBER: builtins.int
73
+ TIGHTLYSYNCEDGROUP_FIELD_NUMBER: builtins.int
74
+ ISPROXYGROUPPLAYER_FIELD_NUMBER: builtins.int
75
+ TIGHTSYNCUID_FIELD_NUMBER: builtins.int
76
+ GROUPUID_FIELD_NUMBER: builtins.int
77
+ GROUPNAME_FIELD_NUMBER: builtins.int
78
+ GROUPEDDEVICES_FIELD_NUMBER: builtins.int
79
+ ISGROUPLEADER_FIELD_NUMBER: builtins.int
80
+ ISAIRPLAYACTIVE_FIELD_NUMBER: builtins.int
81
+ SYSTEMPODCASTAPPLICATION_FIELD_NUMBER: builtins.int
82
+ SENDERDEFAULTGROUPUID_FIELD_NUMBER: builtins.int
83
+ AIRPLAYRECEIVERS_FIELD_NUMBER: builtins.int
84
+ LINKAGENT_FIELD_NUMBER: builtins.int
85
+ CLUSTERID_FIELD_NUMBER: builtins.int
86
+ CLUSTERLEADERID_FIELD_NUMBER: builtins.int
87
+ CLUSTERTYPE_FIELD_NUMBER: builtins.int
88
+ ISCLUSTERAWARE_FIELD_NUMBER: builtins.int
89
+ MODELID_FIELD_NUMBER: builtins.int
90
+ SUPPORTSMULTIPLAYER_FIELD_NUMBER: builtins.int
91
+ ROUTINGCONTEXTID_FIELD_NUMBER: builtins.int
92
+ AIRPLAYGROUPID_FIELD_NUMBER: builtins.int
93
+ SYSTEMBOOKSAPPLICATION_FIELD_NUMBER: builtins.int
94
+ CLUSTEREDDEVICES_FIELD_NUMBER: builtins.int
95
+ PARENTGROUPCONTAINSDISCOVERABLEGROUPLEADER_FIELD_NUMBER: builtins.int
96
+ GROUPCONTAINSDISCOVERABLEGROUPLEADER_FIELD_NUMBER: builtins.int
97
+ LASTKNOWNCLUSTERTYPE_FIELD_NUMBER: builtins.int
98
+ SUPPORTSOUTPUTCONTEXTSYNC_FIELD_NUMBER: builtins.int
99
+ COMPUTERNAME_FIELD_NUMBER: builtins.int
100
+ CONFIGUREDCLUSTERSIZE_FIELD_NUMBER: builtins.int
101
+ PREFERREDENCODING_FIELD_NUMBER: builtins.int
102
+ uniqueIdentifier: builtins.str
103
+ """Example: B8D8678C-9DA9-4D29-9338-5D6B827B8063"""
104
+ name: builtins.str
105
+ """Example: Jean's iPhone"""
106
+ localizedModelName: builtins.str
107
+ """Example: iPhone"""
108
+ systemBuildVersion: builtins.str
109
+ """Example: 13F69"""
110
+ applicationBundleIdentifier: builtins.str
111
+ """Example: com.example.myremote"""
112
+ applicationBundleVersion: builtins.str
113
+ """Example: 107"""
114
+ protocolVersion: builtins.int
115
+ """Example: 1"""
116
+ lastSupportedMessageType: builtins.int
117
+ supportsSystemPairing: builtins.bool
118
+ allowsPairing: builtins.bool
119
+ connected: builtins.bool
120
+ systemMediaApplication: builtins.str
121
+ supportsACL: builtins.bool
122
+ supportsSharedQueue: builtins.bool
123
+ supportsExtendedMotion: builtins.bool
124
+ bluetoothAddress: builtins.bytes
125
+ sharedQueueVersion: builtins.int
126
+ deviceUID: builtins.str
127
+ managedConfigDeviceID: builtins.str
128
+ deviceClass: pyatv.protocols.mrp.protobuf.Common_pb2.DeviceClass.Enum.ValueType
129
+ logicalDeviceCount: builtins.int
130
+ tightlySyncedGroup: builtins.bool
131
+ isProxyGroupPlayer: builtins.bool
132
+ tightSyncUID: builtins.str
133
+ groupUID: builtins.str
134
+ groupName: builtins.str
135
+ isGroupLeader: builtins.bool
136
+ isAirplayActive: builtins.bool
137
+ systemPodcastApplication: builtins.str
138
+ senderDefaultGroupUID: builtins.str
139
+ linkAgent: builtins.str
140
+ clusterID: builtins.str
141
+ clusterLeaderID: builtins.str
142
+ clusterType: builtins.int
143
+ isClusterAware: builtins.bool
144
+ modelID: builtins.str
145
+ supportsMultiplayer: builtins.bool
146
+ routingContextID: builtins.str
147
+ """Example: 577E1BCA-2D9B-41C2-A8F8-C515CE8072D4"""
148
+ airPlayGroupID: builtins.str
149
+ """Example: 6E0ED14E-0BA4-4A84-AF30-9EB080E7AA73"""
150
+ systemBooksApplication: builtins.str
151
+ """Example: com.apple.iBooks"""
152
+ parentGroupContainsDiscoverableGroupLeader: builtins.int
153
+ groupContainsDiscoverableGroupLeader: builtins.int
154
+ lastKnownClusterType: builtins.int
155
+ supportsOutputContextSync: builtins.bool
156
+ """repeated ... allClusteredDevices = 48;"""
157
+ computerName: builtins.str
158
+ configuredClusterSize: builtins.int
159
+ preferredEncoding: global___PreferredEncoding.Enum.ValueType
160
+ @property
161
+ def groupedDevices(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DeviceInfoMessage]: ...
162
+ @property
163
+ def airplayReceivers(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
164
+ @property
165
+ def clusteredDevices(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DeviceInfoMessage]: ...
166
+ def __init__(
167
+ self,
168
+ *,
169
+ uniqueIdentifier: builtins.str | None = ...,
170
+ name: builtins.str | None = ...,
171
+ localizedModelName: builtins.str | None = ...,
172
+ systemBuildVersion: builtins.str | None = ...,
173
+ applicationBundleIdentifier: builtins.str | None = ...,
174
+ applicationBundleVersion: builtins.str | None = ...,
175
+ protocolVersion: builtins.int | None = ...,
176
+ lastSupportedMessageType: builtins.int | None = ...,
177
+ supportsSystemPairing: builtins.bool | None = ...,
178
+ allowsPairing: builtins.bool | None = ...,
179
+ connected: builtins.bool | None = ...,
180
+ systemMediaApplication: builtins.str | None = ...,
181
+ supportsACL: builtins.bool | None = ...,
182
+ supportsSharedQueue: builtins.bool | None = ...,
183
+ supportsExtendedMotion: builtins.bool | None = ...,
184
+ bluetoothAddress: builtins.bytes | None = ...,
185
+ sharedQueueVersion: builtins.int | None = ...,
186
+ deviceUID: builtins.str | None = ...,
187
+ managedConfigDeviceID: builtins.str | None = ...,
188
+ deviceClass: pyatv.protocols.mrp.protobuf.Common_pb2.DeviceClass.Enum.ValueType | None = ...,
189
+ logicalDeviceCount: builtins.int | None = ...,
190
+ tightlySyncedGroup: builtins.bool | None = ...,
191
+ isProxyGroupPlayer: builtins.bool | None = ...,
192
+ tightSyncUID: builtins.str | None = ...,
193
+ groupUID: builtins.str | None = ...,
194
+ groupName: builtins.str | None = ...,
195
+ groupedDevices: collections.abc.Iterable[global___DeviceInfoMessage] | None = ...,
196
+ isGroupLeader: builtins.bool | None = ...,
197
+ isAirplayActive: builtins.bool | None = ...,
198
+ systemPodcastApplication: builtins.str | None = ...,
199
+ senderDefaultGroupUID: builtins.str | None = ...,
200
+ airplayReceivers: collections.abc.Iterable[builtins.str] | None = ...,
201
+ linkAgent: builtins.str | None = ...,
202
+ clusterID: builtins.str | None = ...,
203
+ clusterLeaderID: builtins.str | None = ...,
204
+ clusterType: builtins.int | None = ...,
205
+ isClusterAware: builtins.bool | None = ...,
206
+ modelID: builtins.str | None = ...,
207
+ supportsMultiplayer: builtins.bool | None = ...,
208
+ routingContextID: builtins.str | None = ...,
209
+ airPlayGroupID: builtins.str | None = ...,
210
+ systemBooksApplication: builtins.str | None = ...,
211
+ clusteredDevices: collections.abc.Iterable[global___DeviceInfoMessage] | None = ...,
212
+ parentGroupContainsDiscoverableGroupLeader: builtins.int | None = ...,
213
+ groupContainsDiscoverableGroupLeader: builtins.int | None = ...,
214
+ lastKnownClusterType: builtins.int | None = ...,
215
+ supportsOutputContextSync: builtins.bool | None = ...,
216
+ computerName: builtins.str | None = ...,
217
+ configuredClusterSize: builtins.int | None = ...,
218
+ preferredEncoding: global___PreferredEncoding.Enum.ValueType | None = ...,
219
+ ) -> None: ...
220
+ def HasField(self, field_name: typing.Literal["airPlayGroupID", b"airPlayGroupID", "allowsPairing", b"allowsPairing", "applicationBundleIdentifier", b"applicationBundleIdentifier", "applicationBundleVersion", b"applicationBundleVersion", "bluetoothAddress", b"bluetoothAddress", "clusterID", b"clusterID", "clusterLeaderID", b"clusterLeaderID", "clusterType", b"clusterType", "computerName", b"computerName", "configuredClusterSize", b"configuredClusterSize", "connected", b"connected", "deviceClass", b"deviceClass", "deviceUID", b"deviceUID", "groupContainsDiscoverableGroupLeader", b"groupContainsDiscoverableGroupLeader", "groupName", b"groupName", "groupUID", b"groupUID", "isAirplayActive", b"isAirplayActive", "isClusterAware", b"isClusterAware", "isGroupLeader", b"isGroupLeader", "isProxyGroupPlayer", b"isProxyGroupPlayer", "lastKnownClusterType", b"lastKnownClusterType", "lastSupportedMessageType", b"lastSupportedMessageType", "linkAgent", b"linkAgent", "localizedModelName", b"localizedModelName", "logicalDeviceCount", b"logicalDeviceCount", "managedConfigDeviceID", b"managedConfigDeviceID", "modelID", b"modelID", "name", b"name", "parentGroupContainsDiscoverableGroupLeader", b"parentGroupContainsDiscoverableGroupLeader", "preferredEncoding", b"preferredEncoding", "protocolVersion", b"protocolVersion", "routingContextID", b"routingContextID", "senderDefaultGroupUID", b"senderDefaultGroupUID", "sharedQueueVersion", b"sharedQueueVersion", "supportsACL", b"supportsACL", "supportsExtendedMotion", b"supportsExtendedMotion", "supportsMultiplayer", b"supportsMultiplayer", "supportsOutputContextSync", b"supportsOutputContextSync", "supportsSharedQueue", b"supportsSharedQueue", "supportsSystemPairing", b"supportsSystemPairing", "systemBooksApplication", b"systemBooksApplication", "systemBuildVersion", b"systemBuildVersion", "systemMediaApplication", b"systemMediaApplication", "systemPodcastApplication", b"systemPodcastApplication", "tightSyncUID", b"tightSyncUID", "tightlySyncedGroup", b"tightlySyncedGroup", "uniqueIdentifier", b"uniqueIdentifier"]) -> builtins.bool: ...
221
+ def ClearField(self, field_name: typing.Literal["airPlayGroupID", b"airPlayGroupID", "airplayReceivers", b"airplayReceivers", "allowsPairing", b"allowsPairing", "applicationBundleIdentifier", b"applicationBundleIdentifier", "applicationBundleVersion", b"applicationBundleVersion", "bluetoothAddress", b"bluetoothAddress", "clusterID", b"clusterID", "clusterLeaderID", b"clusterLeaderID", "clusterType", b"clusterType", "clusteredDevices", b"clusteredDevices", "computerName", b"computerName", "configuredClusterSize", b"configuredClusterSize", "connected", b"connected", "deviceClass", b"deviceClass", "deviceUID", b"deviceUID", "groupContainsDiscoverableGroupLeader", b"groupContainsDiscoverableGroupLeader", "groupName", b"groupName", "groupUID", b"groupUID", "groupedDevices", b"groupedDevices", "isAirplayActive", b"isAirplayActive", "isClusterAware", b"isClusterAware", "isGroupLeader", b"isGroupLeader", "isProxyGroupPlayer", b"isProxyGroupPlayer", "lastKnownClusterType", b"lastKnownClusterType", "lastSupportedMessageType", b"lastSupportedMessageType", "linkAgent", b"linkAgent", "localizedModelName", b"localizedModelName", "logicalDeviceCount", b"logicalDeviceCount", "managedConfigDeviceID", b"managedConfigDeviceID", "modelID", b"modelID", "name", b"name", "parentGroupContainsDiscoverableGroupLeader", b"parentGroupContainsDiscoverableGroupLeader", "preferredEncoding", b"preferredEncoding", "protocolVersion", b"protocolVersion", "routingContextID", b"routingContextID", "senderDefaultGroupUID", b"senderDefaultGroupUID", "sharedQueueVersion", b"sharedQueueVersion", "supportsACL", b"supportsACL", "supportsExtendedMotion", b"supportsExtendedMotion", "supportsMultiplayer", b"supportsMultiplayer", "supportsOutputContextSync", b"supportsOutputContextSync", "supportsSharedQueue", b"supportsSharedQueue", "supportsSystemPairing", b"supportsSystemPairing", "systemBooksApplication", b"systemBooksApplication", "systemBuildVersion", b"systemBuildVersion", "systemMediaApplication", b"systemMediaApplication", "systemPodcastApplication", b"systemPodcastApplication", "tightSyncUID", b"tightSyncUID", "tightlySyncedGroup", b"tightlySyncedGroup", "uniqueIdentifier", b"uniqueIdentifier"]) -> None: ...
222
+
223
+ global___DeviceInfoMessage = DeviceInfoMessage
224
+
225
+ DEVICEINFOMESSAGE_FIELD_NUMBER: builtins.int
226
+ deviceInfoMessage: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2.ProtocolMessage, global___DeviceInfoMessage]
@@ -0,0 +1,12 @@
1
+ syntax = "proto2";
2
+
3
+ import "pyatv/protocols/mrp/protobuf/ProtocolMessage.proto";
4
+
5
+ extend ProtocolMessage {
6
+ optional GenericMessage genericMessage = 46;
7
+ }
8
+
9
+ message GenericMessage {
10
+ optional string key = 1;
11
+ optional bytes value = 2;
12
+ }
@@ -0,0 +1,35 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+
6
+ import builtins
7
+ import google.protobuf.descriptor
8
+ import google.protobuf.internal.extension_dict
9
+ import google.protobuf.message
10
+ import pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2
11
+ import typing
12
+
13
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
14
+
15
+ @typing.final
16
+ class GenericMessage(google.protobuf.message.Message):
17
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
18
+
19
+ KEY_FIELD_NUMBER: builtins.int
20
+ VALUE_FIELD_NUMBER: builtins.int
21
+ key: builtins.str
22
+ value: builtins.bytes
23
+ def __init__(
24
+ self,
25
+ *,
26
+ key: builtins.str | None = ...,
27
+ value: builtins.bytes | None = ...,
28
+ ) -> None: ...
29
+ def HasField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> builtins.bool: ...
30
+ def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...
31
+
32
+ global___GenericMessage = GenericMessage
33
+
34
+ GENERICMESSAGE_FIELD_NUMBER: builtins.int
35
+ genericMessage: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2.ProtocolMessage, global___GenericMessage]
@@ -0,0 +1,11 @@
1
+ syntax = "proto2";
2
+
3
+ import "pyatv/protocols/mrp/protobuf/ProtocolMessage.proto";
4
+
5
+ extend ProtocolMessage {
6
+ optional string getKeyboardSessionMessage = 29;
7
+ }
8
+
9
+ message GetKeyboardSessionMessage {
10
+
11
+ }
@@ -0,0 +1,26 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+
6
+ import builtins
7
+ import google.protobuf.descriptor
8
+ import google.protobuf.internal.extension_dict
9
+ import google.protobuf.message
10
+ import pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2
11
+ import typing
12
+
13
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
14
+
15
+ @typing.final
16
+ class GetKeyboardSessionMessage(google.protobuf.message.Message):
17
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
18
+
19
+ def __init__(
20
+ self,
21
+ ) -> None: ...
22
+
23
+ global___GetKeyboardSessionMessage = GetKeyboardSessionMessage
24
+
25
+ GETKEYBOARDSESSIONMESSAGE_FIELD_NUMBER: builtins.int
26
+ getKeyboardSessionMessage: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2.ProtocolMessage, builtins.str]
@@ -0,0 +1,10 @@
1
+ syntax = "proto2";
2
+
3
+ import "pyatv/protocols/mrp/protobuf/ProtocolMessage.proto";
4
+
5
+ extend ProtocolMessage {
6
+ optional GetRemoteTextInputSessionMessage getRemoteTextInputSessionMessage = 72;
7
+ }
8
+
9
+ message GetRemoteTextInputSessionMessage {
10
+ }
@@ -0,0 +1,26 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+
6
+ import builtins
7
+ import google.protobuf.descriptor
8
+ import google.protobuf.internal.extension_dict
9
+ import google.protobuf.message
10
+ import pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2
11
+ import typing
12
+
13
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
14
+
15
+ @typing.final
16
+ class GetRemoteTextInputSessionMessage(google.protobuf.message.Message):
17
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
18
+
19
+ def __init__(
20
+ self,
21
+ ) -> None: ...
22
+
23
+ global___GetRemoteTextInputSessionMessage = GetRemoteTextInputSessionMessage
24
+
25
+ GETREMOTETEXTINPUTSESSIONMESSAGE_FIELD_NUMBER: builtins.int
26
+ getRemoteTextInputSessionMessage: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2.ProtocolMessage, global___GetRemoteTextInputSessionMessage]
@@ -0,0 +1,11 @@
1
+ syntax = "proto2";
2
+
3
+ import "pyatv/protocols/mrp/protobuf/ProtocolMessage.proto";
4
+
5
+ extend ProtocolMessage {
6
+ optional GetVolumeMessage getVolumeMessage = 53;
7
+ }
8
+
9
+ message GetVolumeMessage {
10
+ optional string outputDeviceUID = 1;
11
+ }
@@ -0,0 +1,32 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+
6
+ import builtins
7
+ import google.protobuf.descriptor
8
+ import google.protobuf.internal.extension_dict
9
+ import google.protobuf.message
10
+ import pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2
11
+ import typing
12
+
13
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
14
+
15
+ @typing.final
16
+ class GetVolumeMessage(google.protobuf.message.Message):
17
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
18
+
19
+ OUTPUTDEVICEUID_FIELD_NUMBER: builtins.int
20
+ outputDeviceUID: builtins.str
21
+ def __init__(
22
+ self,
23
+ *,
24
+ outputDeviceUID: builtins.str | None = ...,
25
+ ) -> None: ...
26
+ def HasField(self, field_name: typing.Literal["outputDeviceUID", b"outputDeviceUID"]) -> builtins.bool: ...
27
+ def ClearField(self, field_name: typing.Literal["outputDeviceUID", b"outputDeviceUID"]) -> None: ...
28
+
29
+ global___GetVolumeMessage = GetVolumeMessage
30
+
31
+ GETVOLUMEMESSAGE_FIELD_NUMBER: builtins.int
32
+ getVolumeMessage: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2.ProtocolMessage, global___GetVolumeMessage]
@@ -0,0 +1,11 @@
1
+ syntax = "proto2";
2
+
3
+ import "pyatv/protocols/mrp/protobuf/ProtocolMessage.proto";
4
+
5
+ extend ProtocolMessage {
6
+ optional GetVolumeResultMessage getVolumeResultMessage = 54;
7
+ }
8
+
9
+ message GetVolumeResultMessage {
10
+ optional float volume = 1;
11
+ }