@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,974 @@
1
+ ---
2
+ layout: template
3
+ title: API - pyatv.const
4
+ permalink: /api/const/
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.const.DeviceModel" href="#pyatv.const.DeviceModel">DeviceModel</a></code></h4>
22
+ <ul class="two-column">
23
+ <li><code><a title="pyatv.const.DeviceModel.AirPortExpress" href="#pyatv.const.DeviceModel.AirPortExpress">AirPortExpress</a></code></li>
24
+ <li><code><a title="pyatv.const.DeviceModel.AirPortExpressGen2" href="#pyatv.const.DeviceModel.AirPortExpressGen2">AirPortExpressGen2</a></code></li>
25
+ <li><code><a title="pyatv.const.DeviceModel.AppleTV4KGen2" href="#pyatv.const.DeviceModel.AppleTV4KGen2">AppleTV4KGen2</a></code></li>
26
+ <li><code><a title="pyatv.const.DeviceModel.AppleTV4KGen3" href="#pyatv.const.DeviceModel.AppleTV4KGen3">AppleTV4KGen3</a></code></li>
27
+ <li><code><a title="pyatv.const.DeviceModel.AppleTVGen1" href="#pyatv.const.DeviceModel.AppleTVGen1">AppleTVGen1</a></code></li>
28
+ <li><code><a title="pyatv.const.DeviceModel.Gen2" href="#pyatv.const.DeviceModel.Gen2">Gen2</a></code></li>
29
+ <li><code><a title="pyatv.const.DeviceModel.Gen3" href="#pyatv.const.DeviceModel.Gen3">Gen3</a></code></li>
30
+ <li><code><a title="pyatv.const.DeviceModel.Gen4" href="#pyatv.const.DeviceModel.Gen4">Gen4</a></code></li>
31
+ <li><code><a title="pyatv.const.DeviceModel.Gen4K" href="#pyatv.const.DeviceModel.Gen4K">Gen4K</a></code></li>
32
+ <li><code><a title="pyatv.const.DeviceModel.HomePod" href="#pyatv.const.DeviceModel.HomePod">HomePod</a></code></li>
33
+ <li><code><a title="pyatv.const.DeviceModel.HomePodGen2" href="#pyatv.const.DeviceModel.HomePodGen2">HomePodGen2</a></code></li>
34
+ <li><code><a title="pyatv.const.DeviceModel.HomePodMini" href="#pyatv.const.DeviceModel.HomePodMini">HomePodMini</a></code></li>
35
+ <li><code><a title="pyatv.const.DeviceModel.Music" href="#pyatv.const.DeviceModel.Music">Music</a></code></li>
36
+ <li><code><a title="pyatv.const.DeviceModel.Unknown" href="#pyatv.const.DeviceModel.Unknown">Unknown</a></code></li>
37
+ </ul>
38
+ </li>
39
+ <li>
40
+ <h4><code><a title="pyatv.const.DeviceState" href="#pyatv.const.DeviceState">DeviceState</a></code></h4>
41
+ <ul class="two-column">
42
+ <li><code><a title="pyatv.const.DeviceState.Idle" href="#pyatv.const.DeviceState.Idle">Idle</a></code></li>
43
+ <li><code><a title="pyatv.const.DeviceState.Loading" href="#pyatv.const.DeviceState.Loading">Loading</a></code></li>
44
+ <li><code><a title="pyatv.const.DeviceState.Paused" href="#pyatv.const.DeviceState.Paused">Paused</a></code></li>
45
+ <li><code><a title="pyatv.const.DeviceState.Playing" href="#pyatv.const.DeviceState.Playing">Playing</a></code></li>
46
+ <li><code><a title="pyatv.const.DeviceState.Seeking" href="#pyatv.const.DeviceState.Seeking">Seeking</a></code></li>
47
+ <li><code><a title="pyatv.const.DeviceState.Stopped" href="#pyatv.const.DeviceState.Stopped">Stopped</a></code></li>
48
+ </ul>
49
+ </li>
50
+ <li>
51
+ <h4><code><a title="pyatv.const.FeatureName" href="#pyatv.const.FeatureName">FeatureName</a></code></h4>
52
+ <ul class="">
53
+ <li><code><a title="pyatv.const.FeatureName.AccountList" href="#pyatv.const.FeatureName.AccountList">AccountList</a></code></li>
54
+ <li><code><a title="pyatv.const.FeatureName.Action" href="#pyatv.const.FeatureName.Action">Action</a></code></li>
55
+ <li><code><a title="pyatv.const.FeatureName.AddOutputDevices" href="#pyatv.const.FeatureName.AddOutputDevices">AddOutputDevices</a></code></li>
56
+ <li><code><a title="pyatv.const.FeatureName.Album" href="#pyatv.const.FeatureName.Album">Album</a></code></li>
57
+ <li><code><a title="pyatv.const.FeatureName.App" href="#pyatv.const.FeatureName.App">App</a></code></li>
58
+ <li><code><a title="pyatv.const.FeatureName.AppList" href="#pyatv.const.FeatureName.AppList">AppList</a></code></li>
59
+ <li><code><a title="pyatv.const.FeatureName.Artist" href="#pyatv.const.FeatureName.Artist">Artist</a></code></li>
60
+ <li><code><a title="pyatv.const.FeatureName.Artwork" href="#pyatv.const.FeatureName.Artwork">Artwork</a></code></li>
61
+ <li><code><a title="pyatv.const.FeatureName.ChannelDown" href="#pyatv.const.FeatureName.ChannelDown">ChannelDown</a></code></li>
62
+ <li><code><a title="pyatv.const.FeatureName.ChannelUp" href="#pyatv.const.FeatureName.ChannelUp">ChannelUp</a></code></li>
63
+ <li><code><a title="pyatv.const.FeatureName.Click" href="#pyatv.const.FeatureName.Click">Click</a></code></li>
64
+ <li><code><a title="pyatv.const.FeatureName.ContentIdentifier" href="#pyatv.const.FeatureName.ContentIdentifier">ContentIdentifier</a></code></li>
65
+ <li><code><a title="pyatv.const.FeatureName.Down" href="#pyatv.const.FeatureName.Down">Down</a></code></li>
66
+ <li><code><a title="pyatv.const.FeatureName.EpisodeNumber" href="#pyatv.const.FeatureName.EpisodeNumber">EpisodeNumber</a></code></li>
67
+ <li><code><a title="pyatv.const.FeatureName.Genre" href="#pyatv.const.FeatureName.Genre">Genre</a></code></li>
68
+ <li><code><a title="pyatv.const.FeatureName.Home" href="#pyatv.const.FeatureName.Home">Home</a></code></li>
69
+ <li><code><a title="pyatv.const.FeatureName.HomeHold" href="#pyatv.const.FeatureName.HomeHold">HomeHold</a></code></li>
70
+ <li><code><a title="pyatv.const.FeatureName.LaunchApp" href="#pyatv.const.FeatureName.LaunchApp">LaunchApp</a></code></li>
71
+ <li><code><a title="pyatv.const.FeatureName.Left" href="#pyatv.const.FeatureName.Left">Left</a></code></li>
72
+ <li><code><a title="pyatv.const.FeatureName.Menu" href="#pyatv.const.FeatureName.Menu">Menu</a></code></li>
73
+ <li><code><a title="pyatv.const.FeatureName.Next" href="#pyatv.const.FeatureName.Next">Next</a></code></li>
74
+ <li><code><a title="pyatv.const.FeatureName.OutputDevices" href="#pyatv.const.FeatureName.OutputDevices">OutputDevices</a></code></li>
75
+ <li><code><a title="pyatv.const.FeatureName.Pause" href="#pyatv.const.FeatureName.Pause">Pause</a></code></li>
76
+ <li><code><a title="pyatv.const.FeatureName.Play" href="#pyatv.const.FeatureName.Play">Play</a></code></li>
77
+ <li><code><a title="pyatv.const.FeatureName.PlayPause" href="#pyatv.const.FeatureName.PlayPause">PlayPause</a></code></li>
78
+ <li><code><a title="pyatv.const.FeatureName.PlayUrl" href="#pyatv.const.FeatureName.PlayUrl">PlayUrl</a></code></li>
79
+ <li><code><a title="pyatv.const.FeatureName.Position" href="#pyatv.const.FeatureName.Position">Position</a></code></li>
80
+ <li><code><a title="pyatv.const.FeatureName.PowerState" href="#pyatv.const.FeatureName.PowerState">PowerState</a></code></li>
81
+ <li><code><a title="pyatv.const.FeatureName.Previous" href="#pyatv.const.FeatureName.Previous">Previous</a></code></li>
82
+ <li><code><a title="pyatv.const.FeatureName.PushUpdates" href="#pyatv.const.FeatureName.PushUpdates">PushUpdates</a></code></li>
83
+ <li><code><a title="pyatv.const.FeatureName.RemoveOutputDevices" href="#pyatv.const.FeatureName.RemoveOutputDevices">RemoveOutputDevices</a></code></li>
84
+ <li><code><a title="pyatv.const.FeatureName.Repeat" href="#pyatv.const.FeatureName.Repeat">Repeat</a></code></li>
85
+ <li><code><a title="pyatv.const.FeatureName.Right" href="#pyatv.const.FeatureName.Right">Right</a></code></li>
86
+ <li><code><a title="pyatv.const.FeatureName.Screensaver" href="#pyatv.const.FeatureName.Screensaver">Screensaver</a></code></li>
87
+ <li><code><a title="pyatv.const.FeatureName.SeasonNumber" href="#pyatv.const.FeatureName.SeasonNumber">SeasonNumber</a></code></li>
88
+ <li><code><a title="pyatv.const.FeatureName.Select" href="#pyatv.const.FeatureName.Select">Select</a></code></li>
89
+ <li><code><a title="pyatv.const.FeatureName.SeriesName" href="#pyatv.const.FeatureName.SeriesName">SeriesName</a></code></li>
90
+ <li><code><a title="pyatv.const.FeatureName.SetOutputDevices" href="#pyatv.const.FeatureName.SetOutputDevices">SetOutputDevices</a></code></li>
91
+ <li><code><a title="pyatv.const.FeatureName.SetPosition" href="#pyatv.const.FeatureName.SetPosition">SetPosition</a></code></li>
92
+ <li><code><a title="pyatv.const.FeatureName.SetRepeat" href="#pyatv.const.FeatureName.SetRepeat">SetRepeat</a></code></li>
93
+ <li><code><a title="pyatv.const.FeatureName.SetShuffle" href="#pyatv.const.FeatureName.SetShuffle">SetShuffle</a></code></li>
94
+ <li><code><a title="pyatv.const.FeatureName.SetVolume" href="#pyatv.const.FeatureName.SetVolume">SetVolume</a></code></li>
95
+ <li><code><a title="pyatv.const.FeatureName.Shuffle" href="#pyatv.const.FeatureName.Shuffle">Shuffle</a></code></li>
96
+ <li><code><a title="pyatv.const.FeatureName.SkipBackward" href="#pyatv.const.FeatureName.SkipBackward">SkipBackward</a></code></li>
97
+ <li><code><a title="pyatv.const.FeatureName.SkipForward" href="#pyatv.const.FeatureName.SkipForward">SkipForward</a></code></li>
98
+ <li><code><a title="pyatv.const.FeatureName.Stop" href="#pyatv.const.FeatureName.Stop">Stop</a></code></li>
99
+ <li><code><a title="pyatv.const.FeatureName.StreamFile" href="#pyatv.const.FeatureName.StreamFile">StreamFile</a></code></li>
100
+ <li><code><a title="pyatv.const.FeatureName.Suspend" href="#pyatv.const.FeatureName.Suspend">Suspend</a></code></li>
101
+ <li><code><a title="pyatv.const.FeatureName.Swipe" href="#pyatv.const.FeatureName.Swipe">Swipe</a></code></li>
102
+ <li><code><a title="pyatv.const.FeatureName.SwitchAccount" href="#pyatv.const.FeatureName.SwitchAccount">SwitchAccount</a></code></li>
103
+ <li><code><a title="pyatv.const.FeatureName.TextAppend" href="#pyatv.const.FeatureName.TextAppend">TextAppend</a></code></li>
104
+ <li><code><a title="pyatv.const.FeatureName.TextClear" href="#pyatv.const.FeatureName.TextClear">TextClear</a></code></li>
105
+ <li><code><a title="pyatv.const.FeatureName.TextFocusState" href="#pyatv.const.FeatureName.TextFocusState">TextFocusState</a></code></li>
106
+ <li><code><a title="pyatv.const.FeatureName.TextGet" href="#pyatv.const.FeatureName.TextGet">TextGet</a></code></li>
107
+ <li><code><a title="pyatv.const.FeatureName.TextSet" href="#pyatv.const.FeatureName.TextSet">TextSet</a></code></li>
108
+ <li><code><a title="pyatv.const.FeatureName.Title" href="#pyatv.const.FeatureName.Title">Title</a></code></li>
109
+ <li><code><a title="pyatv.const.FeatureName.TopMenu" href="#pyatv.const.FeatureName.TopMenu">TopMenu</a></code></li>
110
+ <li><code><a title="pyatv.const.FeatureName.TotalTime" href="#pyatv.const.FeatureName.TotalTime">TotalTime</a></code></li>
111
+ <li><code><a title="pyatv.const.FeatureName.TurnOff" href="#pyatv.const.FeatureName.TurnOff">TurnOff</a></code></li>
112
+ <li><code><a title="pyatv.const.FeatureName.TurnOn" href="#pyatv.const.FeatureName.TurnOn">TurnOn</a></code></li>
113
+ <li><code><a title="pyatv.const.FeatureName.Up" href="#pyatv.const.FeatureName.Up">Up</a></code></li>
114
+ <li><code><a title="pyatv.const.FeatureName.Volume" href="#pyatv.const.FeatureName.Volume">Volume</a></code></li>
115
+ <li><code><a title="pyatv.const.FeatureName.VolumeDown" href="#pyatv.const.FeatureName.VolumeDown">VolumeDown</a></code></li>
116
+ <li><code><a title="pyatv.const.FeatureName.VolumeUp" href="#pyatv.const.FeatureName.VolumeUp">VolumeUp</a></code></li>
117
+ <li><code><a title="pyatv.const.FeatureName.WakeUp" href="#pyatv.const.FeatureName.WakeUp">WakeUp</a></code></li>
118
+ <li><code><a title="pyatv.const.FeatureName.iTunesStoreIdentifier" href="#pyatv.const.FeatureName.iTunesStoreIdentifier">iTunesStoreIdentifier</a></code></li>
119
+ </ul>
120
+ </li>
121
+ <li>
122
+ <h4><code><a title="pyatv.const.FeatureState" href="#pyatv.const.FeatureState">FeatureState</a></code></h4>
123
+ <ul class="">
124
+ <li><code><a title="pyatv.const.FeatureState.Available" href="#pyatv.const.FeatureState.Available">Available</a></code></li>
125
+ <li><code><a title="pyatv.const.FeatureState.Unavailable" href="#pyatv.const.FeatureState.Unavailable">Unavailable</a></code></li>
126
+ <li><code><a title="pyatv.const.FeatureState.Unknown" href="#pyatv.const.FeatureState.Unknown">Unknown</a></code></li>
127
+ <li><code><a title="pyatv.const.FeatureState.Unsupported" href="#pyatv.const.FeatureState.Unsupported">Unsupported</a></code></li>
128
+ </ul>
129
+ </li>
130
+ <li>
131
+ <h4><code><a title="pyatv.const.InputAction" href="#pyatv.const.InputAction">InputAction</a></code></h4>
132
+ <ul class="">
133
+ <li><code><a title="pyatv.const.InputAction.DoubleTap" href="#pyatv.const.InputAction.DoubleTap">DoubleTap</a></code></li>
134
+ <li><code><a title="pyatv.const.InputAction.Hold" href="#pyatv.const.InputAction.Hold">Hold</a></code></li>
135
+ <li><code><a title="pyatv.const.InputAction.SingleTap" href="#pyatv.const.InputAction.SingleTap">SingleTap</a></code></li>
136
+ </ul>
137
+ </li>
138
+ <li>
139
+ <h4><code><a title="pyatv.const.KeyboardFocusState" href="#pyatv.const.KeyboardFocusState">KeyboardFocusState</a></code></h4>
140
+ <ul class="">
141
+ <li><code><a title="pyatv.const.KeyboardFocusState.Focused" href="#pyatv.const.KeyboardFocusState.Focused">Focused</a></code></li>
142
+ <li><code><a title="pyatv.const.KeyboardFocusState.Unfocused" href="#pyatv.const.KeyboardFocusState.Unfocused">Unfocused</a></code></li>
143
+ <li><code><a title="pyatv.const.KeyboardFocusState.Unknown" href="#pyatv.const.KeyboardFocusState.Unknown">Unknown</a></code></li>
144
+ </ul>
145
+ </li>
146
+ <li>
147
+ <h4><code><a title="pyatv.const.MediaType" href="#pyatv.const.MediaType">MediaType</a></code></h4>
148
+ <ul class="">
149
+ <li><code><a title="pyatv.const.MediaType.Music" href="#pyatv.const.MediaType.Music">Music</a></code></li>
150
+ <li><code><a title="pyatv.const.MediaType.TV" href="#pyatv.const.MediaType.TV">TV</a></code></li>
151
+ <li><code><a title="pyatv.const.MediaType.Unknown" href="#pyatv.const.MediaType.Unknown">Unknown</a></code></li>
152
+ <li><code><a title="pyatv.const.MediaType.Video" href="#pyatv.const.MediaType.Video">Video</a></code></li>
153
+ </ul>
154
+ </li>
155
+ <li>
156
+ <h4><code><a title="pyatv.const.OperatingSystem" href="#pyatv.const.OperatingSystem">OperatingSystem</a></code></h4>
157
+ <ul class="">
158
+ <li><code><a title="pyatv.const.OperatingSystem.AirPortOS" href="#pyatv.const.OperatingSystem.AirPortOS">AirPortOS</a></code></li>
159
+ <li><code><a title="pyatv.const.OperatingSystem.Legacy" href="#pyatv.const.OperatingSystem.Legacy">Legacy</a></code></li>
160
+ <li><code><a title="pyatv.const.OperatingSystem.MacOS" href="#pyatv.const.OperatingSystem.MacOS">MacOS</a></code></li>
161
+ <li><code><a title="pyatv.const.OperatingSystem.TvOS" href="#pyatv.const.OperatingSystem.TvOS">TvOS</a></code></li>
162
+ <li><code><a title="pyatv.const.OperatingSystem.Unknown" href="#pyatv.const.OperatingSystem.Unknown">Unknown</a></code></li>
163
+ </ul>
164
+ </li>
165
+ <li>
166
+ <h4><code><a title="pyatv.const.PairingRequirement" href="#pyatv.const.PairingRequirement">PairingRequirement</a></code></h4>
167
+ <ul class="">
168
+ <li><code><a title="pyatv.const.PairingRequirement.Disabled" href="#pyatv.const.PairingRequirement.Disabled">Disabled</a></code></li>
169
+ <li><code><a title="pyatv.const.PairingRequirement.Mandatory" href="#pyatv.const.PairingRequirement.Mandatory">Mandatory</a></code></li>
170
+ <li><code><a title="pyatv.const.PairingRequirement.NotNeeded" href="#pyatv.const.PairingRequirement.NotNeeded">NotNeeded</a></code></li>
171
+ <li><code><a title="pyatv.const.PairingRequirement.Optional" href="#pyatv.const.PairingRequirement.Optional">Optional</a></code></li>
172
+ <li><code><a title="pyatv.const.PairingRequirement.Unsupported" href="#pyatv.const.PairingRequirement.Unsupported">Unsupported</a></code></li>
173
+ </ul>
174
+ </li>
175
+ <li>
176
+ <h4><code><a title="pyatv.const.PowerState" href="#pyatv.const.PowerState">PowerState</a></code></h4>
177
+ <ul class="">
178
+ <li><code><a title="pyatv.const.PowerState.Off" href="#pyatv.const.PowerState.Off">Off</a></code></li>
179
+ <li><code><a title="pyatv.const.PowerState.On" href="#pyatv.const.PowerState.On">On</a></code></li>
180
+ <li><code><a title="pyatv.const.PowerState.Unknown" href="#pyatv.const.PowerState.Unknown">Unknown</a></code></li>
181
+ </ul>
182
+ </li>
183
+ <li>
184
+ <h4><code><a title="pyatv.const.Protocol" href="#pyatv.const.Protocol">Protocol</a></code></h4>
185
+ <ul class="">
186
+ <li><code><a title="pyatv.const.Protocol.AirPlay" href="#pyatv.const.Protocol.AirPlay">AirPlay</a></code></li>
187
+ <li><code><a title="pyatv.const.Protocol.Companion" href="#pyatv.const.Protocol.Companion">Companion</a></code></li>
188
+ <li><code><a title="pyatv.const.Protocol.DMAP" href="#pyatv.const.Protocol.DMAP">DMAP</a></code></li>
189
+ <li><code><a title="pyatv.const.Protocol.MRP" href="#pyatv.const.Protocol.MRP">MRP</a></code></li>
190
+ <li><code><a title="pyatv.const.Protocol.RAOP" href="#pyatv.const.Protocol.RAOP">RAOP</a></code></li>
191
+ </ul>
192
+ </li>
193
+ <li>
194
+ <h4><code><a title="pyatv.const.RepeatState" href="#pyatv.const.RepeatState">RepeatState</a></code></h4>
195
+ <ul class="">
196
+ <li><code><a title="pyatv.const.RepeatState.All" href="#pyatv.const.RepeatState.All">All</a></code></li>
197
+ <li><code><a title="pyatv.const.RepeatState.Off" href="#pyatv.const.RepeatState.Off">Off</a></code></li>
198
+ <li><code><a title="pyatv.const.RepeatState.Track" href="#pyatv.const.RepeatState.Track">Track</a></code></li>
199
+ </ul>
200
+ </li>
201
+ <li>
202
+ <h4><code><a title="pyatv.const.ShuffleState" href="#pyatv.const.ShuffleState">ShuffleState</a></code></h4>
203
+ <ul class="">
204
+ <li><code><a title="pyatv.const.ShuffleState.Albums" href="#pyatv.const.ShuffleState.Albums">Albums</a></code></li>
205
+ <li><code><a title="pyatv.const.ShuffleState.Off" href="#pyatv.const.ShuffleState.Off">Off</a></code></li>
206
+ <li><code><a title="pyatv.const.ShuffleState.Songs" href="#pyatv.const.ShuffleState.Songs">Songs</a></code></li>
207
+ </ul>
208
+ </li>
209
+ <li>
210
+ <h4><code><a title="pyatv.const.TouchAction" href="#pyatv.const.TouchAction">TouchAction</a></code></h4>
211
+ <ul class="">
212
+ <li><code><a title="pyatv.const.TouchAction.Click" href="#pyatv.const.TouchAction.Click">Click</a></code></li>
213
+ <li><code><a title="pyatv.const.TouchAction.Hold" href="#pyatv.const.TouchAction.Hold">Hold</a></code></li>
214
+ <li><code><a title="pyatv.const.TouchAction.Press" href="#pyatv.const.TouchAction.Press">Press</a></code></li>
215
+ <li><code><a title="pyatv.const.TouchAction.Release" href="#pyatv.const.TouchAction.Release">Release</a></code></li>
216
+ </ul>
217
+ </li>
218
+ </ul>
219
+ </li>
220
+ </ul>
221
+ </nav>
222
+ <article id="content">
223
+ <header>
224
+ <h1 class="title">Module <code>pyatv.const</code></h1>
225
+ </header>
226
+ <section id="section-intro">
227
+ <p>Constants used in the public API.</p>
228
+ <div class="git-link-div"><a href="https://github.com/postlund/pyatv/blob/master/pyatv/const.py#L1-L460" class="git-link">Browse git</a></div>
229
+ </section>
230
+ <section>
231
+ </section>
232
+ <section>
233
+ </section>
234
+ <section>
235
+ </section>
236
+ <section>
237
+ <h2 class="section-title" id="header-classes">Classes</h2>
238
+ <dl>
239
+ <dt id="pyatv.const.DeviceModel"><code class="flex name class">
240
+ <span>class <span class="ident">DeviceModel</span></span>
241
+ <span>(</span><span>*args, **kwds)</span>
242
+ </code></dt>
243
+ <dd>
244
+ <section class="desc"><p>Hardware device model.</p>
245
+ <p>Gen2-Gen4K are Apple TV model names and will be renamed to AppleTVGenX in the
246
+ future.</p></section>
247
+ <div class="git-link-div"><a href="https://github.com/postlund/pyatv/blob/master/pyatv/const.py#L150-L197" class="git-link">Browse git</a></div>
248
+ <h3>Ancestors</h3>
249
+ <ul class="hlist">
250
+ <li>enum.Enum</li>
251
+ </ul>
252
+ <h3>Class variables</h3>
253
+ <dl>
254
+ <dt id="pyatv.const.DeviceModel.AirPortExpress"><code class="name">var <span class="ident">AirPortExpress</span> = 7</code></dt>
255
+ <dd>
256
+ <section class="desc"><p>Device model is AirPort Express (first generation).</p></section>
257
+ </dd>
258
+ <dt id="pyatv.const.DeviceModel.AirPortExpressGen2"><code class="name">var <span class="ident">AirPortExpressGen2</span> = 8</code></dt>
259
+ <dd>
260
+ <section class="desc"><p>Device model is AirPort Express (second generation).</p></section>
261
+ </dd>
262
+ <dt id="pyatv.const.DeviceModel.AppleTV4KGen2"><code class="name">var <span class="ident">AppleTV4KGen2</span> = 9</code></dt>
263
+ <dd>
264
+ <section class="desc"><p>Device model is sixth generation Apple TV (Apple TV 4K gen 2).</p></section>
265
+ </dd>
266
+ <dt id="pyatv.const.DeviceModel.AppleTV4KGen3"><code class="name">var <span class="ident">AppleTV4KGen3</span> = 11</code></dt>
267
+ <dd>
268
+ <section class="desc"><p>Device model is seventh generation Apple TV (Apple TV 4K gen 3).</p></section>
269
+ </dd>
270
+ <dt id="pyatv.const.DeviceModel.AppleTVGen1"><code class="name">var <span class="ident">AppleTVGen1</span> = 13</code></dt>
271
+ <dd>
272
+ <section class="desc"><p>Device model is first generation Apple TV.</p></section>
273
+ </dd>
274
+ <dt id="pyatv.const.DeviceModel.Gen2"><code class="name">var <span class="ident">Gen2</span> = 1</code></dt>
275
+ <dd>
276
+ <section class="desc"><p>Device model is second generation Apple TV (Apple TV 2).</p></section>
277
+ </dd>
278
+ <dt id="pyatv.const.DeviceModel.Gen3"><code class="name">var <span class="ident">Gen3</span> = 2</code></dt>
279
+ <dd>
280
+ <section class="desc"><p>Device model is third generation Apple TV (Apple TV 3).</p></section>
281
+ </dd>
282
+ <dt id="pyatv.const.DeviceModel.Gen4"><code class="name">var <span class="ident">Gen4</span> = 3</code></dt>
283
+ <dd>
284
+ <section class="desc"><p>Device model is fourth generation Apple TV (Apple TV 4).</p></section>
285
+ </dd>
286
+ <dt id="pyatv.const.DeviceModel.Gen4K"><code class="name">var <span class="ident">Gen4K</span> = 4</code></dt>
287
+ <dd>
288
+ <section class="desc"><p>Device model is fifth generation Apple TV (Apple TV 4K).</p></section>
289
+ </dd>
290
+ <dt id="pyatv.const.DeviceModel.HomePod"><code class="name">var <span class="ident">HomePod</span> = 5</code></dt>
291
+ <dd>
292
+ <section class="desc"><p>Device model is HomePod (first generation).</p></section>
293
+ </dd>
294
+ <dt id="pyatv.const.DeviceModel.HomePodGen2"><code class="name">var <span class="ident">HomePodGen2</span> = 12</code></dt>
295
+ <dd>
296
+ <section class="desc"><p>Device model is HomePod (second generation).</p></section>
297
+ </dd>
298
+ <dt id="pyatv.const.DeviceModel.HomePodMini"><code class="name">var <span class="ident">HomePodMini</span> = 6</code></dt>
299
+ <dd>
300
+ <section class="desc"><p>Device model is HomePod Mini (first generation).</p></section>
301
+ </dd>
302
+ <dt id="pyatv.const.DeviceModel.Music"><code class="name">var <span class="ident">Music</span> = 10</code></dt>
303
+ <dd>
304
+ <section class="desc"><p>Music app (or iTunes) running on a desktop computer.</p></section>
305
+ </dd>
306
+ <dt id="pyatv.const.DeviceModel.Unknown"><code class="name">var <span class="ident">Unknown</span> = 0</code></dt>
307
+ <dd>
308
+ <section class="desc"><p>Device model is unknown.</p></section>
309
+ </dd>
310
+ </dl>
311
+ </dd>
312
+ <dt id="pyatv.const.DeviceState"><code class="flex name class">
313
+ <span>class <span class="ident">DeviceState</span></span>
314
+ <span>(</span><span>*args, **kwds)</span>
315
+ </code></dt>
316
+ <dd>
317
+ <section class="desc"><p>All supported device states.</p></section>
318
+ <div class="git-link-div"><a href="https://github.com/postlund/pyatv/blob/master/pyatv/const.py#L53-L72" class="git-link">Browse git</a></div>
319
+ <h3>Ancestors</h3>
320
+ <ul class="hlist">
321
+ <li>enum.Enum</li>
322
+ </ul>
323
+ <h3>Class variables</h3>
324
+ <dl>
325
+ <dt id="pyatv.const.DeviceState.Idle"><code class="name">var <span class="ident">Idle</span> = 0</code></dt>
326
+ <dd>
327
+ <section class="desc"><p>Device is idling, i.e. nothing is playing or about to play.</p></section>
328
+ </dd>
329
+ <dt id="pyatv.const.DeviceState.Loading"><code class="name">var <span class="ident">Loading</span> = 1</code></dt>
330
+ <dd>
331
+ <section class="desc"><p>Media is being loaded but not yet playing.</p></section>
332
+ </dd>
333
+ <dt id="pyatv.const.DeviceState.Paused"><code class="name">var <span class="ident">Paused</span> = 2</code></dt>
334
+ <dd>
335
+ <section class="desc"><p>Media is in paused state.</p></section>
336
+ </dd>
337
+ <dt id="pyatv.const.DeviceState.Playing"><code class="name">var <span class="ident">Playing</span> = 3</code></dt>
338
+ <dd>
339
+ <section class="desc"><p>Media is playing.</p></section>
340
+ </dd>
341
+ <dt id="pyatv.const.DeviceState.Seeking"><code class="name">var <span class="ident">Seeking</span> = 5</code></dt>
342
+ <dd>
343
+ <section class="desc"><p>Media is seeking, e.g fast forward.</p></section>
344
+ </dd>
345
+ <dt id="pyatv.const.DeviceState.Stopped"><code class="name">var <span class="ident">Stopped</span> = 4</code></dt>
346
+ <dd>
347
+ <section class="desc"><p>Media is stopped.</p></section>
348
+ </dd>
349
+ </dl>
350
+ </dd>
351
+ <dt id="pyatv.const.FeatureName"><code class="flex name class">
352
+ <span>class <span class="ident">FeatureName</span></span>
353
+ <span>(</span><span>*args, **kwds)</span>
354
+ </code></dt>
355
+ <dd>
356
+ <section class="desc"><p>All supported features.</p></section>
357
+ <div class="git-link-div"><a href="https://github.com/postlund/pyatv/blob/master/pyatv/const.py#L252-L451" class="git-link">Browse git</a></div>
358
+ <h3>Ancestors</h3>
359
+ <ul class="hlist">
360
+ <li>enum.Enum</li>
361
+ </ul>
362
+ <h3>Class variables</h3>
363
+ <dl>
364
+ <dt id="pyatv.const.FeatureName.AccountList"><code class="name">var <span class="ident">AccountList</span> = 55</code></dt>
365
+ <dd>
366
+ <section class="desc"><p>List of user accounts.</p></section>
367
+ </dd>
368
+ <dt id="pyatv.const.FeatureName.Action"><code class="name">var <span class="ident">Action</span> = 64</code></dt>
369
+ <dd>
370
+ <section class="desc"><p>Touch event to given coordinates.</p></section>
371
+ </dd>
372
+ <dt id="pyatv.const.FeatureName.AddOutputDevices"><code class="name">var <span class="ident">AddOutputDevices</span> = 60</code></dt>
373
+ <dd>
374
+ <section class="desc"><p>Add output devices.</p></section>
375
+ </dd>
376
+ <dt id="pyatv.const.FeatureName.Album"><code class="name">var <span class="ident">Album</span> = 24</code></dt>
377
+ <dd>
378
+ <section class="desc"><p>Album from playing artist.</p></section>
379
+ </dd>
380
+ <dt id="pyatv.const.FeatureName.App"><code class="name">var <span class="ident">App</span> = 35</code></dt>
381
+ <dd>
382
+ <section class="desc"><p>App playing media.</p></section>
383
+ </dd>
384
+ <dt id="pyatv.const.FeatureName.AppList"><code class="name">var <span class="ident">AppList</span> = 38</code></dt>
385
+ <dd>
386
+ <section class="desc"><p>List of launchable apps.</p></section>
387
+ </dd>
388
+ <dt id="pyatv.const.FeatureName.Artist"><code class="name">var <span class="ident">Artist</span> = 23</code></dt>
389
+ <dd>
390
+ <section class="desc"><p>Artist of playing song.</p></section>
391
+ </dd>
392
+ <dt id="pyatv.const.FeatureName.Artwork"><code class="name">var <span class="ident">Artwork</span> = 30</code></dt>
393
+ <dd>
394
+ <section class="desc"><p>Playing media artwork.</p></section>
395
+ </dd>
396
+ <dt id="pyatv.const.FeatureName.ChannelDown"><code class="name">var <span class="ident">ChannelDown</span> = 49</code></dt>
397
+ <dd>
398
+ <section class="desc"><p>Select previous channel.</p></section>
399
+ </dd>
400
+ <dt id="pyatv.const.FeatureName.ChannelUp"><code class="name">var <span class="ident">ChannelUp</span> = 48</code></dt>
401
+ <dd>
402
+ <section class="desc"><p>Select next channel.</p></section>
403
+ </dd>
404
+ <dt id="pyatv.const.FeatureName.Click"><code class="name">var <span class="ident">Click</span> = 65</code></dt>
405
+ <dd>
406
+ <section class="desc"><p>Touch click command.</p></section>
407
+ </dd>
408
+ <dt id="pyatv.const.FeatureName.ContentIdentifier"><code class="name">var <span class="ident">ContentIdentifier</span> = 47</code></dt>
409
+ <dd>
410
+ <section class="desc"><p>Identifier for Content</p></section>
411
+ </dd>
412
+ <dt id="pyatv.const.FeatureName.Down"><code class="name">var <span class="ident">Down</span> = 1</code></dt>
413
+ <dd>
414
+ <section class="desc"><p>Down button on remote.</p></section>
415
+ </dd>
416
+ <dt id="pyatv.const.FeatureName.EpisodeNumber"><code class="name">var <span class="ident">EpisodeNumber</span> = 42</code></dt>
417
+ <dd>
418
+ <section class="desc"><p>Episode number of TV series.</p></section>
419
+ </dd>
420
+ <dt id="pyatv.const.FeatureName.Genre"><code class="name">var <span class="ident">Genre</span> = 25</code></dt>
421
+ <dd>
422
+ <section class="desc"><p>Genre of playing song.</p></section>
423
+ </dd>
424
+ <dt id="pyatv.const.FeatureName.Home"><code class="name">var <span class="ident">Home</span> = 14</code></dt>
425
+ <dd>
426
+ <section class="desc"><p>Home/TV button.</p></section>
427
+ </dd>
428
+ <dt id="pyatv.const.FeatureName.HomeHold"><code class="name">var <span class="ident">HomeHold</span> = 15</code></dt>
429
+ <dd>
430
+ <section class="desc"><p>Long-press home button (deprecated: use RemoteControl.home).</p></section>
431
+ </dd>
432
+ <dt id="pyatv.const.FeatureName.LaunchApp"><code class="name">var <span class="ident">LaunchApp</span> = 39</code></dt>
433
+ <dd>
434
+ <section class="desc"><p>Launch an app.</p></section>
435
+ </dd>
436
+ <dt id="pyatv.const.FeatureName.Left"><code class="name">var <span class="ident">Left</span> = 2</code></dt>
437
+ <dd>
438
+ <section class="desc"><p>Left button on remote.</p></section>
439
+ </dd>
440
+ <dt id="pyatv.const.FeatureName.Menu"><code class="name">var <span class="ident">Menu</span> = 11</code></dt>
441
+ <dd>
442
+ <section class="desc"><p>Go back to previous menu.</p></section>
443
+ </dd>
444
+ <dt id="pyatv.const.FeatureName.Next"><code class="name">var <span class="ident">Next</span> = 8</code></dt>
445
+ <dd>
446
+ <section class="desc"><p>Change to next item.</p></section>
447
+ </dd>
448
+ <dt id="pyatv.const.FeatureName.OutputDevices"><code class="name">var <span class="ident">OutputDevices</span> = 59</code></dt>
449
+ <dd>
450
+ <section class="desc"><p>Current output devices.</p></section>
451
+ </dd>
452
+ <dt id="pyatv.const.FeatureName.Pause"><code class="name">var <span class="ident">Pause</span> = 6</code></dt>
453
+ <dd>
454
+ <section class="desc"><p>Pause playing media.</p></section>
455
+ </dd>
456
+ <dt id="pyatv.const.FeatureName.Play"><code class="name">var <span class="ident">Play</span> = 4</code></dt>
457
+ <dd>
458
+ <section class="desc"><p>Start playing media.</p></section>
459
+ </dd>
460
+ <dt id="pyatv.const.FeatureName.PlayPause"><code class="name">var <span class="ident">PlayPause</span> = 5</code></dt>
461
+ <dd>
462
+ <section class="desc"><p>Toggle between play/pause.</p></section>
463
+ </dd>
464
+ <dt id="pyatv.const.FeatureName.PlayUrl"><code class="name">var <span class="ident">PlayUrl</span> = 31</code></dt>
465
+ <dd>
466
+ <section class="desc"><p>Stream a URL on device.</p></section>
467
+ </dd>
468
+ <dt id="pyatv.const.FeatureName.Position"><code class="name">var <span class="ident">Position</span> = 27</code></dt>
469
+ <dd>
470
+ <section class="desc"><p>Current play time position.</p></section>
471
+ </dd>
472
+ <dt id="pyatv.const.FeatureName.PowerState"><code class="name">var <span class="ident">PowerState</span> = 32</code></dt>
473
+ <dd>
474
+ <section class="desc"><p>Current device power state.</p></section>
475
+ </dd>
476
+ <dt id="pyatv.const.FeatureName.Previous"><code class="name">var <span class="ident">Previous</span> = 9</code></dt>
477
+ <dd>
478
+ <section class="desc"><p>Change to previous item.</p></section>
479
+ </dd>
480
+ <dt id="pyatv.const.FeatureName.PushUpdates"><code class="name">var <span class="ident">PushUpdates</span> = 43</code></dt>
481
+ <dd>
482
+ <section class="desc"><p>Push updates are supported.</p></section>
483
+ </dd>
484
+ <dt id="pyatv.const.FeatureName.RemoveOutputDevices"><code class="name">var <span class="ident">RemoveOutputDevices</span> = 61</code></dt>
485
+ <dd>
486
+ <section class="desc"><p>Remove output devices.</p></section>
487
+ </dd>
488
+ <dt id="pyatv.const.FeatureName.Repeat"><code class="name">var <span class="ident">Repeat</span> = 29</code></dt>
489
+ <dd>
490
+ <section class="desc"><p>Repeat state.</p></section>
491
+ </dd>
492
+ <dt id="pyatv.const.FeatureName.Right"><code class="name">var <span class="ident">Right</span> = 3</code></dt>
493
+ <dd>
494
+ <section class="desc"><p>Right button on remote.</p></section>
495
+ </dd>
496
+ <dt id="pyatv.const.FeatureName.Screensaver"><code class="name">var <span class="ident">Screensaver</span> = 58</code></dt>
497
+ <dd>
498
+ <section class="desc"><p>Activate screen saver.</p></section>
499
+ </dd>
500
+ <dt id="pyatv.const.FeatureName.SeasonNumber"><code class="name">var <span class="ident">SeasonNumber</span> = 41</code></dt>
501
+ <dd>
502
+ <section class="desc"><p>Season number of TV series.</p></section>
503
+ </dd>
504
+ <dt id="pyatv.const.FeatureName.Select"><code class="name">var <span class="ident">Select</span> = 10</code></dt>
505
+ <dd>
506
+ <section class="desc"><p>Select current option.</p></section>
507
+ </dd>
508
+ <dt id="pyatv.const.FeatureName.SeriesName"><code class="name">var <span class="ident">SeriesName</span> = 40</code></dt>
509
+ <dd>
510
+ <section class="desc"><p>Title of TV series.</p></section>
511
+ </dd>
512
+ <dt id="pyatv.const.FeatureName.SetOutputDevices"><code class="name">var <span class="ident">SetOutputDevices</span> = 62</code></dt>
513
+ <dd>
514
+ <section class="desc"><p>Set output devices.</p></section>
515
+ </dd>
516
+ <dt id="pyatv.const.FeatureName.SetPosition"><code class="name">var <span class="ident">SetPosition</span> = 19</code></dt>
517
+ <dd>
518
+ <section class="desc"><p>Seek to position.</p></section>
519
+ </dd>
520
+ <dt id="pyatv.const.FeatureName.SetRepeat"><code class="name">var <span class="ident">SetRepeat</span> = 21</code></dt>
521
+ <dd>
522
+ <section class="desc"><p>Change repeat state.</p></section>
523
+ </dd>
524
+ <dt id="pyatv.const.FeatureName.SetShuffle"><code class="name">var <span class="ident">SetShuffle</span> = 20</code></dt>
525
+ <dd>
526
+ <section class="desc"><p>Change shuffle state.</p></section>
527
+ </dd>
528
+ <dt id="pyatv.const.FeatureName.SetVolume"><code class="name">var <span class="ident">SetVolume</span> = 46</code></dt>
529
+ <dd>
530
+ <section class="desc"><p>Set volume level.</p></section>
531
+ </dd>
532
+ <dt id="pyatv.const.FeatureName.Shuffle"><code class="name">var <span class="ident">Shuffle</span> = 28</code></dt>
533
+ <dd>
534
+ <section class="desc"><p>Shuffle state.</p></section>
535
+ </dd>
536
+ <dt id="pyatv.const.FeatureName.SkipBackward"><code class="name">var <span class="ident">SkipBackward</span> = 37</code></dt>
537
+ <dd>
538
+ <section class="desc"><p>Skip backwards a time interval.</p></section>
539
+ </dd>
540
+ <dt id="pyatv.const.FeatureName.SkipForward"><code class="name">var <span class="ident">SkipForward</span> = 36</code></dt>
541
+ <dd>
542
+ <section class="desc"><p>Skip forward a time interval.</p></section>
543
+ </dd>
544
+ <dt id="pyatv.const.FeatureName.Stop"><code class="name">var <span class="ident">Stop</span> = 7</code></dt>
545
+ <dd>
546
+ <section class="desc"><p>Stop playing media.</p></section>
547
+ </dd>
548
+ <dt id="pyatv.const.FeatureName.StreamFile"><code class="name">var <span class="ident">StreamFile</span> = 44</code></dt>
549
+ <dd>
550
+ <section class="desc"><p>Stream local file to device.</p></section>
551
+ </dd>
552
+ <dt id="pyatv.const.FeatureName.Suspend"><code class="name">var <span class="ident">Suspend</span> = 17</code></dt>
553
+ <dd>
554
+ <section class="desc"><p>Suspend device (deprecated; use Power.turn_off).</p></section>
555
+ </dd>
556
+ <dt id="pyatv.const.FeatureName.Swipe"><code class="name">var <span class="ident">Swipe</span> = 63</code></dt>
557
+ <dd>
558
+ <section class="desc"><p>Touch swipe from given coordinates and duration.</p></section>
559
+ </dd>
560
+ <dt id="pyatv.const.FeatureName.SwitchAccount"><code class="name">var <span class="ident">SwitchAccount</span> = 56</code></dt>
561
+ <dd>
562
+ <section class="desc"><p>Switch user account.</p></section>
563
+ </dd>
564
+ <dt id="pyatv.const.FeatureName.TextAppend"><code class="name">var <span class="ident">TextAppend</span> = 53</code></dt>
565
+ <dd>
566
+ <section class="desc"><p>Input text into virtual keyboard.</p></section>
567
+ </dd>
568
+ <dt id="pyatv.const.FeatureName.TextClear"><code class="name">var <span class="ident">TextClear</span> = 52</code></dt>
569
+ <dd>
570
+ <section class="desc"><p>Clear virtual keyboard text.</p></section>
571
+ </dd>
572
+ <dt id="pyatv.const.FeatureName.TextFocusState"><code class="name">var <span class="ident">TextFocusState</span> = 57</code></dt>
573
+ <dd>
574
+ <section class="desc"><p>Current virtual keyboard focus state.</p></section>
575
+ </dd>
576
+ <dt id="pyatv.const.FeatureName.TextGet"><code class="name">var <span class="ident">TextGet</span> = 51</code></dt>
577
+ <dd>
578
+ <section class="desc"><p>Get current virtual keyboard text.</p></section>
579
+ </dd>
580
+ <dt id="pyatv.const.FeatureName.TextSet"><code class="name">var <span class="ident">TextSet</span> = 54</code></dt>
581
+ <dd>
582
+ <section class="desc"><p>Replace text in virtual keyboard.</p></section>
583
+ </dd>
584
+ <dt id="pyatv.const.FeatureName.Title"><code class="name">var <span class="ident">Title</span> = 22</code></dt>
585
+ <dd>
586
+ <section class="desc"><p>Title of playing media.</p></section>
587
+ </dd>
588
+ <dt id="pyatv.const.FeatureName.TopMenu"><code class="name">var <span class="ident">TopMenu</span> = 16</code></dt>
589
+ <dd>
590
+ <section class="desc"><p>Go to main menu.</p></section>
591
+ </dd>
592
+ <dt id="pyatv.const.FeatureName.TotalTime"><code class="name">var <span class="ident">TotalTime</span> = 26</code></dt>
593
+ <dd>
594
+ <section class="desc"><p>Total length of playing media (seconds).</p></section>
595
+ </dd>
596
+ <dt id="pyatv.const.FeatureName.TurnOff"><code class="name">var <span class="ident">TurnOff</span> = 34</code></dt>
597
+ <dd>
598
+ <section class="desc"><p>Turn off device.</p></section>
599
+ </dd>
600
+ <dt id="pyatv.const.FeatureName.TurnOn"><code class="name">var <span class="ident">TurnOn</span> = 33</code></dt>
601
+ <dd>
602
+ <section class="desc"><p>Turn device on.</p></section>
603
+ </dd>
604
+ <dt id="pyatv.const.FeatureName.Up"><code class="name">var <span class="ident">Up</span> = 0</code></dt>
605
+ <dd>
606
+ <section class="desc"><p>Up button on remote.</p></section>
607
+ </dd>
608
+ <dt id="pyatv.const.FeatureName.Volume"><code class="name">var <span class="ident">Volume</span> = 45</code></dt>
609
+ <dd>
610
+ <section class="desc"><p>Current volume level.</p></section>
611
+ </dd>
612
+ <dt id="pyatv.const.FeatureName.VolumeDown"><code class="name">var <span class="ident">VolumeDown</span> = 13</code></dt>
613
+ <dd>
614
+ <section class="desc"><p>Decrease volume.</p></section>
615
+ </dd>
616
+ <dt id="pyatv.const.FeatureName.VolumeUp"><code class="name">var <span class="ident">VolumeUp</span> = 12</code></dt>
617
+ <dd>
618
+ <section class="desc"><p>Increase volume.</p></section>
619
+ </dd>
620
+ <dt id="pyatv.const.FeatureName.WakeUp"><code class="name">var <span class="ident">WakeUp</span> = 18</code></dt>
621
+ <dd>
622
+ <section class="desc"><p>Wake up device (deprecated; use Power.turn_on).</p></section>
623
+ </dd>
624
+ <dt id="pyatv.const.FeatureName.iTunesStoreIdentifier"><code class="name">var <span class="ident">iTunesStoreIdentifier</span> = 50</code></dt>
625
+ <dd>
626
+ <section class="desc"><p>iTunes Store Identifier for Content</p></section>
627
+ </dd>
628
+ </dl>
629
+ </dd>
630
+ <dt id="pyatv.const.FeatureState"><code class="flex name class">
631
+ <span>class <span class="ident">FeatureState</span></span>
632
+ <span>(</span><span>*args, **kwds)</span>
633
+ </code></dt>
634
+ <dd>
635
+ <section class="desc"><p>State of a particular feature.</p></section>
636
+ <div class="git-link-div"><a href="https://github.com/postlund/pyatv/blob/master/pyatv/const.py#L232-L248" class="git-link">Browse git</a></div>
637
+ <h3>Ancestors</h3>
638
+ <ul class="hlist">
639
+ <li>enum.Enum</li>
640
+ </ul>
641
+ <h3>Class variables</h3>
642
+ <dl>
643
+ <dt id="pyatv.const.FeatureState.Available"><code class="name">var <span class="ident">Available</span> = 3</code></dt>
644
+ <dd>
645
+ <section class="desc"><p>Feature is supported and available.</p></section>
646
+ </dd>
647
+ <dt id="pyatv.const.FeatureState.Unavailable"><code class="name">var <span class="ident">Unavailable</span> = 2</code></dt>
648
+ <dd>
649
+ <section class="desc"><p>Feature is supported by device but not available now.</p>
650
+ <p>Pause is for instance unavailable if nothing is playing.</p></section>
651
+ </dd>
652
+ <dt id="pyatv.const.FeatureState.Unknown"><code class="name">var <span class="ident">Unknown</span> = 0</code></dt>
653
+ <dd>
654
+ <section class="desc"><p>Feature is supported by device but it is not known if it is available or not.</p></section>
655
+ </dd>
656
+ <dt id="pyatv.const.FeatureState.Unsupported"><code class="name">var <span class="ident">Unsupported</span> = 1</code></dt>
657
+ <dd>
658
+ <section class="desc"><p>Device does not support this feature.</p></section>
659
+ </dd>
660
+ </dl>
661
+ </dd>
662
+ <dt id="pyatv.const.InputAction"><code class="flex name class">
663
+ <span>class <span class="ident">InputAction</span></span>
664
+ <span>(</span><span>*args, **kwds)</span>
665
+ </code></dt>
666
+ <dd>
667
+ <section class="desc"><p>Type of input when pressing a button.</p></section>
668
+ <div class="git-link-div"><a href="https://github.com/postlund/pyatv/blob/master/pyatv/const.py#L200-L210" class="git-link">Browse git</a></div>
669
+ <h3>Ancestors</h3>
670
+ <ul class="hlist">
671
+ <li>enum.Enum</li>
672
+ </ul>
673
+ <h3>Class variables</h3>
674
+ <dl>
675
+ <dt id="pyatv.const.InputAction.DoubleTap"><code class="name">var <span class="ident">DoubleTap</span> = 1</code></dt>
676
+ <dd>
677
+ <section class="desc"><p>Press and release twice quickly.</p></section>
678
+ </dd>
679
+ <dt id="pyatv.const.InputAction.Hold"><code class="name">var <span class="ident">Hold</span> = 2</code></dt>
680
+ <dd>
681
+ <section class="desc"><p>Press and hold for one second before releasing.</p></section>
682
+ </dd>
683
+ <dt id="pyatv.const.InputAction.SingleTap"><code class="name">var <span class="ident">SingleTap</span> = 0</code></dt>
684
+ <dd>
685
+ <section class="desc"><p>Press and release quickly.</p></section>
686
+ </dd>
687
+ </dl>
688
+ </dd>
689
+ <dt id="pyatv.const.KeyboardFocusState"><code class="flex name class">
690
+ <span>class <span class="ident">KeyboardFocusState</span></span>
691
+ <span>(</span><span>*args, **kwds)</span>
692
+ </code></dt>
693
+ <dd>
694
+ <section class="desc"><p>All supported keyboard focus states.</p></section>
695
+ <div class="git-link-div"><a href="https://github.com/postlund/pyatv/blob/master/pyatv/const.py#L114-L124" class="git-link">Browse git</a></div>
696
+ <h3>Ancestors</h3>
697
+ <ul class="hlist">
698
+ <li>enum.Enum</li>
699
+ </ul>
700
+ <h3>Class variables</h3>
701
+ <dl>
702
+ <dt id="pyatv.const.KeyboardFocusState.Focused"><code class="name">var <span class="ident">Focused</span> = 2</code></dt>
703
+ <dd>
704
+ <section class="desc"><p>Keyboard is focused.</p></section>
705
+ </dd>
706
+ <dt id="pyatv.const.KeyboardFocusState.Unfocused"><code class="name">var <span class="ident">Unfocused</span> = 1</code></dt>
707
+ <dd>
708
+ <section class="desc"><p>Keyboard is not focused.</p></section>
709
+ </dd>
710
+ <dt id="pyatv.const.KeyboardFocusState.Unknown"><code class="name">var <span class="ident">Unknown</span> = 0</code></dt>
711
+ <dd>
712
+ <section class="desc"><p>Keyboard focus state is not determinable.</p></section>
713
+ </dd>
714
+ </dl>
715
+ </dd>
716
+ <dt id="pyatv.const.MediaType"><code class="flex name class">
717
+ <span>class <span class="ident">MediaType</span></span>
718
+ <span>(</span><span>*args, **kwds)</span>
719
+ </code></dt>
720
+ <dd>
721
+ <section class="desc"><p>All supported media types.</p></section>
722
+ <div class="git-link-div"><a href="https://github.com/postlund/pyatv/blob/master/pyatv/const.py#L33-L50" class="git-link">Browse git</a></div>
723
+ <h3>Ancestors</h3>
724
+ <ul class="hlist">
725
+ <li>enum.Enum</li>
726
+ </ul>
727
+ <h3>Class variables</h3>
728
+ <dl>
729
+ <dt id="pyatv.const.MediaType.Music"><code class="name">var <span class="ident">Music</span> = 2</code></dt>
730
+ <dd>
731
+ <section class="desc"><p>Media type is music.</p></section>
732
+ </dd>
733
+ <dt id="pyatv.const.MediaType.TV"><code class="name">var <span class="ident">TV</span> = 3</code></dt>
734
+ <dd>
735
+ <section class="desc"><p>Media type is a TV show.</p></section>
736
+ </dd>
737
+ <dt id="pyatv.const.MediaType.Unknown"><code class="name">var <span class="ident">Unknown</span> = 0</code></dt>
738
+ <dd>
739
+ <section class="desc"><p>Media type is not known.</p>
740
+ <p>This can be either the case that nothing is playing or the app does
741
+ not report a valid media type.</p></section>
742
+ </dd>
743
+ <dt id="pyatv.const.MediaType.Video"><code class="name">var <span class="ident">Video</span> = 1</code></dt>
744
+ <dd>
745
+ <section class="desc"><p>Media type is video.</p></section>
746
+ </dd>
747
+ </dl>
748
+ </dd>
749
+ <dt id="pyatv.const.OperatingSystem"><code class="flex name class">
750
+ <span>class <span class="ident">OperatingSystem</span></span>
751
+ <span>(</span><span>*args, **kwds)</span>
752
+ </code></dt>
753
+ <dd>
754
+ <section class="desc"><p>Operating system on device.</p></section>
755
+ <div class="git-link-div"><a href="https://github.com/postlund/pyatv/blob/master/pyatv/const.py#L127-L147" class="git-link">Browse git</a></div>
756
+ <h3>Ancestors</h3>
757
+ <ul class="hlist">
758
+ <li>enum.Enum</li>
759
+ </ul>
760
+ <h3>Class variables</h3>
761
+ <dl>
762
+ <dt id="pyatv.const.OperatingSystem.AirPortOS"><code class="name">var <span class="ident">AirPortOS</span> = 3</code></dt>
763
+ <dd>
764
+ <section class="desc"><p>Operating system is AirPortOS.</p>
765
+ <p>This OS is used by AirPort Express devices. It is not an official name but made up
766
+ in pyatv as no official name has been found.</p></section>
767
+ </dd>
768
+ <dt id="pyatv.const.OperatingSystem.Legacy"><code class="name">var <span class="ident">Legacy</span> = 1</code></dt>
769
+ <dd>
770
+ <section class="desc"><p>Operating system
771
+ is Apple TV Software (pre-tvOS).</p></section>
772
+ </dd>
773
+ <dt id="pyatv.const.OperatingSystem.MacOS"><code class="name">var <span class="ident">MacOS</span> = 4</code></dt>
774
+ <dd>
775
+ <section class="desc"><p>Operating system is macOS.</p></section>
776
+ </dd>
777
+ <dt id="pyatv.const.OperatingSystem.TvOS"><code class="name">var <span class="ident">TvOS</span> = 2</code></dt>
778
+ <dd>
779
+ <section class="desc"><p>Operating system is tvOS.</p></section>
780
+ </dd>
781
+ <dt id="pyatv.const.OperatingSystem.Unknown"><code class="name">var <span class="ident">Unknown</span> = 0</code></dt>
782
+ <dd>
783
+ <section class="desc"><p>Operating system is not known.</p></section>
784
+ </dd>
785
+ </dl>
786
+ </dd>
787
+ <dt id="pyatv.const.PairingRequirement"><code class="flex name class">
788
+ <span>class <span class="ident">PairingRequirement</span></span>
789
+ <span>(</span><span>*args, **kwds)</span>
790
+ </code></dt>
791
+ <dd>
792
+ <section class="desc"><p>Pairing requirement for a service.</p></section>
793
+ <div class="git-link-div"><a href="https://github.com/postlund/pyatv/blob/master/pyatv/const.py#L213-L229" class="git-link">Browse git</a></div>
794
+ <h3>Ancestors</h3>
795
+ <ul class="hlist">
796
+ <li>enum.Enum</li>
797
+ </ul>
798
+ <h3>Class variables</h3>
799
+ <dl>
800
+ <dt id="pyatv.const.PairingRequirement.Disabled"><code class="name">var <span class="ident">Disabled</span> = 2</code></dt>
801
+ <dd>
802
+ <section class="desc"><p>Pairing is disabled by protocol.</p></section>
803
+ </dd>
804
+ <dt id="pyatv.const.PairingRequirement.Mandatory"><code class="name">var <span class="ident">Mandatory</span> = 5</code></dt>
805
+ <dd>
806
+ <section class="desc"><p>Pairing must be performed.</p></section>
807
+ </dd>
808
+ <dt id="pyatv.const.PairingRequirement.NotNeeded"><code class="name">var <span class="ident">NotNeeded</span> = 3</code></dt>
809
+ <dd>
810
+ <section class="desc"><p>Pairing is not needed.</p></section>
811
+ </dd>
812
+ <dt id="pyatv.const.PairingRequirement.Optional"><code class="name">var <span class="ident">Optional</span> = 4</code></dt>
813
+ <dd>
814
+ <section class="desc"><p>Pairing is supported but not required.</p></section>
815
+ </dd>
816
+ <dt id="pyatv.const.PairingRequirement.Unsupported"><code class="name">var <span class="ident">Unsupported</span> = 1</code></dt>
817
+ <dd>
818
+ <section class="desc"><p>Not supported by protocol or not implemented.</p></section>
819
+ </dd>
820
+ </dl>
821
+ </dd>
822
+ <dt id="pyatv.const.PowerState"><code class="flex name class">
823
+ <span>class <span class="ident">PowerState</span></span>
824
+ <span>(</span><span>*args, **kwds)</span>
825
+ </code></dt>
826
+ <dd>
827
+ <section class="desc"><p>All supported power states.</p></section>
828
+ <div class="git-link-div"><a href="https://github.com/postlund/pyatv/blob/master/pyatv/const.py#L101-L111" class="git-link">Browse git</a></div>
829
+ <h3>Ancestors</h3>
830
+ <ul class="hlist">
831
+ <li>enum.Enum</li>
832
+ </ul>
833
+ <h3>Class variables</h3>
834
+ <dl>
835
+ <dt id="pyatv.const.PowerState.Off"><code class="name">var <span class="ident">Off</span> = 1</code></dt>
836
+ <dd>
837
+ <section class="desc"><p>Device is turned off (standby).</p></section>
838
+ </dd>
839
+ <dt id="pyatv.const.PowerState.On"><code class="name">var <span class="ident">On</span> = 2</code></dt>
840
+ <dd>
841
+ <section class="desc"><p>Device is turned on.</p></section>
842
+ </dd>
843
+ <dt id="pyatv.const.PowerState.Unknown"><code class="name">var <span class="ident">Unknown</span> = 0</code></dt>
844
+ <dd>
845
+ <section class="desc"><p>Power state is not determinable.</p></section>
846
+ </dd>
847
+ </dl>
848
+ </dd>
849
+ <dt id="pyatv.const.Protocol"><code class="flex name class">
850
+ <span>class <span class="ident">Protocol</span></span>
851
+ <span>(</span><span>*args, **kwds)</span>
852
+ </code></dt>
853
+ <dd>
854
+ <section class="desc"><p>All supported protocols.</p></section>
855
+ <div class="git-link-div"><a href="https://github.com/postlund/pyatv/blob/master/pyatv/const.py#L14-L30" class="git-link">Browse git</a></div>
856
+ <h3>Ancestors</h3>
857
+ <ul class="hlist">
858
+ <li>enum.Enum</li>
859
+ </ul>
860
+ <h3>Class variables</h3>
861
+ <dl>
862
+ <dt id="pyatv.const.Protocol.AirPlay"><code class="name">var <span class="ident">AirPlay</span> = 3</code></dt>
863
+ <dd>
864
+ <section class="desc"><p>Protocol constant representing AirPlay.</p></section>
865
+ </dd>
866
+ <dt id="pyatv.const.Protocol.Companion"><code class="name">var <span class="ident">Companion</span> = 4</code></dt>
867
+ <dd>
868
+ <section class="desc"><p>Protocol constant representing Companion link.</p></section>
869
+ </dd>
870
+ <dt id="pyatv.const.Protocol.DMAP"><code class="name">var <span class="ident">DMAP</span> = 1</code></dt>
871
+ <dd>
872
+ <section class="desc"><p>Protocol constant representing DMAP.</p></section>
873
+ </dd>
874
+ <dt id="pyatv.const.Protocol.MRP"><code class="name">var <span class="ident">MRP</span> = 2</code></dt>
875
+ <dd>
876
+ <section class="desc"><p>Protocol constant representing MRP.</p></section>
877
+ </dd>
878
+ <dt id="pyatv.const.Protocol.RAOP"><code class="name">var <span class="ident">RAOP</span> = 5</code></dt>
879
+ <dd>
880
+ <section class="desc"><p>Protocol constant representing RAOP.</p></section>
881
+ </dd>
882
+ </dl>
883
+ </dd>
884
+ <dt id="pyatv.const.RepeatState"><code class="flex name class">
885
+ <span>class <span class="ident">RepeatState</span></span>
886
+ <span>(</span><span>*args, **kwds)</span>
887
+ </code></dt>
888
+ <dd>
889
+ <section class="desc"><p>All supported repeat states.</p></section>
890
+ <div class="git-link-div"><a href="https://github.com/postlund/pyatv/blob/master/pyatv/const.py#L75-L85" class="git-link">Browse git</a></div>
891
+ <h3>Ancestors</h3>
892
+ <ul class="hlist">
893
+ <li>enum.Enum</li>
894
+ </ul>
895
+ <h3>Class variables</h3>
896
+ <dl>
897
+ <dt id="pyatv.const.RepeatState.All"><code class="name">var <span class="ident">All</span> = 2</code></dt>
898
+ <dd>
899
+ <section class="desc"><p>Repeat all tracks or items.</p></section>
900
+ </dd>
901
+ <dt id="pyatv.const.RepeatState.Off"><code class="name">var <span class="ident">Off</span> = 0</code></dt>
902
+ <dd>
903
+ <section class="desc"><p>Repeat is off.</p></section>
904
+ </dd>
905
+ <dt id="pyatv.const.RepeatState.Track"><code class="name">var <span class="ident">Track</span> = 1</code></dt>
906
+ <dd>
907
+ <section class="desc"><p>Repeat current track or item.</p></section>
908
+ </dd>
909
+ </dl>
910
+ </dd>
911
+ <dt id="pyatv.const.ShuffleState"><code class="flex name class">
912
+ <span>class <span class="ident">ShuffleState</span></span>
913
+ <span>(</span><span>*args, **kwds)</span>
914
+ </code></dt>
915
+ <dd>
916
+ <section class="desc"><p>All supported shuffle states.</p></section>
917
+ <div class="git-link-div"><a href="https://github.com/postlund/pyatv/blob/master/pyatv/const.py#L88-L98" class="git-link">Browse git</a></div>
918
+ <h3>Ancestors</h3>
919
+ <ul class="hlist">
920
+ <li>enum.Enum</li>
921
+ </ul>
922
+ <h3>Class variables</h3>
923
+ <dl>
924
+ <dt id="pyatv.const.ShuffleState.Albums"><code class="name">var <span class="ident">Albums</span> = 1</code></dt>
925
+ <dd>
926
+ <section class="desc"><p>Shuffle on album level.</p></section>
927
+ </dd>
928
+ <dt id="pyatv.const.ShuffleState.Off"><code class="name">var <span class="ident">Off</span> = 0</code></dt>
929
+ <dd>
930
+ <section class="desc"><p>Shuffle is off.</p></section>
931
+ </dd>
932
+ <dt id="pyatv.const.ShuffleState.Songs"><code class="name">var <span class="ident">Songs</span> = 2</code></dt>
933
+ <dd>
934
+ <section class="desc"><p>Shuffle on song level.</p></section>
935
+ </dd>
936
+ </dl>
937
+ </dd>
938
+ <dt id="pyatv.const.TouchAction"><code class="flex name class">
939
+ <span>class <span class="ident">TouchAction</span></span>
940
+ <span>(</span><span>*args, **kwds)</span>
941
+ </code></dt>
942
+ <dd>
943
+ <section class="desc"><p>Touch action constants.</p></section>
944
+ <div class="git-link-div"><a href="https://github.com/postlund/pyatv/blob/master/pyatv/const.py#L454-L460" class="git-link">Browse git</a></div>
945
+ <h3>Ancestors</h3>
946
+ <ul class="hlist">
947
+ <li>enum.Enum</li>
948
+ </ul>
949
+ <h3>Class variables</h3>
950
+ <dl>
951
+ <dt id="pyatv.const.TouchAction.Click"><code class="name">var <span class="ident">Click</span> = 5</code></dt>
952
+ <dd>
953
+ <section class="desc"></section>
954
+ </dd>
955
+ <dt id="pyatv.const.TouchAction.Hold"><code class="name">var <span class="ident">Hold</span> = 3</code></dt>
956
+ <dd>
957
+ <section class="desc"></section>
958
+ </dd>
959
+ <dt id="pyatv.const.TouchAction.Press"><code class="name">var <span class="ident">Press</span> = 1</code></dt>
960
+ <dd>
961
+ <section class="desc"></section>
962
+ </dd>
963
+ <dt id="pyatv.const.TouchAction.Release"><code class="name">var <span class="ident">Release</span> = 4</code></dt>
964
+ <dd>
965
+ <section class="desc"></section>
966
+ </dd>
967
+ </dl>
968
+ </dd>
969
+ </dl>
970
+ </section>
971
+ </article>
972
+ <footer id="footer">
973
+ <p>Generated by <a href="https://pdoc3.github.io/pdoc"><cite>pdoc</cite>.</p>
974
+ </footer>