@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,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 GetVolumeResultMessage(google.protobuf.message.Message):
17
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
18
+
19
+ VOLUME_FIELD_NUMBER: builtins.int
20
+ volume: builtins.float
21
+ def __init__(
22
+ self,
23
+ *,
24
+ volume: builtins.float | None = ...,
25
+ ) -> None: ...
26
+ def HasField(self, field_name: typing.Literal["volume", b"volume"]) -> builtins.bool: ...
27
+ def ClearField(self, field_name: typing.Literal["volume", b"volume"]) -> None: ...
28
+
29
+ global___GetVolumeResultMessage = GetVolumeResultMessage
30
+
31
+ GETVOLUMERESULTMESSAGE_FIELD_NUMBER: builtins.int
32
+ getVolumeResultMessage: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2.ProtocolMessage, global___GetVolumeResultMessage]
@@ -0,0 +1,88 @@
1
+ syntax = "proto2";
2
+
3
+ import "pyatv/protocols/mrp/protobuf/ProtocolMessage.proto";
4
+
5
+ extend ProtocolMessage {
6
+ optional KeyboardMessage keyboardMessage = 28;
7
+ }
8
+
9
+ message KeyboardState {
10
+ enum Enum {
11
+ Unknown = 0;
12
+ NotEditing = 1;
13
+ DidBeginEditing = 2;
14
+ Editing = 3;
15
+ TextDidChange = 4;
16
+ DidEndEditing = 5;
17
+ Response = 6;
18
+ }
19
+ }
20
+
21
+ message AutocapitalizationType {
22
+ enum Enum {
23
+ None = 0;
24
+ Words = 1;
25
+ Sentences = 2;
26
+ AllCharacters = 3;
27
+ }
28
+ }
29
+
30
+ message KeyboardType {
31
+ enum Enum {
32
+ Default = 0;
33
+ ASCII_Capable = 1;
34
+ NumbersAndPunctuation = 2;
35
+ URL = 3;
36
+ NumberPad = 4;
37
+ PhonePad = 5;
38
+ NamePhonePad = 6;
39
+ EmailAddress = 7;
40
+ DecimalPad = 8;
41
+ Twitter = 9;
42
+ WebSearch = 10;
43
+ Alphanet = 11;
44
+ PasscodePad = 12;
45
+ }
46
+ }
47
+
48
+ message ReturnKeyType {
49
+ enum Enum {
50
+ Default = 0;
51
+ Go = 1;
52
+ Google = 2;
53
+ Join = 3;
54
+ Next = 4;
55
+ Route = 5;
56
+ Search = 6;
57
+ Send = 7;
58
+ Yahoo = 8;
59
+ Done = 9;
60
+ EmergencyCall = 10;
61
+ Continue = 11;
62
+ }
63
+ }
64
+
65
+ message TextInputTraits {
66
+ optional AutocapitalizationType.Enum autocapitalizationType = 1;
67
+ optional KeyboardType.Enum keyboardType = 2;
68
+ optional ReturnKeyType.Enum returnKeyType = 3;
69
+ optional bool autocorrection = 4;
70
+ optional bool spellchecking = 5;
71
+ optional bool enablesReturnKeyAutomatically = 6;
72
+ optional bool secureTextEntry = 7;
73
+ optional uint64 validTextRangeLocation = 8;
74
+ optional uint64 validTextRangeLength = 9;
75
+ repeated uint64 pINEntrySeparatorIndexes = 10;
76
+ }
77
+
78
+ message TextEditingAttributes {
79
+ optional string title = 1;
80
+ optional string prompt = 2;
81
+ optional TextInputTraits inputTraits = 3;
82
+ }
83
+
84
+ message KeyboardMessage {
85
+ optional KeyboardState.Enum state = 1;
86
+ optional TextEditingAttributes attributes = 3;
87
+ optional bytes encryptedTextCyphertext = 4;
88
+ }
@@ -0,0 +1,261 @@
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.ProtocolMessage_pb2
14
+ import sys
15
+ import typing
16
+
17
+ if sys.version_info >= (3, 10):
18
+ import typing as typing_extensions
19
+ else:
20
+ import typing_extensions
21
+
22
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
23
+
24
+ @typing.final
25
+ class KeyboardState(google.protobuf.message.Message):
26
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
27
+
28
+ class _Enum:
29
+ ValueType = typing.NewType("ValueType", builtins.int)
30
+ V: typing_extensions.TypeAlias = ValueType
31
+
32
+ class _EnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[KeyboardState._Enum.ValueType], builtins.type):
33
+ DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
34
+ Unknown: KeyboardState._Enum.ValueType # 0
35
+ NotEditing: KeyboardState._Enum.ValueType # 1
36
+ DidBeginEditing: KeyboardState._Enum.ValueType # 2
37
+ Editing: KeyboardState._Enum.ValueType # 3
38
+ TextDidChange: KeyboardState._Enum.ValueType # 4
39
+ DidEndEditing: KeyboardState._Enum.ValueType # 5
40
+ Response: KeyboardState._Enum.ValueType # 6
41
+
42
+ class Enum(_Enum, metaclass=_EnumEnumTypeWrapper): ...
43
+ Unknown: KeyboardState.Enum.ValueType # 0
44
+ NotEditing: KeyboardState.Enum.ValueType # 1
45
+ DidBeginEditing: KeyboardState.Enum.ValueType # 2
46
+ Editing: KeyboardState.Enum.ValueType # 3
47
+ TextDidChange: KeyboardState.Enum.ValueType # 4
48
+ DidEndEditing: KeyboardState.Enum.ValueType # 5
49
+ Response: KeyboardState.Enum.ValueType # 6
50
+
51
+ def __init__(
52
+ self,
53
+ ) -> None: ...
54
+
55
+ global___KeyboardState = KeyboardState
56
+
57
+ @typing.final
58
+ class AutocapitalizationType(google.protobuf.message.Message):
59
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
60
+
61
+ class _Enum:
62
+ ValueType = typing.NewType("ValueType", builtins.int)
63
+ V: typing_extensions.TypeAlias = ValueType
64
+
65
+ class _EnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[AutocapitalizationType._Enum.ValueType], builtins.type):
66
+ DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
67
+ Words: AutocapitalizationType._Enum.ValueType # 1
68
+ Sentences: AutocapitalizationType._Enum.ValueType # 2
69
+ AllCharacters: AutocapitalizationType._Enum.ValueType # 3
70
+
71
+ class Enum(_Enum, metaclass=_EnumEnumTypeWrapper): ...
72
+ Words: AutocapitalizationType.Enum.ValueType # 1
73
+ Sentences: AutocapitalizationType.Enum.ValueType # 2
74
+ AllCharacters: AutocapitalizationType.Enum.ValueType # 3
75
+
76
+ def __init__(
77
+ self,
78
+ ) -> None: ...
79
+
80
+ global___AutocapitalizationType = AutocapitalizationType
81
+
82
+ @typing.final
83
+ class KeyboardType(google.protobuf.message.Message):
84
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
85
+
86
+ class _Enum:
87
+ ValueType = typing.NewType("ValueType", builtins.int)
88
+ V: typing_extensions.TypeAlias = ValueType
89
+
90
+ class _EnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[KeyboardType._Enum.ValueType], builtins.type):
91
+ DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
92
+ Default: KeyboardType._Enum.ValueType # 0
93
+ ASCII_Capable: KeyboardType._Enum.ValueType # 1
94
+ NumbersAndPunctuation: KeyboardType._Enum.ValueType # 2
95
+ URL: KeyboardType._Enum.ValueType # 3
96
+ NumberPad: KeyboardType._Enum.ValueType # 4
97
+ PhonePad: KeyboardType._Enum.ValueType # 5
98
+ NamePhonePad: KeyboardType._Enum.ValueType # 6
99
+ EmailAddress: KeyboardType._Enum.ValueType # 7
100
+ DecimalPad: KeyboardType._Enum.ValueType # 8
101
+ Twitter: KeyboardType._Enum.ValueType # 9
102
+ WebSearch: KeyboardType._Enum.ValueType # 10
103
+ Alphanet: KeyboardType._Enum.ValueType # 11
104
+ PasscodePad: KeyboardType._Enum.ValueType # 12
105
+
106
+ class Enum(_Enum, metaclass=_EnumEnumTypeWrapper): ...
107
+ Default: KeyboardType.Enum.ValueType # 0
108
+ ASCII_Capable: KeyboardType.Enum.ValueType # 1
109
+ NumbersAndPunctuation: KeyboardType.Enum.ValueType # 2
110
+ URL: KeyboardType.Enum.ValueType # 3
111
+ NumberPad: KeyboardType.Enum.ValueType # 4
112
+ PhonePad: KeyboardType.Enum.ValueType # 5
113
+ NamePhonePad: KeyboardType.Enum.ValueType # 6
114
+ EmailAddress: KeyboardType.Enum.ValueType # 7
115
+ DecimalPad: KeyboardType.Enum.ValueType # 8
116
+ Twitter: KeyboardType.Enum.ValueType # 9
117
+ WebSearch: KeyboardType.Enum.ValueType # 10
118
+ Alphanet: KeyboardType.Enum.ValueType # 11
119
+ PasscodePad: KeyboardType.Enum.ValueType # 12
120
+
121
+ def __init__(
122
+ self,
123
+ ) -> None: ...
124
+
125
+ global___KeyboardType = KeyboardType
126
+
127
+ @typing.final
128
+ class ReturnKeyType(google.protobuf.message.Message):
129
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
130
+
131
+ class _Enum:
132
+ ValueType = typing.NewType("ValueType", builtins.int)
133
+ V: typing_extensions.TypeAlias = ValueType
134
+
135
+ class _EnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[ReturnKeyType._Enum.ValueType], builtins.type):
136
+ DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
137
+ Default: ReturnKeyType._Enum.ValueType # 0
138
+ Go: ReturnKeyType._Enum.ValueType # 1
139
+ Google: ReturnKeyType._Enum.ValueType # 2
140
+ Join: ReturnKeyType._Enum.ValueType # 3
141
+ Next: ReturnKeyType._Enum.ValueType # 4
142
+ Route: ReturnKeyType._Enum.ValueType # 5
143
+ Search: ReturnKeyType._Enum.ValueType # 6
144
+ Send: ReturnKeyType._Enum.ValueType # 7
145
+ Yahoo: ReturnKeyType._Enum.ValueType # 8
146
+ Done: ReturnKeyType._Enum.ValueType # 9
147
+ EmergencyCall: ReturnKeyType._Enum.ValueType # 10
148
+ Continue: ReturnKeyType._Enum.ValueType # 11
149
+
150
+ class Enum(_Enum, metaclass=_EnumEnumTypeWrapper): ...
151
+ Default: ReturnKeyType.Enum.ValueType # 0
152
+ Go: ReturnKeyType.Enum.ValueType # 1
153
+ Google: ReturnKeyType.Enum.ValueType # 2
154
+ Join: ReturnKeyType.Enum.ValueType # 3
155
+ Next: ReturnKeyType.Enum.ValueType # 4
156
+ Route: ReturnKeyType.Enum.ValueType # 5
157
+ Search: ReturnKeyType.Enum.ValueType # 6
158
+ Send: ReturnKeyType.Enum.ValueType # 7
159
+ Yahoo: ReturnKeyType.Enum.ValueType # 8
160
+ Done: ReturnKeyType.Enum.ValueType # 9
161
+ EmergencyCall: ReturnKeyType.Enum.ValueType # 10
162
+ Continue: ReturnKeyType.Enum.ValueType # 11
163
+
164
+ def __init__(
165
+ self,
166
+ ) -> None: ...
167
+
168
+ global___ReturnKeyType = ReturnKeyType
169
+
170
+ @typing.final
171
+ class TextInputTraits(google.protobuf.message.Message):
172
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
173
+
174
+ AUTOCAPITALIZATIONTYPE_FIELD_NUMBER: builtins.int
175
+ KEYBOARDTYPE_FIELD_NUMBER: builtins.int
176
+ RETURNKEYTYPE_FIELD_NUMBER: builtins.int
177
+ AUTOCORRECTION_FIELD_NUMBER: builtins.int
178
+ SPELLCHECKING_FIELD_NUMBER: builtins.int
179
+ ENABLESRETURNKEYAUTOMATICALLY_FIELD_NUMBER: builtins.int
180
+ SECURETEXTENTRY_FIELD_NUMBER: builtins.int
181
+ VALIDTEXTRANGELOCATION_FIELD_NUMBER: builtins.int
182
+ VALIDTEXTRANGELENGTH_FIELD_NUMBER: builtins.int
183
+ PINENTRYSEPARATORINDEXES_FIELD_NUMBER: builtins.int
184
+ autocapitalizationType: global___AutocapitalizationType.Enum.ValueType
185
+ keyboardType: global___KeyboardType.Enum.ValueType
186
+ returnKeyType: global___ReturnKeyType.Enum.ValueType
187
+ autocorrection: builtins.bool
188
+ spellchecking: builtins.bool
189
+ enablesReturnKeyAutomatically: builtins.bool
190
+ secureTextEntry: builtins.bool
191
+ validTextRangeLocation: builtins.int
192
+ validTextRangeLength: builtins.int
193
+ @property
194
+ def pINEntrySeparatorIndexes(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
195
+ def __init__(
196
+ self,
197
+ *,
198
+ autocapitalizationType: global___AutocapitalizationType.Enum.ValueType | None = ...,
199
+ keyboardType: global___KeyboardType.Enum.ValueType | None = ...,
200
+ returnKeyType: global___ReturnKeyType.Enum.ValueType | None = ...,
201
+ autocorrection: builtins.bool | None = ...,
202
+ spellchecking: builtins.bool | None = ...,
203
+ enablesReturnKeyAutomatically: builtins.bool | None = ...,
204
+ secureTextEntry: builtins.bool | None = ...,
205
+ validTextRangeLocation: builtins.int | None = ...,
206
+ validTextRangeLength: builtins.int | None = ...,
207
+ pINEntrySeparatorIndexes: collections.abc.Iterable[builtins.int] | None = ...,
208
+ ) -> None: ...
209
+ def HasField(self, field_name: typing.Literal["autocapitalizationType", b"autocapitalizationType", "autocorrection", b"autocorrection", "enablesReturnKeyAutomatically", b"enablesReturnKeyAutomatically", "keyboardType", b"keyboardType", "returnKeyType", b"returnKeyType", "secureTextEntry", b"secureTextEntry", "spellchecking", b"spellchecking", "validTextRangeLength", b"validTextRangeLength", "validTextRangeLocation", b"validTextRangeLocation"]) -> builtins.bool: ...
210
+ def ClearField(self, field_name: typing.Literal["autocapitalizationType", b"autocapitalizationType", "autocorrection", b"autocorrection", "enablesReturnKeyAutomatically", b"enablesReturnKeyAutomatically", "keyboardType", b"keyboardType", "pINEntrySeparatorIndexes", b"pINEntrySeparatorIndexes", "returnKeyType", b"returnKeyType", "secureTextEntry", b"secureTextEntry", "spellchecking", b"spellchecking", "validTextRangeLength", b"validTextRangeLength", "validTextRangeLocation", b"validTextRangeLocation"]) -> None: ...
211
+
212
+ global___TextInputTraits = TextInputTraits
213
+
214
+ @typing.final
215
+ class TextEditingAttributes(google.protobuf.message.Message):
216
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
217
+
218
+ TITLE_FIELD_NUMBER: builtins.int
219
+ PROMPT_FIELD_NUMBER: builtins.int
220
+ INPUTTRAITS_FIELD_NUMBER: builtins.int
221
+ title: builtins.str
222
+ prompt: builtins.str
223
+ @property
224
+ def inputTraits(self) -> global___TextInputTraits: ...
225
+ def __init__(
226
+ self,
227
+ *,
228
+ title: builtins.str | None = ...,
229
+ prompt: builtins.str | None = ...,
230
+ inputTraits: global___TextInputTraits | None = ...,
231
+ ) -> None: ...
232
+ def HasField(self, field_name: typing.Literal["inputTraits", b"inputTraits", "prompt", b"prompt", "title", b"title"]) -> builtins.bool: ...
233
+ def ClearField(self, field_name: typing.Literal["inputTraits", b"inputTraits", "prompt", b"prompt", "title", b"title"]) -> None: ...
234
+
235
+ global___TextEditingAttributes = TextEditingAttributes
236
+
237
+ @typing.final
238
+ class KeyboardMessage(google.protobuf.message.Message):
239
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
240
+
241
+ STATE_FIELD_NUMBER: builtins.int
242
+ ATTRIBUTES_FIELD_NUMBER: builtins.int
243
+ ENCRYPTEDTEXTCYPHERTEXT_FIELD_NUMBER: builtins.int
244
+ state: global___KeyboardState.Enum.ValueType
245
+ encryptedTextCyphertext: builtins.bytes
246
+ @property
247
+ def attributes(self) -> global___TextEditingAttributes: ...
248
+ def __init__(
249
+ self,
250
+ *,
251
+ state: global___KeyboardState.Enum.ValueType | None = ...,
252
+ attributes: global___TextEditingAttributes | None = ...,
253
+ encryptedTextCyphertext: builtins.bytes | None = ...,
254
+ ) -> None: ...
255
+ def HasField(self, field_name: typing.Literal["attributes", b"attributes", "encryptedTextCyphertext", b"encryptedTextCyphertext", "state", b"state"]) -> builtins.bool: ...
256
+ def ClearField(self, field_name: typing.Literal["attributes", b"attributes", "encryptedTextCyphertext", b"encryptedTextCyphertext", "state", b"state"]) -> None: ...
257
+
258
+ global___KeyboardMessage = KeyboardMessage
259
+
260
+ KEYBOARDMESSAGE_FIELD_NUMBER: builtins.int
261
+ keyboardMessage: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2.ProtocolMessage, global___KeyboardMessage]
@@ -0,0 +1,9 @@
1
+ syntax = "proto2";
2
+
3
+ message LanguageOption {
4
+ optional int32 type = 1;
5
+ optional string languageTag = 2;
6
+ repeated string characteristics = 3;
7
+ optional string displayName = 4;
8
+ optional string identifier = 5;
9
+ }
@@ -0,0 +1,42 @@
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 typing
12
+
13
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
14
+
15
+ @typing.final
16
+ class LanguageOption(google.protobuf.message.Message):
17
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
18
+
19
+ TYPE_FIELD_NUMBER: builtins.int
20
+ LANGUAGETAG_FIELD_NUMBER: builtins.int
21
+ CHARACTERISTICS_FIELD_NUMBER: builtins.int
22
+ DISPLAYNAME_FIELD_NUMBER: builtins.int
23
+ IDENTIFIER_FIELD_NUMBER: builtins.int
24
+ type: builtins.int
25
+ languageTag: builtins.str
26
+ displayName: builtins.str
27
+ identifier: builtins.str
28
+ @property
29
+ def characteristics(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
30
+ def __init__(
31
+ self,
32
+ *,
33
+ type: builtins.int | None = ...,
34
+ languageTag: builtins.str | None = ...,
35
+ characteristics: collections.abc.Iterable[builtins.str] | None = ...,
36
+ displayName: builtins.str | None = ...,
37
+ identifier: builtins.str | None = ...,
38
+ ) -> None: ...
39
+ def HasField(self, field_name: typing.Literal["displayName", b"displayName", "identifier", b"identifier", "languageTag", b"languageTag", "type", b"type"]) -> builtins.bool: ...
40
+ def ClearField(self, field_name: typing.Literal["characteristics", b"characteristics", "displayName", b"displayName", "identifier", b"identifier", "languageTag", b"languageTag", "type", b"type"]) -> None: ...
41
+
42
+ global___LanguageOption = LanguageOption
@@ -0,0 +1,23 @@
1
+ syntax = "proto2";
2
+
3
+ import "pyatv/protocols/mrp/protobuf/ProtocolMessage.proto";
4
+
5
+ extend ProtocolMessage {
6
+ optional ModifyOutputContextRequestMessage modifyOutputContextRequestMessage = 52;
7
+ }
8
+
9
+ message ModifyOutputContextRequestType {
10
+ enum Enum {
11
+ SharedAudioPresentation = 1;
12
+ }
13
+ }
14
+
15
+ message ModifyOutputContextRequestMessage {
16
+ optional ModifyOutputContextRequestType.Enum type = 1;
17
+ repeated string addingDevices = 2;
18
+ repeated string removingDevices = 3;
19
+ repeated string settingDevices = 4;
20
+ repeated string clusterAwareAddingDevices = 5;
21
+ repeated string clusterAwareRemovingDevices = 6;
22
+ repeated string clusterAwareSettingDevices = 7;
23
+ }
@@ -0,0 +1,86 @@
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.ProtocolMessage_pb2
14
+ import sys
15
+ import typing
16
+
17
+ if sys.version_info >= (3, 10):
18
+ import typing as typing_extensions
19
+ else:
20
+ import typing_extensions
21
+
22
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
23
+
24
+ @typing.final
25
+ class ModifyOutputContextRequestType(google.protobuf.message.Message):
26
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
27
+
28
+ class _Enum:
29
+ ValueType = typing.NewType("ValueType", builtins.int)
30
+ V: typing_extensions.TypeAlias = ValueType
31
+
32
+ class _EnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[ModifyOutputContextRequestType._Enum.ValueType], builtins.type):
33
+ DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
34
+ SharedAudioPresentation: ModifyOutputContextRequestType._Enum.ValueType # 1
35
+
36
+ class Enum(_Enum, metaclass=_EnumEnumTypeWrapper): ...
37
+ SharedAudioPresentation: ModifyOutputContextRequestType.Enum.ValueType # 1
38
+
39
+ def __init__(
40
+ self,
41
+ ) -> None: ...
42
+
43
+ global___ModifyOutputContextRequestType = ModifyOutputContextRequestType
44
+
45
+ @typing.final
46
+ class ModifyOutputContextRequestMessage(google.protobuf.message.Message):
47
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
48
+
49
+ TYPE_FIELD_NUMBER: builtins.int
50
+ ADDINGDEVICES_FIELD_NUMBER: builtins.int
51
+ REMOVINGDEVICES_FIELD_NUMBER: builtins.int
52
+ SETTINGDEVICES_FIELD_NUMBER: builtins.int
53
+ CLUSTERAWAREADDINGDEVICES_FIELD_NUMBER: builtins.int
54
+ CLUSTERAWAREREMOVINGDEVICES_FIELD_NUMBER: builtins.int
55
+ CLUSTERAWARESETTINGDEVICES_FIELD_NUMBER: builtins.int
56
+ type: global___ModifyOutputContextRequestType.Enum.ValueType
57
+ @property
58
+ def addingDevices(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
59
+ @property
60
+ def removingDevices(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
61
+ @property
62
+ def settingDevices(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
63
+ @property
64
+ def clusterAwareAddingDevices(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
65
+ @property
66
+ def clusterAwareRemovingDevices(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
67
+ @property
68
+ def clusterAwareSettingDevices(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
69
+ def __init__(
70
+ self,
71
+ *,
72
+ type: global___ModifyOutputContextRequestType.Enum.ValueType | None = ...,
73
+ addingDevices: collections.abc.Iterable[builtins.str] | None = ...,
74
+ removingDevices: collections.abc.Iterable[builtins.str] | None = ...,
75
+ settingDevices: collections.abc.Iterable[builtins.str] | None = ...,
76
+ clusterAwareAddingDevices: collections.abc.Iterable[builtins.str] | None = ...,
77
+ clusterAwareRemovingDevices: collections.abc.Iterable[builtins.str] | None = ...,
78
+ clusterAwareSettingDevices: collections.abc.Iterable[builtins.str] | None = ...,
79
+ ) -> None: ...
80
+ def HasField(self, field_name: typing.Literal["type", b"type"]) -> builtins.bool: ...
81
+ def ClearField(self, field_name: typing.Literal["addingDevices", b"addingDevices", "clusterAwareAddingDevices", b"clusterAwareAddingDevices", "clusterAwareRemovingDevices", b"clusterAwareRemovingDevices", "clusterAwareSettingDevices", b"clusterAwareSettingDevices", "removingDevices", b"removingDevices", "settingDevices", b"settingDevices", "type", b"type"]) -> None: ...
82
+
83
+ global___ModifyOutputContextRequestMessage = ModifyOutputContextRequestMessage
84
+
85
+ MODIFYOUTPUTCONTEXTREQUESTMESSAGE_FIELD_NUMBER: builtins.int
86
+ modifyOutputContextRequestMessage: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2.ProtocolMessage, global___ModifyOutputContextRequestMessage]
@@ -0,0 +1,12 @@
1
+ syntax = "proto2";
2
+
3
+ import "pyatv/protocols/mrp/protobuf/ProtocolMessage.proto";
4
+
5
+ extend ProtocolMessage {
6
+ optional NotificationMessage notificationMessage = 16;
7
+ }
8
+
9
+ message NotificationMessage {
10
+ repeated string notification = 1;
11
+ repeated bytes userInfo = 2;
12
+ }
@@ -0,0 +1,38 @@
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.extension_dict
11
+ import google.protobuf.message
12
+ import pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2
13
+ import typing
14
+
15
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
16
+
17
+ @typing.final
18
+ class NotificationMessage(google.protobuf.message.Message):
19
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
20
+
21
+ NOTIFICATION_FIELD_NUMBER: builtins.int
22
+ USERINFO_FIELD_NUMBER: builtins.int
23
+ @property
24
+ def notification(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
25
+ @property
26
+ def userInfo(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]: ...
27
+ def __init__(
28
+ self,
29
+ *,
30
+ notification: collections.abc.Iterable[builtins.str] | None = ...,
31
+ userInfo: collections.abc.Iterable[builtins.bytes] | None = ...,
32
+ ) -> None: ...
33
+ def ClearField(self, field_name: typing.Literal["notification", b"notification", "userInfo", b"userInfo"]) -> None: ...
34
+
35
+ global___NotificationMessage = NotificationMessage
36
+
37
+ NOTIFICATIONMESSAGE_FIELD_NUMBER: builtins.int
38
+ notificationMessage: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2.ProtocolMessage, global___NotificationMessage]
@@ -0,0 +1,12 @@
1
+ syntax = "proto2";
2
+
3
+ message NowPlayingClient {
4
+ optional int32 processIdentifier = 1;
5
+ optional string bundleIdentifier = 2;
6
+ optional string parentApplicationBundleIdentifier = 3;
7
+ optional int32 processUserIdentifier = 4;
8
+ optional int32 nowPlayingVisibility = 5;
9
+ // optional TintColor tintColor = 6;
10
+ optional string displayName = 7;
11
+ repeated string bundleIdentifierHierarchys = 8;
12
+ }
@@ -0,0 +1,49 @@
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 typing
12
+
13
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
14
+
15
+ @typing.final
16
+ class NowPlayingClient(google.protobuf.message.Message):
17
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
18
+
19
+ PROCESSIDENTIFIER_FIELD_NUMBER: builtins.int
20
+ BUNDLEIDENTIFIER_FIELD_NUMBER: builtins.int
21
+ PARENTAPPLICATIONBUNDLEIDENTIFIER_FIELD_NUMBER: builtins.int
22
+ PROCESSUSERIDENTIFIER_FIELD_NUMBER: builtins.int
23
+ NOWPLAYINGVISIBILITY_FIELD_NUMBER: builtins.int
24
+ DISPLAYNAME_FIELD_NUMBER: builtins.int
25
+ BUNDLEIDENTIFIERHIERARCHYS_FIELD_NUMBER: builtins.int
26
+ processIdentifier: builtins.int
27
+ bundleIdentifier: builtins.str
28
+ parentApplicationBundleIdentifier: builtins.str
29
+ processUserIdentifier: builtins.int
30
+ nowPlayingVisibility: builtins.int
31
+ displayName: builtins.str
32
+ """ optional TintColor tintColor = 6;"""
33
+ @property
34
+ def bundleIdentifierHierarchys(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
35
+ def __init__(
36
+ self,
37
+ *,
38
+ processIdentifier: builtins.int | None = ...,
39
+ bundleIdentifier: builtins.str | None = ...,
40
+ parentApplicationBundleIdentifier: builtins.str | None = ...,
41
+ processUserIdentifier: builtins.int | None = ...,
42
+ nowPlayingVisibility: builtins.int | None = ...,
43
+ displayName: builtins.str | None = ...,
44
+ bundleIdentifierHierarchys: collections.abc.Iterable[builtins.str] | None = ...,
45
+ ) -> None: ...
46
+ def HasField(self, field_name: typing.Literal["bundleIdentifier", b"bundleIdentifier", "displayName", b"displayName", "nowPlayingVisibility", b"nowPlayingVisibility", "parentApplicationBundleIdentifier", b"parentApplicationBundleIdentifier", "processIdentifier", b"processIdentifier", "processUserIdentifier", b"processUserIdentifier"]) -> builtins.bool: ...
47
+ def ClearField(self, field_name: typing.Literal["bundleIdentifier", b"bundleIdentifier", "bundleIdentifierHierarchys", b"bundleIdentifierHierarchys", "displayName", b"displayName", "nowPlayingVisibility", b"nowPlayingVisibility", "parentApplicationBundleIdentifier", b"parentApplicationBundleIdentifier", "processIdentifier", b"processIdentifier", "processUserIdentifier", b"processUserIdentifier"]) -> None: ...
48
+
49
+ global___NowPlayingClient = NowPlayingClient