@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,109 @@
1
+ <!DOCTYPE html>
2
+ <html lang="{{ site.lang | default: "en-US" }}">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+
6
+ {% seo %}
7
+ <meta name="viewport" content="width=device-width, initial-scale=1">
8
+ <meta name="theme-color" content="#157878">
9
+ <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
10
+ <link rel="stylesheet" href="{{ 'assets/css/style.css?v=' | append: site.github.build_revision | relative_url }}">
11
+ <script src="{{ '/assets/js/highlight.9.12.0.min.js' | relative_url }}"></script>
12
+ <script src="{{ '/assets/js/mermaid.8.9.2.min.js' | relative_url }}"></script>
13
+ <script async defer src="https://buttons.github.io/buttons.js"></script>
14
+ <script>
15
+ hljs.initHighlightingOnLoad();
16
+
17
+ var config = {
18
+ startOnLoad:true,
19
+ theme: 'forest',
20
+ showSequenceNumbers: true,
21
+ flowchart:{
22
+ useMaxWidth:true,
23
+ htmlLabels:true
24
+ }
25
+ };
26
+ mermaid.initialize(config);
27
+ document.addEventListener('DOMContentLoaded', (event) => {
28
+ window.mermaid.init(undefined, document.querySelectorAll('.diagram'));
29
+ })
30
+ </script>
31
+ </head>
32
+ <body>
33
+ <header class="page-header" role="banner">
34
+ <img style="display: inline-block; padding-right: 0.5em; margin-bottom: 0.8em; width: 4rem" src="{{ 'assets/img/logo.svg?v=' | append: site.github.build_revision | relative_url }}" />
35
+ <h1 style="display: inline-block; padding-right: 0.5em" class="project-name">{{ page.title | default: site.title | default: site.github.repository_name }}</h1>
36
+ <a class="github-button" href="https://github.com/sponsors/postlund" data-icon="octicon-heart" aria-label="Sponsor @postlund on GitHub">Sponsor</a>
37
+ <h2 class="project-tagline">{{ page.description | default: site.description | default: site.github.project_tagline }}</h2>
38
+ {% for p in site.top_pages %}
39
+ <a href="{{ p.link | relative_url }}" class="btn">
40
+ {% assign sub = p.link | split:"/" %}
41
+ {% if sub[1] == page.link_group %}
42
+ <b>{{ p.title }}</b>
43
+ {% else %}
44
+ {{ p.title }}
45
+ {% endif %}
46
+ </a>
47
+ {% endfor %}
48
+ {% if site.github.is_project_page %}
49
+ <a href="{{ site.github.repository_url }}" class="btn">View on GitHub</a>
50
+ {% endif %}
51
+ </header>
52
+
53
+ <main id="content" class="main-content" role="main">
54
+ <div style="text-align: center; width: 100%">
55
+ {% for p in site.page_links[page.link_group] %}
56
+ {% if page.permalink == p.link %}
57
+ <b><a href="{{ p.link | relative_url }}" style="display: inline;">{{ p.title }}</a></b>
58
+ {% else %}
59
+ <a href="{{ p.link | relative_url }}" style="display: inline;">{{ p.title }}</a>
60
+ {% endif %}
61
+ {% if p != site.page_links[page.link_group].last %}| {% endif %}
62
+ {% endfor %}
63
+ </div>
64
+
65
+ {{ content }}
66
+
67
+ {% if site.page_links contains page.link_group %}
68
+ {% assign prev = Nil %}
69
+ {% assign curr = Nil %}
70
+ {% assign next = Nil %}
71
+ {% assign links = site.page_links[page.link_group] %}
72
+
73
+ {% for p in links %}
74
+ {% assign prev = curr %}
75
+ {% assign curr = p %}
76
+ {% if p["link"] == page.permalink %}
77
+ {% assign next = links[forloop.index] %}
78
+ {% break %}
79
+ {% endif %}
80
+ {% endfor %}
81
+
82
+ <div style="font-weight: bold; padding-top: 2em">
83
+ {% if prev == Nil %}
84
+ <a href="{{ next['link'] }}">{{ next["title"] }} &rarr;</a>
85
+ {% elsif next == Nil %}
86
+ <a href="{{ prev['link'] }}">&larr; {{ prev["title"] }}</a>
87
+ {% else %}
88
+ <a href="{{ prev['link'] }}">&larr; {{ prev["title"] }}</a> |
89
+ <a href="{{ next['link'] }}">{{ next["title"] }} &rarr;</a>
90
+ {% endif %}
91
+ </div>
92
+ {% endif %}
93
+ <footer class="site-footer">
94
+ {% if page.path contains ".md" %}
95
+ <a href="{{ site.github.repository_url }}/edit/master/docs/{{ page.path }}">[Edit this page]</a>
96
+ {% endif %}
97
+ {% if site.github.is_project_page %}
98
+ <span class="site-footer-owner">
99
+ <a href="{{ site.github.repository_url }}">{{ site.github.repository_name }}</a> is maintained by <a href="{{ site.github.owner_url }}">{{ site.github.owner_name }}</a>.
100
+ </span>
101
+ {% endif %}
102
+ <div class="site-footer-credits">
103
+ Icons made by <a href="https://www.flaticon.com/authors/pixel-perfect" title="Pixel perfect">Pixel perfect</a> from <a href="https://www.flaticon.com/" title="Flaticon">www.flaticon.com</a><br/>
104
+ This page was generated by <a href="https://pages.github.com">GitHub Pages</a>.
105
+ </div>
106
+ </footer>
107
+ </main>
108
+ </body>
109
+ </html>
@@ -0,0 +1,312 @@
1
+ ---
2
+ layout: template
3
+ title: API - pyatv.conf
4
+ permalink: /api/conf/
5
+ link_group: api
6
+ ---
7
+ <nav id="sidebar">
8
+ <h1>Index</h1>
9
+ <div class="toc">
10
+ <ul></ul>
11
+ </div>
12
+ <ul id="index">
13
+ <li><h3>Super-module</h3>
14
+ <ul>
15
+ <li><code><a title="pyatv" href="..">pyatv</a></code></li>
16
+ </ul>
17
+ </li>
18
+ <li><h3><a href="#header-classes">Classes</a></h3>
19
+ <ul>
20
+ <li>
21
+ <h4><code><a title="pyatv.conf.AirPlayService" href="#pyatv.conf.AirPlayService">AirPlayService</a></code></h4>
22
+ </li>
23
+ <li>
24
+ <h4><code><a title="pyatv.conf.AppleTV" href="#pyatv.conf.AppleTV">AppleTV</a></code></h4>
25
+ </li>
26
+ <li>
27
+ <h4><code><a title="pyatv.conf.CompanionService" href="#pyatv.conf.CompanionService">CompanionService</a></code></h4>
28
+ </li>
29
+ <li>
30
+ <h4><code><a title="pyatv.conf.DmapService" href="#pyatv.conf.DmapService">DmapService</a></code></h4>
31
+ </li>
32
+ <li>
33
+ <h4><code><a title="pyatv.conf.ManualService" href="#pyatv.conf.ManualService">ManualService</a></code></h4>
34
+ </li>
35
+ <li>
36
+ <h4><code><a title="pyatv.conf.MrpService" href="#pyatv.conf.MrpService">MrpService</a></code></h4>
37
+ </li>
38
+ <li>
39
+ <h4><code><a title="pyatv.conf.RaopService" href="#pyatv.conf.RaopService">RaopService</a></code></h4>
40
+ </li>
41
+ </ul>
42
+ </li>
43
+ </ul>
44
+ </nav>
45
+ <article id="content">
46
+ <header>
47
+ <h1 class="title">Module <code>pyatv.conf</code></h1>
48
+ </header>
49
+ <section id="section-intro">
50
+ <p>Configuration used when connecting to a device.</p>
51
+ <p>A configuration describes a device, e.g. it's name, IP address and credentials. It is
52
+ possible to manually create a configuration, but generally scanning for devices will
53
+ provide configurations for you.</p>
54
+ <div class="git-link-div"><a href="https://github.com/postlund/pyatv/blob/master/pyatv/conf.py#L1-L240" class="git-link">Browse git</a></div>
55
+ </section>
56
+ <section>
57
+ </section>
58
+ <section>
59
+ </section>
60
+ <section>
61
+ </section>
62
+ <section>
63
+ <h2 class="section-title" id="header-classes">Classes</h2>
64
+ <dl>
65
+ <dt id="pyatv.conf.AirPlayService"><code class="flex name class">
66
+ <span>class <span class="ident">AirPlayService</span></span>
67
+ <span>(</span><span>identifier: str | None, port: int = 7000, credentials: str | None = None, properties: Mapping[str, str] | None = None)</span>
68
+ </code></dt>
69
+ <dd>
70
+ <section class="desc"><p>Representation of an AirPlay service.</p>
71
+ <p><strong>DEPRECATED: Use <code><a title="pyatv.conf.ManualService" href="#pyatv.conf.ManualService">ManualService</a></code> instead.</strong></p>
72
+ <p>Initialize a new AirPlayService.</p></section>
73
+ <div class="git-link-div"><a href="https://github.com/postlund/pyatv/blob/master/pyatv/conf.py#L185-L200" class="git-link">Browse git</a></div>
74
+ <h3>Ancestors</h3>
75
+ <ul class="hlist">
76
+ <li><a title="pyatv.conf.ManualService" href="#pyatv.conf.ManualService">ManualService</a></li>
77
+ <li><a title="pyatv.interface.BaseService" href="../interface#pyatv.interface.BaseService">BaseService</a></li>
78
+ <li>abc.ABC</li>
79
+ </ul>
80
+ <h3>Inherited members</h3>
81
+ <ul class="hlist">
82
+ <li><code><b><a title="pyatv.conf.ManualService" href="#pyatv.conf.ManualService">ManualService</a></b></code>:
83
+ <ul class="hlist">
84
+ <li><code><a title="pyatv.conf.ManualService.apply" href="../interface#pyatv.interface.BaseService.apply">apply</a></code></li>
85
+ <li><code><a title="pyatv.conf.ManualService.enabled" href="../interface#pyatv.interface.BaseService.enabled">enabled</a></code></li>
86
+ <li><code><a title="pyatv.conf.ManualService.identifier" href="../interface#pyatv.interface.BaseService.identifier">identifier</a></code></li>
87
+ <li><code><a title="pyatv.conf.ManualService.merge" href="../interface#pyatv.interface.BaseService.merge">merge</a></code></li>
88
+ <li><code><a title="pyatv.conf.ManualService.pairing" href="../interface#pyatv.interface.BaseService.pairing">pairing</a></code></li>
89
+ <li><code><a title="pyatv.conf.ManualService.port" href="../interface#pyatv.interface.BaseService.port">port</a></code></li>
90
+ <li><code><a title="pyatv.conf.ManualService.properties" href="../interface#pyatv.interface.BaseService.properties">properties</a></code></li>
91
+ <li><code><a title="pyatv.conf.ManualService.protocol" href="../interface#pyatv.interface.BaseService.protocol">protocol</a></code></li>
92
+ <li><code><a title="pyatv.conf.ManualService.requires_password" href="../interface#pyatv.interface.BaseService.requires_password">requires_password</a></code></li>
93
+ <li><code><a title="pyatv.conf.ManualService.settings" href="../interface#pyatv.interface.BaseService.settings">settings</a></code></li>
94
+ </ul>
95
+ </li>
96
+ </ul>
97
+ </dd>
98
+ <dt id="pyatv.conf.AppleTV"><code class="flex name class">
99
+ <span>class <span class="ident">AppleTV</span></span>
100
+ <span>(</span><span>address: ipaddress.IPv4Address, name: str, deep_sleep: bool = False, properties: Mapping[str, Mapping[str, str]] | None = None, device_info: <a title="pyatv.interface.DeviceInfo" href="../interface#pyatv.interface.DeviceInfo">DeviceInfo</a> | None = None)</span>
101
+ </code></dt>
102
+ <dd>
103
+ <section class="desc"><p>Representation of a device configuration.</p>
104
+ <p>An instance of this class represents a single device. A device can have
105
+ several services depending on the protocols it supports, e.g. DMAP or
106
+ AirPlay.</p>
107
+ <p>Initialize a new AppleTV.</p></section>
108
+ <div class="git-link-div"><a href="https://github.com/postlund/pyatv/blob/master/pyatv/conf.py#L17-L96" class="git-link">Browse git</a></div>
109
+ <h3>Ancestors</h3>
110
+ <ul class="hlist">
111
+ <li><a title="pyatv.interface.BaseConfig" href="../interface#pyatv.interface.BaseConfig">BaseConfig</a></li>
112
+ <li>abc.ABC</li>
113
+ </ul>
114
+ <h3>Inherited members</h3>
115
+ <ul class="hlist">
116
+ <li><code><b><a title="pyatv.interface.BaseConfig" href="../interface#pyatv.interface.BaseConfig">BaseConfig</a></b></code>:
117
+ <ul class="hlist">
118
+ <li><code><a title="pyatv.interface.BaseConfig.add_service" href="../interface#pyatv.interface.BaseConfig.add_service">add_service</a></code></li>
119
+ <li><code><a title="pyatv.interface.BaseConfig.address" href="../interface#pyatv.interface.BaseConfig.address">address</a></code></li>
120
+ <li><code><a title="pyatv.interface.BaseConfig.all_identifiers" href="../interface#pyatv.interface.BaseConfig.all_identifiers">all_identifiers</a></code></li>
121
+ <li><code><a title="pyatv.interface.BaseConfig.apply" href="../interface#pyatv.interface.BaseConfig.apply">apply</a></code></li>
122
+ <li><code><a title="pyatv.interface.BaseConfig.deep_sleep" href="../interface#pyatv.interface.BaseConfig.deep_sleep">deep_sleep</a></code></li>
123
+ <li><code><a title="pyatv.interface.BaseConfig.device_info" href="../interface#pyatv.interface.BaseConfig.device_info">device_info</a></code></li>
124
+ <li><code><a title="pyatv.interface.BaseConfig.get_service" href="../interface#pyatv.interface.BaseConfig.get_service">get_service</a></code></li>
125
+ <li><code><a title="pyatv.interface.BaseConfig.identifier" href="../interface#pyatv.interface.BaseConfig.identifier">identifier</a></code></li>
126
+ <li><code><a title="pyatv.interface.BaseConfig.main_service" href="../interface#pyatv.interface.BaseConfig.main_service">main_service</a></code></li>
127
+ <li><code><a title="pyatv.interface.BaseConfig.name" href="../interface#pyatv.interface.BaseConfig.name">name</a></code></li>
128
+ <li><code><a title="pyatv.interface.BaseConfig.properties" href="../interface#pyatv.interface.BaseConfig.properties">properties</a></code></li>
129
+ <li><code><a title="pyatv.interface.BaseConfig.ready" href="../interface#pyatv.interface.BaseConfig.ready">ready</a></code></li>
130
+ <li><code><a title="pyatv.interface.BaseConfig.services" href="../interface#pyatv.interface.BaseConfig.services">services</a></code></li>
131
+ <li><code><a title="pyatv.interface.BaseConfig.set_credentials" href="../interface#pyatv.interface.BaseConfig.set_credentials">set_credentials</a></code></li>
132
+ </ul>
133
+ </li>
134
+ </ul>
135
+ </dd>
136
+ <dt id="pyatv.conf.CompanionService"><code class="flex name class">
137
+ <span>class <span class="ident">CompanionService</span></span>
138
+ <span>(</span><span>port: int, credentials: str | None = None, properties: Mapping[str, str] | None = None)</span>
139
+ </code></dt>
140
+ <dd>
141
+ <section class="desc"><p>Representation of a Companion link service.</p>
142
+ <p><strong>DEPRECATED: Use <code><a title="pyatv.conf.ManualService" href="#pyatv.conf.ManualService">ManualService</a></code> instead.</strong></p>
143
+ <p>Initialize a new CompaniomService.</p></section>
144
+ <div class="git-link-div"><a href="https://github.com/postlund/pyatv/blob/master/pyatv/conf.py#L204-L218" class="git-link">Browse git</a></div>
145
+ <h3>Ancestors</h3>
146
+ <ul class="hlist">
147
+ <li><a title="pyatv.conf.ManualService" href="#pyatv.conf.ManualService">ManualService</a></li>
148
+ <li><a title="pyatv.interface.BaseService" href="../interface#pyatv.interface.BaseService">BaseService</a></li>
149
+ <li>abc.ABC</li>
150
+ </ul>
151
+ <h3>Inherited members</h3>
152
+ <ul class="hlist">
153
+ <li><code><b><a title="pyatv.conf.ManualService" href="#pyatv.conf.ManualService">ManualService</a></b></code>:
154
+ <ul class="hlist">
155
+ <li><code><a title="pyatv.conf.ManualService.apply" href="../interface#pyatv.interface.BaseService.apply">apply</a></code></li>
156
+ <li><code><a title="pyatv.conf.ManualService.enabled" href="../interface#pyatv.interface.BaseService.enabled">enabled</a></code></li>
157
+ <li><code><a title="pyatv.conf.ManualService.identifier" href="../interface#pyatv.interface.BaseService.identifier">identifier</a></code></li>
158
+ <li><code><a title="pyatv.conf.ManualService.merge" href="../interface#pyatv.interface.BaseService.merge">merge</a></code></li>
159
+ <li><code><a title="pyatv.conf.ManualService.pairing" href="../interface#pyatv.interface.BaseService.pairing">pairing</a></code></li>
160
+ <li><code><a title="pyatv.conf.ManualService.port" href="../interface#pyatv.interface.BaseService.port">port</a></code></li>
161
+ <li><code><a title="pyatv.conf.ManualService.properties" href="../interface#pyatv.interface.BaseService.properties">properties</a></code></li>
162
+ <li><code><a title="pyatv.conf.ManualService.protocol" href="../interface#pyatv.interface.BaseService.protocol">protocol</a></code></li>
163
+ <li><code><a title="pyatv.conf.ManualService.requires_password" href="../interface#pyatv.interface.BaseService.requires_password">requires_password</a></code></li>
164
+ <li><code><a title="pyatv.conf.ManualService.settings" href="../interface#pyatv.interface.BaseService.settings">settings</a></code></li>
165
+ </ul>
166
+ </li>
167
+ </ul>
168
+ </dd>
169
+ <dt id="pyatv.conf.DmapService"><code class="flex name class">
170
+ <span>class <span class="ident">DmapService</span></span>
171
+ <span>(</span><span>identifier: str | None, credentials: str | None, port: int = 3689, properties: Mapping[str, str] | None = None)</span>
172
+ </code></dt>
173
+ <dd>
174
+ <section class="desc"><p>Representation of a DMAP service.</p>
175
+ <p><strong>DEPRECATED: Use <code><a title="pyatv.conf.ManualService" href="#pyatv.conf.ManualService">ManualService</a></code> instead.</strong></p>
176
+ <p>Initialize a new DmapService.</p></section>
177
+ <div class="git-link-div"><a href="https://github.com/postlund/pyatv/blob/master/pyatv/conf.py#L147-L162" class="git-link">Browse git</a></div>
178
+ <h3>Ancestors</h3>
179
+ <ul class="hlist">
180
+ <li><a title="pyatv.conf.ManualService" href="#pyatv.conf.ManualService">ManualService</a></li>
181
+ <li><a title="pyatv.interface.BaseService" href="../interface#pyatv.interface.BaseService">BaseService</a></li>
182
+ <li>abc.ABC</li>
183
+ </ul>
184
+ <h3>Inherited members</h3>
185
+ <ul class="hlist">
186
+ <li><code><b><a title="pyatv.conf.ManualService" href="#pyatv.conf.ManualService">ManualService</a></b></code>:
187
+ <ul class="hlist">
188
+ <li><code><a title="pyatv.conf.ManualService.apply" href="../interface#pyatv.interface.BaseService.apply">apply</a></code></li>
189
+ <li><code><a title="pyatv.conf.ManualService.enabled" href="../interface#pyatv.interface.BaseService.enabled">enabled</a></code></li>
190
+ <li><code><a title="pyatv.conf.ManualService.identifier" href="../interface#pyatv.interface.BaseService.identifier">identifier</a></code></li>
191
+ <li><code><a title="pyatv.conf.ManualService.merge" href="../interface#pyatv.interface.BaseService.merge">merge</a></code></li>
192
+ <li><code><a title="pyatv.conf.ManualService.pairing" href="../interface#pyatv.interface.BaseService.pairing">pairing</a></code></li>
193
+ <li><code><a title="pyatv.conf.ManualService.port" href="../interface#pyatv.interface.BaseService.port">port</a></code></li>
194
+ <li><code><a title="pyatv.conf.ManualService.properties" href="../interface#pyatv.interface.BaseService.properties">properties</a></code></li>
195
+ <li><code><a title="pyatv.conf.ManualService.protocol" href="../interface#pyatv.interface.BaseService.protocol">protocol</a></code></li>
196
+ <li><code><a title="pyatv.conf.ManualService.requires_password" href="../interface#pyatv.interface.BaseService.requires_password">requires_password</a></code></li>
197
+ <li><code><a title="pyatv.conf.ManualService.settings" href="../interface#pyatv.interface.BaseService.settings">settings</a></code></li>
198
+ </ul>
199
+ </li>
200
+ </ul>
201
+ </dd>
202
+ <dt id="pyatv.conf.ManualService"><code class="flex name class">
203
+ <span>class <span class="ident">ManualService</span></span>
204
+ <span>(</span><span>identifier: str | None, protocol: <a title="pyatv.const.Protocol" href="../const#pyatv.const.Protocol">Protocol</a>, port: int, properties: Mapping[str, str] | None, credentials: str | None = None, password: str | None = None, requires_password: bool = False, pairing_requirement: <a title="pyatv.const.PairingRequirement" href="../const#pyatv.const.PairingRequirement">PairingRequirement</a> = PairingRequirement.Unsupported, enabled: bool = True)</span>
205
+ </code></dt>
206
+ <dd>
207
+ <section class="desc"><p>Service used when manually creating and adding a service.</p>
208
+ <p>Initialize a new ManualService.</p></section>
209
+ <div class="git-link-div"><a href="https://github.com/postlund/pyatv/blob/master/pyatv/conf.py#L99-L143" class="git-link">Browse git</a></div>
210
+ <h3>Ancestors</h3>
211
+ <ul class="hlist">
212
+ <li><a title="pyatv.interface.BaseService" href="../interface#pyatv.interface.BaseService">BaseService</a></li>
213
+ <li>abc.ABC</li>
214
+ </ul>
215
+ <h3>Subclasses</h3>
216
+ <ul class="hlist">
217
+ <li><a title="pyatv.conf.AirPlayService" href="#pyatv.conf.AirPlayService">AirPlayService</a></li>
218
+ <li><a title="pyatv.conf.CompanionService" href="#pyatv.conf.CompanionService">CompanionService</a></li>
219
+ <li><a title="pyatv.conf.DmapService" href="#pyatv.conf.DmapService">DmapService</a></li>
220
+ <li><a title="pyatv.conf.MrpService" href="#pyatv.conf.MrpService">MrpService</a></li>
221
+ <li><a title="pyatv.conf.RaopService" href="#pyatv.conf.RaopService">RaopService</a></li>
222
+ </ul>
223
+ <h3>Inherited members</h3>
224
+ <ul class="hlist">
225
+ <li><code><b><a title="pyatv.interface.BaseService" href="../interface#pyatv.interface.BaseService">BaseService</a></b></code>:
226
+ <ul class="hlist">
227
+ <li><code><a title="pyatv.interface.BaseService.apply" href="../interface#pyatv.interface.BaseService.apply">apply</a></code></li>
228
+ <li><code><a title="pyatv.interface.BaseService.enabled" href="../interface#pyatv.interface.BaseService.enabled">enabled</a></code></li>
229
+ <li><code><a title="pyatv.interface.BaseService.identifier" href="../interface#pyatv.interface.BaseService.identifier">identifier</a></code></li>
230
+ <li><code><a title="pyatv.interface.BaseService.merge" href="../interface#pyatv.interface.BaseService.merge">merge</a></code></li>
231
+ <li><code><a title="pyatv.interface.BaseService.pairing" href="../interface#pyatv.interface.BaseService.pairing">pairing</a></code></li>
232
+ <li><code><a title="pyatv.interface.BaseService.port" href="../interface#pyatv.interface.BaseService.port">port</a></code></li>
233
+ <li><code><a title="pyatv.interface.BaseService.properties" href="../interface#pyatv.interface.BaseService.properties">properties</a></code></li>
234
+ <li><code><a title="pyatv.interface.BaseService.protocol" href="../interface#pyatv.interface.BaseService.protocol">protocol</a></code></li>
235
+ <li><code><a title="pyatv.interface.BaseService.requires_password" href="../interface#pyatv.interface.BaseService.requires_password">requires_password</a></code></li>
236
+ <li><code><a title="pyatv.interface.BaseService.settings" href="../interface#pyatv.interface.BaseService.settings">settings</a></code></li>
237
+ </ul>
238
+ </li>
239
+ </ul>
240
+ </dd>
241
+ <dt id="pyatv.conf.MrpService"><code class="flex name class">
242
+ <span>class <span class="ident">MrpService</span></span>
243
+ <span>(</span><span>identifier: str | None, port: int, credentials: str | None = None, properties: Mapping[str, str] | None = None)</span>
244
+ </code></dt>
245
+ <dd>
246
+ <section class="desc"><p>Representation of a MediaRemote Protocol (MRP) service.</p>
247
+ <p><strong>DEPRECATED: Use <code><a title="pyatv.conf.ManualService" href="#pyatv.conf.ManualService">ManualService</a></code> instead.</strong></p>
248
+ <p>Initialize a new MrpService.</p></section>
249
+ <div class="git-link-div"><a href="https://github.com/postlund/pyatv/blob/master/pyatv/conf.py#L166-L181" class="git-link">Browse git</a></div>
250
+ <h3>Ancestors</h3>
251
+ <ul class="hlist">
252
+ <li><a title="pyatv.conf.ManualService" href="#pyatv.conf.ManualService">ManualService</a></li>
253
+ <li><a title="pyatv.interface.BaseService" href="../interface#pyatv.interface.BaseService">BaseService</a></li>
254
+ <li>abc.ABC</li>
255
+ </ul>
256
+ <h3>Inherited members</h3>
257
+ <ul class="hlist">
258
+ <li><code><b><a title="pyatv.conf.ManualService" href="#pyatv.conf.ManualService">ManualService</a></b></code>:
259
+ <ul class="hlist">
260
+ <li><code><a title="pyatv.conf.ManualService.apply" href="../interface#pyatv.interface.BaseService.apply">apply</a></code></li>
261
+ <li><code><a title="pyatv.conf.ManualService.enabled" href="../interface#pyatv.interface.BaseService.enabled">enabled</a></code></li>
262
+ <li><code><a title="pyatv.conf.ManualService.identifier" href="../interface#pyatv.interface.BaseService.identifier">identifier</a></code></li>
263
+ <li><code><a title="pyatv.conf.ManualService.merge" href="../interface#pyatv.interface.BaseService.merge">merge</a></code></li>
264
+ <li><code><a title="pyatv.conf.ManualService.pairing" href="../interface#pyatv.interface.BaseService.pairing">pairing</a></code></li>
265
+ <li><code><a title="pyatv.conf.ManualService.port" href="../interface#pyatv.interface.BaseService.port">port</a></code></li>
266
+ <li><code><a title="pyatv.conf.ManualService.properties" href="../interface#pyatv.interface.BaseService.properties">properties</a></code></li>
267
+ <li><code><a title="pyatv.conf.ManualService.protocol" href="../interface#pyatv.interface.BaseService.protocol">protocol</a></code></li>
268
+ <li><code><a title="pyatv.conf.ManualService.requires_password" href="../interface#pyatv.interface.BaseService.requires_password">requires_password</a></code></li>
269
+ <li><code><a title="pyatv.conf.ManualService.settings" href="../interface#pyatv.interface.BaseService.settings">settings</a></code></li>
270
+ </ul>
271
+ </li>
272
+ </ul>
273
+ </dd>
274
+ <dt id="pyatv.conf.RaopService"><code class="flex name class">
275
+ <span>class <span class="ident">RaopService</span></span>
276
+ <span>(</span><span>identifier: str | None, port: int = 7000, credentials: str | None = None, password: str | None = None, properties: Mapping[str, str] | None = None)</span>
277
+ </code></dt>
278
+ <dd>
279
+ <section class="desc"><p>Representation of an RAOP service.</p>
280
+ <p><strong>DEPRECATED: Use <code><a title="pyatv.conf.ManualService" href="#pyatv.conf.ManualService">ManualService</a></code> instead.</strong></p>
281
+ <p>Initialize a new RaopService.</p></section>
282
+ <div class="git-link-div"><a href="https://github.com/postlund/pyatv/blob/master/pyatv/conf.py#L222-L240" class="git-link">Browse git</a></div>
283
+ <h3>Ancestors</h3>
284
+ <ul class="hlist">
285
+ <li><a title="pyatv.conf.ManualService" href="#pyatv.conf.ManualService">ManualService</a></li>
286
+ <li><a title="pyatv.interface.BaseService" href="../interface#pyatv.interface.BaseService">BaseService</a></li>
287
+ <li>abc.ABC</li>
288
+ </ul>
289
+ <h3>Inherited members</h3>
290
+ <ul class="hlist">
291
+ <li><code><b><a title="pyatv.conf.ManualService" href="#pyatv.conf.ManualService">ManualService</a></b></code>:
292
+ <ul class="hlist">
293
+ <li><code><a title="pyatv.conf.ManualService.apply" href="../interface#pyatv.interface.BaseService.apply">apply</a></code></li>
294
+ <li><code><a title="pyatv.conf.ManualService.enabled" href="../interface#pyatv.interface.BaseService.enabled">enabled</a></code></li>
295
+ <li><code><a title="pyatv.conf.ManualService.identifier" href="../interface#pyatv.interface.BaseService.identifier">identifier</a></code></li>
296
+ <li><code><a title="pyatv.conf.ManualService.merge" href="../interface#pyatv.interface.BaseService.merge">merge</a></code></li>
297
+ <li><code><a title="pyatv.conf.ManualService.pairing" href="../interface#pyatv.interface.BaseService.pairing">pairing</a></code></li>
298
+ <li><code><a title="pyatv.conf.ManualService.port" href="../interface#pyatv.interface.BaseService.port">port</a></code></li>
299
+ <li><code><a title="pyatv.conf.ManualService.properties" href="../interface#pyatv.interface.BaseService.properties">properties</a></code></li>
300
+ <li><code><a title="pyatv.conf.ManualService.protocol" href="../interface#pyatv.interface.BaseService.protocol">protocol</a></code></li>
301
+ <li><code><a title="pyatv.conf.ManualService.requires_password" href="../interface#pyatv.interface.BaseService.requires_password">requires_password</a></code></li>
302
+ <li><code><a title="pyatv.conf.ManualService.settings" href="../interface#pyatv.interface.BaseService.settings">settings</a></code></li>
303
+ </ul>
304
+ </li>
305
+ </ul>
306
+ </dd>
307
+ </dl>
308
+ </section>
309
+ </article>
310
+ <footer id="footer">
311
+ <p>Generated by <a href="https://pdoc3.github.io/pdoc"><cite>pdoc</cite>.</p>
312
+ </footer>