@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.
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +89 -9
- package/dist/index.js.map +1 -1
- package/dist/mdns.d.ts.map +1 -1
- package/dist/mdns.js +96 -11
- package/dist/mdns.js.map +1 -1
- package/examples/print-device-json.js +22 -0
- package/package.json +2 -3
- package/pyatv/.codecov.yml +38 -0
- package/pyatv/.github/FUNDING.yml +3 -0
- package/pyatv/.github/ISSUE_TEMPLATE/bug_report.yml +80 -0
- package/pyatv/.github/ISSUE_TEMPLATE/config.yml +1 -0
- package/pyatv/.github/ISSUE_TEMPLATE/feature_request.yml +22 -0
- package/pyatv/.github/ISSUE_TEMPLATE/implementation-proposal.yml +29 -0
- package/pyatv/.github/ISSUE_TEMPLATE/investigation.yml +16 -0
- package/pyatv/.github/ISSUE_TEMPLATE/minor-change.yml +10 -0
- package/pyatv/.github/ISSUE_TEMPLATE/question-or-idea.yml +11 -0
- package/pyatv/.github/dependabot.yml +26 -0
- package/pyatv/.github/workflows/codeql-analysis.yml +71 -0
- package/pyatv/.github/workflows/release.yml +160 -0
- package/pyatv/.github/workflows/tests.yml +104 -0
- package/pyatv/.gitpod.yml +23 -0
- package/pyatv/CHANGES.md +3708 -0
- package/pyatv/CODE_OF_CONDUCT.md +76 -0
- package/pyatv/CONTRIBUTING.md +72 -0
- package/pyatv/CONTRIBUTORS.md +3 -0
- package/pyatv/Dockerfile +15 -0
- package/pyatv/LICENSE.md +9 -0
- package/pyatv/MANIFEST.in +14 -0
- package/pyatv/README.md +111 -0
- package/pyatv/base_versions.txt +13 -0
- package/pyatv/chickn.yaml +75 -0
- package/pyatv/docs/404.html +24 -0
- package/pyatv/docs/CNAME +1 -0
- package/pyatv/docs/Gemfile +31 -0
- package/pyatv/docs/_config.yml +121 -0
- package/pyatv/docs/_includes/api +10 -0
- package/pyatv/docs/_includes/atvremote_scan +32 -0
- package/pyatv/docs/_includes/code +6 -0
- package/pyatv/docs/_includes/issue +14 -0
- package/pyatv/docs/_includes/pypi +5 -0
- package/pyatv/docs/_layouts/template.html +109 -0
- package/pyatv/docs/api/pyatv.conf.html +312 -0
- package/pyatv/docs/api/pyatv.const.html +974 -0
- package/pyatv/docs/api/pyatv.convert.html +106 -0
- package/pyatv/docs/api/pyatv.exceptions.html +489 -0
- package/pyatv/docs/api/pyatv.helpers.html +102 -0
- package/pyatv/docs/api/pyatv.html +120 -0
- package/pyatv/docs/api/pyatv.interface.html +2369 -0
- package/pyatv/docs/api/pyatv.settings.html +484 -0
- package/pyatv/docs/api/pyatv.storage.file_storage.html +102 -0
- package/pyatv/docs/api/pyatv.storage.html +186 -0
- package/pyatv/docs/api/pyatv.storage.memory_storage.html +83 -0
- package/pyatv/docs/assets/css/custom.css +19 -0
- package/pyatv/docs/assets/css/hljs.css +1 -0
- package/pyatv/docs/assets/css/normalize.css +349 -0
- package/pyatv/docs/assets/css/pdoc.css +287 -0
- package/pyatv/docs/assets/css/sanitize.css +566 -0
- package/pyatv/docs/assets/css/style.scss +9 -0
- package/pyatv/docs/assets/img/logo.svg +63 -0
- package/pyatv/docs/assets/js/highlight.9.12.0.min.js +3 -0
- package/pyatv/docs/assets/js/mermaid.8.9.2.min.js +32 -0
- package/pyatv/docs/assets/js/mermaid.min.js.map +1 -0
- package/pyatv/docs/development/apps.md +81 -0
- package/pyatv/docs/development/audio.md +42 -0
- package/pyatv/docs/development/control.md +56 -0
- package/pyatv/docs/development/development.md +15 -0
- package/pyatv/docs/development/device_info.md +36 -0
- package/pyatv/docs/development/examples.md +44 -0
- package/pyatv/docs/development/features.md +70 -0
- package/pyatv/docs/development/keyboard.md +51 -0
- package/pyatv/docs/development/listeners.md +144 -0
- package/pyatv/docs/development/logging.md +55 -0
- package/pyatv/docs/development/metadata.md +115 -0
- package/pyatv/docs/development/power_management.md +53 -0
- package/pyatv/docs/development/scan_pair_and_connect.md +331 -0
- package/pyatv/docs/development/services.md +9 -0
- package/pyatv/docs/development/storage.md +259 -0
- package/pyatv/docs/development/stream.md +241 -0
- package/pyatv/docs/development/testing.md +9 -0
- package/pyatv/docs/documentation/atvlog.md +64 -0
- package/pyatv/docs/documentation/atvproxy.md +244 -0
- package/pyatv/docs/documentation/atvremote.md +639 -0
- package/pyatv/docs/documentation/atvscript.md +275 -0
- package/pyatv/docs/documentation/concepts.md +168 -0
- package/pyatv/docs/documentation/documentation.md +130 -0
- package/pyatv/docs/documentation/getting_started.md +248 -0
- package/pyatv/docs/documentation/protocols.md +1959 -0
- package/pyatv/docs/documentation/supported_features.md +246 -0
- package/pyatv/docs/documentation/tutorial.md +1062 -0
- package/pyatv/docs/documentation/workspace.code-workspace +7 -0
- package/pyatv/docs/favicon.ico +0 -0
- package/pyatv/docs/index.md +109 -0
- package/pyatv/docs/internals/design.md +354 -0
- package/pyatv/docs/internals/documentation.md +84 -0
- package/pyatv/docs/internals/interfaces.md +95 -0
- package/pyatv/docs/internals/internals.md +157 -0
- package/pyatv/docs/internals/submit_pr.md +56 -0
- package/pyatv/docs/internals/testing.md +176 -0
- package/pyatv/docs/internals/tools.md +574 -0
- package/pyatv/docs/pdoc_templates/config.mako +46 -0
- package/pyatv/docs/pdoc_templates/html.mako +454 -0
- package/pyatv/docs/support/acknowledgements.md +87 -0
- package/pyatv/docs/support/faq.md +214 -0
- package/pyatv/docs/support/migration.md +138 -0
- package/pyatv/docs/support/scanning_issues.md +110 -0
- package/pyatv/docs/support/support.md +18 -0
- package/pyatv/docs/support/troubleshooting.md +83 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/AudioFadeMessage.proto +13 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/AudioFadeMessage_pb2.pyi +37 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/AudioFadeResponseMessage.proto +11 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/AudioFadeResponseMessage_pb2.pyi +32 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/AudioFormatSettingsMessage.proto +5 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/AudioFormatSettingsMessage_pb2.pyi +27 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/ClientUpdatesConfigMessage.proto +16 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/ClientUpdatesConfigMessage_pb2.pyi +44 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/CommandInfo.proto +117 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/CommandInfo_pb2.pyi +325 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/CommandOptions.proto +36 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/CommandOptions_pb2.pyi +115 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/Common.proto +79 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/Common_pb2.pyi +228 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/ConfigureConnectionMessage.proto +11 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/ConfigureConnectionMessage_pb2.pyi +32 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/ContentItem.proto +27 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/ContentItemMetadata.proto +213 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/ContentItemMetadata_pb2.pyi +630 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/ContentItem_pb2.pyi +94 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/CryptoPairingMessage.proto +15 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/CryptoPairingMessage_pb2.pyi +46 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/DeviceInfoMessage.proto +69 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/DeviceInfoMessage_pb2.pyi +226 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/GenericMessage.proto +12 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/GenericMessage_pb2.pyi +35 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/GetKeyboardSessionMessage.proto +11 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/GetKeyboardSessionMessage_pb2.pyi +26 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/GetRemoteTextInputSessionMessage.proto +10 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/GetRemoteTextInputSessionMessage_pb2.pyi +26 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/GetVolumeMessage.proto +11 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/GetVolumeMessage_pb2.pyi +32 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/GetVolumeResultMessage.proto +11 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/GetVolumeResultMessage_pb2.pyi +32 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/KeyboardMessage.proto +88 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/KeyboardMessage_pb2.pyi +261 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/LanguageOption.proto +9 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/LanguageOption_pb2.pyi +42 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/ModifyOutputContextRequestMessage.proto +23 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/ModifyOutputContextRequestMessage_pb2.pyi +86 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/NotificationMessage.proto +12 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/NotificationMessage_pb2.pyi +38 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/NowPlayingClient.proto +12 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/NowPlayingClient_pb2.pyi +49 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/NowPlayingInfo.proto +24 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/NowPlayingInfo_pb2.pyi +79 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/NowPlayingPlayer.proto +11 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/NowPlayingPlayer_pb2.pyi +45 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/Origin.proto +17 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/OriginClientPropertiesMessage.proto +11 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/OriginClientPropertiesMessage_pb2.pyi +32 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/Origin_pb2.pyi +63 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/PlaybackQueue.proto +15 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/PlaybackQueueCapabilities.proto +7 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/PlaybackQueueCapabilities_pb2.pyi +33 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/PlaybackQueueContext.proto +5 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/PlaybackQueueContext_pb2.pyi +27 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/PlaybackQueueRequestMessage.proto +29 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/PlaybackQueueRequestMessage_pb2.pyi +87 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/PlaybackQueue_pb2.pyi +53 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/PlayerClientPropertiesMessage.proto +13 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/PlayerClientPropertiesMessage_pb2.pyi +37 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/PlayerPath.proto +11 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/PlayerPath_pb2.pyi +39 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/ProtocolMessage.proto +171 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/ProtocolMessage_pb2.pyi +377 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RegisterForGameControllerEventsMessage.proto +18 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RegisterForGameControllerEventsMessage_pb2.pyi +54 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RegisterHIDDeviceMessage.proto +12 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RegisterHIDDeviceMessage_pb2.pyi +34 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RegisterHIDDeviceResultMessage.proto +12 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RegisterHIDDeviceResultMessage_pb2.pyi +35 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RegisterVoiceInputDeviceMessage.proto +12 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RegisterVoiceInputDeviceMessage_pb2.pyi +34 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RegisterVoiceInputDeviceResponseMessage.proto +12 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RegisterVoiceInputDeviceResponseMessage_pb2.pyi +35 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RemoteTextInputMessage.proto +13 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RemoteTextInputMessage_pb2.pyi +38 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RemoveClientMessage.proto +12 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RemoveClientMessage_pb2.pyi +34 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RemoveEndpointsMessage.proto +11 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RemoveEndpointsMessage_pb2.pyi +34 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RemoveOutputDevicesMessage.proto +12 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RemoveOutputDevicesMessage_pb2.pyi +38 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RemovePlayerMessage.proto +12 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RemovePlayerMessage_pb2.pyi +34 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SendButtonEventMessage.proto +13 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SendButtonEventMessage_pb2.pyi +38 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SendCommandMessage.proto +16 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SendCommandMessage_pb2.pyi +43 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SendCommandResultMessage.proto +100 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SendCommandResultMessage_pb2.pyi +286 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SendHIDEventMessage.proto +41 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SendHIDEventMessage_pb2.pyi +63 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SendPackedVirtualTouchEventMessage.proto +24 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SendPackedVirtualTouchEventMessage_pb2.pyi +64 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SendVoiceInputMessage.proto +38 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SendVoiceInputMessage_pb2.pyi +134 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetArtworkMessage.proto +11 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetArtworkMessage_pb2.pyi +32 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetConnectionStateMessage.proto +18 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetConnectionStateMessage_pb2.pyi +54 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetDefaultSupportedCommandsMessage.proto +28 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetDefaultSupportedCommandsMessage_pb2.pyi +74 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetDiscoveryModeMessage.proto +12 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetDiscoveryModeMessage_pb2.pyi +35 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetHiliteModeMessage.proto +11 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetHiliteModeMessage_pb2.pyi +32 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetNowPlayingClientMessage.proto +12 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetNowPlayingClientMessage_pb2.pyi +34 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetNowPlayingPlayerMessage.proto +12 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetNowPlayingPlayerMessage_pb2.pyi +34 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetRecordingStateMessage.proto +17 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetRecordingStateMessage_pb2.pyi +54 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetStateMessage.proto +27 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetStateMessage_pb2.pyi +72 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetVolumeMessage.proto +12 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetVolumeMessage_pb2.pyi +35 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SupportedCommands.proto +7 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SupportedCommands_pb2.pyi +30 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/TextInputMessage.proto +23 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/TextInputMessage_pb2.pyi +76 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/TransactionKey.proto +6 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/TransactionKey_pb2.pyi +30 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/TransactionMessage.proto +15 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/TransactionMessage_pb2.pyi +42 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/TransactionPacket.proto +11 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/TransactionPacket_pb2.pyi +41 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/TransactionPackets.proto +7 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/TransactionPackets_pb2.pyi +30 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/UpdateClientMessage.proto +12 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/UpdateClientMessage_pb2.pyi +34 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/UpdateContentItemArtworkMessage.proto +14 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/UpdateContentItemArtworkMessage_pb2.pyi +41 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/UpdateContentItemMessage.proto +14 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/UpdateContentItemMessage_pb2.pyi +41 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/UpdateEndPointsMessage.proto +25 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/UpdateEndPointsMessage_pb2.pyi +74 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/UpdateOutputDeviceMessage.proto +88 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/UpdateOutputDeviceMessage_pb2.pyi +277 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/UpdatePlayerPath.proto +12 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/UpdatePlayerPath_pb2.pyi +34 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/VirtualTouchDeviceDescriptorMessage.proto +8 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/VirtualTouchDeviceDescriptorMessage_pb2.pyi +36 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/VoiceInputDeviceDescriptorMessage.proto +8 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/VoiceInputDeviceDescriptorMessage_pb2.pyi +35 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/VolumeControlAvailabilityMessage.proto +23 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/VolumeControlAvailabilityMessage_pb2.pyi +71 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/VolumeControlCapabilitiesDidChangeMessage.proto +14 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/VolumeControlCapabilitiesDidChangeMessage_pb2.pyi +40 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/VolumeDidChangeMessage.proto +13 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/VolumeDidChangeMessage_pb2.pyi +38 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/WakeDeviceMessage.proto +11 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/WakeDeviceMessage_pb2.pyi +26 -0
- package/pyatv/pyatv/py.typed +0 -0
- package/pyatv/pylintrc +49 -0
- package/pyatv/pyproject.toml +74 -0
- package/pyatv/requirements/requirements.txt +14 -0
- package/pyatv/requirements/requirements_docs.txt +2 -0
- package/pyatv/requirements/requirements_test.txt +20 -0
- package/pyatv/scripts/build_docs.sh +17 -0
- package/pyatv/scripts/setup_dev_env.sh +83 -0
- package/pyatv/setup.cfg +14 -0
- package/pyatv/tests/data/README +23 -0
- package/pyatv/tests/data/audio_10_frames.wav +0 -0
- package/pyatv/tests/data/audio_1_packet_metadata.wav +0 -0
- package/pyatv/tests/data/audio_3_packets.wav +0 -0
- package/pyatv/tests/data/only_metadata.wav +0 -0
- package/pyatv/tests/data/only_title.wav +0 -0
- package/pyatv/tests/data/static_3sec.ogg +0 -0
- package/pyatv/tests/data/testfile.txt +1 -0
- package/pyatv/tests/support/pyatv.code-workspace +14 -0
- package/src/index.ts +122 -8
- package/src/mdns.ts +64 -11
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"""
|
|
2
|
+
@generated by mypy-protobuf. Do not edit manually!
|
|
3
|
+
isort:skip_file
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
import builtins
|
|
7
|
+
import google.protobuf.descriptor
|
|
8
|
+
import google.protobuf.message
|
|
9
|
+
import typing
|
|
10
|
+
|
|
11
|
+
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
12
|
+
|
|
13
|
+
@typing.final
|
|
14
|
+
class AudioFormatSettings(google.protobuf.message.Message):
|
|
15
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
16
|
+
|
|
17
|
+
FORMATSETTINGSPLISTDATA_FIELD_NUMBER: builtins.int
|
|
18
|
+
formatSettingsPlistData: builtins.bytes
|
|
19
|
+
def __init__(
|
|
20
|
+
self,
|
|
21
|
+
*,
|
|
22
|
+
formatSettingsPlistData: builtins.bytes | None = ...,
|
|
23
|
+
) -> None: ...
|
|
24
|
+
def HasField(self, field_name: typing.Literal["formatSettingsPlistData", b"formatSettingsPlistData"]) -> builtins.bool: ...
|
|
25
|
+
def ClearField(self, field_name: typing.Literal["formatSettingsPlistData", b"formatSettingsPlistData"]) -> None: ...
|
|
26
|
+
|
|
27
|
+
global___AudioFormatSettings = AudioFormatSettings
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
syntax = "proto2";
|
|
2
|
+
|
|
3
|
+
import "pyatv/protocols/mrp/protobuf/ProtocolMessage.proto";
|
|
4
|
+
|
|
5
|
+
extend ProtocolMessage {
|
|
6
|
+
optional ClientUpdatesConfigMessage clientUpdatesConfigMessage = 21;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
message ClientUpdatesConfigMessage {
|
|
10
|
+
optional bool artworkUpdates = 1;
|
|
11
|
+
optional bool nowPlayingUpdates = 2;
|
|
12
|
+
optional bool volumeUpdates = 3;
|
|
13
|
+
optional bool keyboardUpdates = 4;
|
|
14
|
+
optional bool outputDeviceUpdates = 5;
|
|
15
|
+
}
|
|
16
|
+
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"""
|
|
2
|
+
@generated by mypy-protobuf. Do not edit manually!
|
|
3
|
+
isort:skip_file
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
import builtins
|
|
7
|
+
import google.protobuf.descriptor
|
|
8
|
+
import google.protobuf.internal.extension_dict
|
|
9
|
+
import google.protobuf.message
|
|
10
|
+
import pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2
|
|
11
|
+
import typing
|
|
12
|
+
|
|
13
|
+
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
14
|
+
|
|
15
|
+
@typing.final
|
|
16
|
+
class ClientUpdatesConfigMessage(google.protobuf.message.Message):
|
|
17
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
18
|
+
|
|
19
|
+
ARTWORKUPDATES_FIELD_NUMBER: builtins.int
|
|
20
|
+
NOWPLAYINGUPDATES_FIELD_NUMBER: builtins.int
|
|
21
|
+
VOLUMEUPDATES_FIELD_NUMBER: builtins.int
|
|
22
|
+
KEYBOARDUPDATES_FIELD_NUMBER: builtins.int
|
|
23
|
+
OUTPUTDEVICEUPDATES_FIELD_NUMBER: builtins.int
|
|
24
|
+
artworkUpdates: builtins.bool
|
|
25
|
+
nowPlayingUpdates: builtins.bool
|
|
26
|
+
volumeUpdates: builtins.bool
|
|
27
|
+
keyboardUpdates: builtins.bool
|
|
28
|
+
outputDeviceUpdates: builtins.bool
|
|
29
|
+
def __init__(
|
|
30
|
+
self,
|
|
31
|
+
*,
|
|
32
|
+
artworkUpdates: builtins.bool | None = ...,
|
|
33
|
+
nowPlayingUpdates: builtins.bool | None = ...,
|
|
34
|
+
volumeUpdates: builtins.bool | None = ...,
|
|
35
|
+
keyboardUpdates: builtins.bool | None = ...,
|
|
36
|
+
outputDeviceUpdates: builtins.bool | None = ...,
|
|
37
|
+
) -> None: ...
|
|
38
|
+
def HasField(self, field_name: typing.Literal["artworkUpdates", b"artworkUpdates", "keyboardUpdates", b"keyboardUpdates", "nowPlayingUpdates", b"nowPlayingUpdates", "outputDeviceUpdates", b"outputDeviceUpdates", "volumeUpdates", b"volumeUpdates"]) -> builtins.bool: ...
|
|
39
|
+
def ClearField(self, field_name: typing.Literal["artworkUpdates", b"artworkUpdates", "keyboardUpdates", b"keyboardUpdates", "nowPlayingUpdates", b"nowPlayingUpdates", "outputDeviceUpdates", b"outputDeviceUpdates", "volumeUpdates", b"volumeUpdates"]) -> None: ...
|
|
40
|
+
|
|
41
|
+
global___ClientUpdatesConfigMessage = ClientUpdatesConfigMessage
|
|
42
|
+
|
|
43
|
+
CLIENTUPDATESCONFIGMESSAGE_FIELD_NUMBER: builtins.int
|
|
44
|
+
clientUpdatesConfigMessage: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2.ProtocolMessage, global___ClientUpdatesConfigMessage]
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
syntax = "proto2";
|
|
2
|
+
|
|
3
|
+
import "pyatv/protocols/mrp/protobuf/Common.proto";
|
|
4
|
+
|
|
5
|
+
enum Command {
|
|
6
|
+
Unknown = 0;
|
|
7
|
+
Play = 1;
|
|
8
|
+
Pause = 2;
|
|
9
|
+
TogglePlayPause = 3;
|
|
10
|
+
Stop = 4;
|
|
11
|
+
NextTrack = 5;
|
|
12
|
+
PreviousTrack = 6;
|
|
13
|
+
AdvanceShuffleMode = 7;
|
|
14
|
+
AdvanceRepeatMode = 8;
|
|
15
|
+
BeginFastForward = 9;
|
|
16
|
+
EndFastForward = 10;
|
|
17
|
+
BeginRewind = 11;
|
|
18
|
+
EndRewind = 12;
|
|
19
|
+
Rewind15Seconds = 13;
|
|
20
|
+
FastForward15Seconds = 14;
|
|
21
|
+
Rewind30Seconds = 15;
|
|
22
|
+
FastForward30Seconds = 16;
|
|
23
|
+
SkipForward = 18;
|
|
24
|
+
SkipBackward = 19;
|
|
25
|
+
ChangePlaybackRate = 20;
|
|
26
|
+
RateTrack = 21;
|
|
27
|
+
LikeTrack = 22;
|
|
28
|
+
DislikeTrack = 23;
|
|
29
|
+
BookmarkTrack = 24;
|
|
30
|
+
SeekToPlaybackPosition = 45;
|
|
31
|
+
ChangeRepeatMode = 46;
|
|
32
|
+
ChangeShuffleMode = 47;
|
|
33
|
+
EnableLanguageOption = 53;
|
|
34
|
+
DisableLanguageOption = 54;
|
|
35
|
+
NextChapter = 25;
|
|
36
|
+
PreviousChapter = 26;
|
|
37
|
+
NextAlbum = 27;
|
|
38
|
+
PreviousAlbum = 28;
|
|
39
|
+
NextPlaylist = 29;
|
|
40
|
+
PreviousPlaylist = 30;
|
|
41
|
+
BanTrack = 31;
|
|
42
|
+
AddTrackToWishList = 32;
|
|
43
|
+
RemoveTrackFromWishList = 33;
|
|
44
|
+
NextInContext = 34;
|
|
45
|
+
PreviousInContext = 35;
|
|
46
|
+
ResetPlaybackTimeout = 41;
|
|
47
|
+
SetPlaybackQueue = 48;
|
|
48
|
+
AddNowPlayingItemToLibrary = 49;
|
|
49
|
+
CreateRadioStation = 50;
|
|
50
|
+
AddItemToLibrary = 51;
|
|
51
|
+
InsertIntoPlaybackQueue = 52;
|
|
52
|
+
ReorderPlaybackQueue = 55;
|
|
53
|
+
RemoveFromPlaybackQueue = 56;
|
|
54
|
+
PlayItemInPlaybackQueue = 57;
|
|
55
|
+
PrepareForSetQueue = 58;
|
|
56
|
+
SetPlaybackSession = 59;
|
|
57
|
+
PreloadedPlaybackSession = 60;
|
|
58
|
+
SetPriorityForPlaybackSession = 61;
|
|
59
|
+
DiscardPlaybackSession = 62;
|
|
60
|
+
Reshuffle = 63;
|
|
61
|
+
ChangeQueueEndAction = 135;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
message QueueEndAction {
|
|
65
|
+
enum Enum {
|
|
66
|
+
ClearAction = 0;
|
|
67
|
+
None = 1;
|
|
68
|
+
Reset = 2;
|
|
69
|
+
AutoPlay = 3;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
message DisableReason {
|
|
74
|
+
enum Enum {
|
|
75
|
+
Unknown = 0;
|
|
76
|
+
AdPlayback = 1;
|
|
77
|
+
SkipLimitReached = 2;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
message PreloadedPlaybackSessionInfo {
|
|
82
|
+
optional string playbackSessionIdentifier = 1;
|
|
83
|
+
optional string playbackSessionRevision = 2;
|
|
84
|
+
optional int32 playbackSessionPriority = 3;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
message CommandInfo {
|
|
88
|
+
optional Command command = 1;
|
|
89
|
+
optional bool enabled = 2;
|
|
90
|
+
optional bool active = 3;
|
|
91
|
+
repeated double preferredIntervals = 4;
|
|
92
|
+
optional string localizedTitle = 5;
|
|
93
|
+
optional float minimumRating = 6;
|
|
94
|
+
optional float maximumRating = 7;
|
|
95
|
+
repeated float supportedRates = 8;
|
|
96
|
+
optional string localizedShortTitle = 9;
|
|
97
|
+
optional RepeatMode.Enum repeatMode = 10;
|
|
98
|
+
optional ShuffleMode.Enum shuffleMode = 11;
|
|
99
|
+
optional int32 presentationStyle = 12;
|
|
100
|
+
optional int32 skipInterval = 13;
|
|
101
|
+
optional int32 numAvailableSkips = 14;
|
|
102
|
+
optional int32 skipFrequency = 15;
|
|
103
|
+
optional int32 canScrub = 16;
|
|
104
|
+
repeated int32 supportedPlaybackQueueTypes = 17;
|
|
105
|
+
repeated string supportedCustomQueueIdentifiers = 18;
|
|
106
|
+
repeated int32 supportedInsertionPositions = 19;
|
|
107
|
+
optional bool supportsSharedQueue = 20;
|
|
108
|
+
optional int32 upNextItemCount = 21;
|
|
109
|
+
optional float preferredPlaybackRate = 22;
|
|
110
|
+
repeated string supportedPlaybackSessionTypes = 23;
|
|
111
|
+
repeated string currentPlaybackSessionTypes = 24;
|
|
112
|
+
optional string playbackSessionIdentifier = 25;
|
|
113
|
+
optional QueueEndAction.Enum currentQueueEndAction = 26;
|
|
114
|
+
repeated QueueEndAction.Enum supportedEndQueueActions = 27;
|
|
115
|
+
optional DisableReason.Enum disableReason = 28;
|
|
116
|
+
repeated PreloadedPlaybackSessionInfo supportedPlaybackSessionIdentifiers = 29;
|
|
117
|
+
}
|
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
"""
|
|
2
|
+
@generated by mypy-protobuf. Do not edit manually!
|
|
3
|
+
isort:skip_file
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
import builtins
|
|
7
|
+
import collections.abc
|
|
8
|
+
import google.protobuf.descriptor
|
|
9
|
+
import google.protobuf.internal.containers
|
|
10
|
+
import google.protobuf.internal.enum_type_wrapper
|
|
11
|
+
import google.protobuf.message
|
|
12
|
+
import pyatv.protocols.mrp.protobuf.Common_pb2
|
|
13
|
+
import sys
|
|
14
|
+
import typing
|
|
15
|
+
|
|
16
|
+
if sys.version_info >= (3, 10):
|
|
17
|
+
import typing as typing_extensions
|
|
18
|
+
else:
|
|
19
|
+
import typing_extensions
|
|
20
|
+
|
|
21
|
+
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
22
|
+
|
|
23
|
+
class _Command:
|
|
24
|
+
ValueType = typing.NewType("ValueType", builtins.int)
|
|
25
|
+
V: typing_extensions.TypeAlias = ValueType
|
|
26
|
+
|
|
27
|
+
class _CommandEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Command.ValueType], builtins.type):
|
|
28
|
+
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
|
|
29
|
+
Unknown: _Command.ValueType # 0
|
|
30
|
+
Play: _Command.ValueType # 1
|
|
31
|
+
Pause: _Command.ValueType # 2
|
|
32
|
+
TogglePlayPause: _Command.ValueType # 3
|
|
33
|
+
Stop: _Command.ValueType # 4
|
|
34
|
+
NextTrack: _Command.ValueType # 5
|
|
35
|
+
PreviousTrack: _Command.ValueType # 6
|
|
36
|
+
AdvanceShuffleMode: _Command.ValueType # 7
|
|
37
|
+
AdvanceRepeatMode: _Command.ValueType # 8
|
|
38
|
+
BeginFastForward: _Command.ValueType # 9
|
|
39
|
+
EndFastForward: _Command.ValueType # 10
|
|
40
|
+
BeginRewind: _Command.ValueType # 11
|
|
41
|
+
EndRewind: _Command.ValueType # 12
|
|
42
|
+
Rewind15Seconds: _Command.ValueType # 13
|
|
43
|
+
FastForward15Seconds: _Command.ValueType # 14
|
|
44
|
+
Rewind30Seconds: _Command.ValueType # 15
|
|
45
|
+
FastForward30Seconds: _Command.ValueType # 16
|
|
46
|
+
SkipForward: _Command.ValueType # 18
|
|
47
|
+
SkipBackward: _Command.ValueType # 19
|
|
48
|
+
ChangePlaybackRate: _Command.ValueType # 20
|
|
49
|
+
RateTrack: _Command.ValueType # 21
|
|
50
|
+
LikeTrack: _Command.ValueType # 22
|
|
51
|
+
DislikeTrack: _Command.ValueType # 23
|
|
52
|
+
BookmarkTrack: _Command.ValueType # 24
|
|
53
|
+
SeekToPlaybackPosition: _Command.ValueType # 45
|
|
54
|
+
ChangeRepeatMode: _Command.ValueType # 46
|
|
55
|
+
ChangeShuffleMode: _Command.ValueType # 47
|
|
56
|
+
EnableLanguageOption: _Command.ValueType # 53
|
|
57
|
+
DisableLanguageOption: _Command.ValueType # 54
|
|
58
|
+
NextChapter: _Command.ValueType # 25
|
|
59
|
+
PreviousChapter: _Command.ValueType # 26
|
|
60
|
+
NextAlbum: _Command.ValueType # 27
|
|
61
|
+
PreviousAlbum: _Command.ValueType # 28
|
|
62
|
+
NextPlaylist: _Command.ValueType # 29
|
|
63
|
+
PreviousPlaylist: _Command.ValueType # 30
|
|
64
|
+
BanTrack: _Command.ValueType # 31
|
|
65
|
+
AddTrackToWishList: _Command.ValueType # 32
|
|
66
|
+
RemoveTrackFromWishList: _Command.ValueType # 33
|
|
67
|
+
NextInContext: _Command.ValueType # 34
|
|
68
|
+
PreviousInContext: _Command.ValueType # 35
|
|
69
|
+
ResetPlaybackTimeout: _Command.ValueType # 41
|
|
70
|
+
SetPlaybackQueue: _Command.ValueType # 48
|
|
71
|
+
AddNowPlayingItemToLibrary: _Command.ValueType # 49
|
|
72
|
+
CreateRadioStation: _Command.ValueType # 50
|
|
73
|
+
AddItemToLibrary: _Command.ValueType # 51
|
|
74
|
+
InsertIntoPlaybackQueue: _Command.ValueType # 52
|
|
75
|
+
ReorderPlaybackQueue: _Command.ValueType # 55
|
|
76
|
+
RemoveFromPlaybackQueue: _Command.ValueType # 56
|
|
77
|
+
PlayItemInPlaybackQueue: _Command.ValueType # 57
|
|
78
|
+
PrepareForSetQueue: _Command.ValueType # 58
|
|
79
|
+
SetPlaybackSession: _Command.ValueType # 59
|
|
80
|
+
PreloadedPlaybackSession: _Command.ValueType # 60
|
|
81
|
+
SetPriorityForPlaybackSession: _Command.ValueType # 61
|
|
82
|
+
DiscardPlaybackSession: _Command.ValueType # 62
|
|
83
|
+
Reshuffle: _Command.ValueType # 63
|
|
84
|
+
ChangeQueueEndAction: _Command.ValueType # 135
|
|
85
|
+
|
|
86
|
+
class Command(_Command, metaclass=_CommandEnumTypeWrapper): ...
|
|
87
|
+
|
|
88
|
+
Unknown: Command.ValueType # 0
|
|
89
|
+
Play: Command.ValueType # 1
|
|
90
|
+
Pause: Command.ValueType # 2
|
|
91
|
+
TogglePlayPause: Command.ValueType # 3
|
|
92
|
+
Stop: Command.ValueType # 4
|
|
93
|
+
NextTrack: Command.ValueType # 5
|
|
94
|
+
PreviousTrack: Command.ValueType # 6
|
|
95
|
+
AdvanceShuffleMode: Command.ValueType # 7
|
|
96
|
+
AdvanceRepeatMode: Command.ValueType # 8
|
|
97
|
+
BeginFastForward: Command.ValueType # 9
|
|
98
|
+
EndFastForward: Command.ValueType # 10
|
|
99
|
+
BeginRewind: Command.ValueType # 11
|
|
100
|
+
EndRewind: Command.ValueType # 12
|
|
101
|
+
Rewind15Seconds: Command.ValueType # 13
|
|
102
|
+
FastForward15Seconds: Command.ValueType # 14
|
|
103
|
+
Rewind30Seconds: Command.ValueType # 15
|
|
104
|
+
FastForward30Seconds: Command.ValueType # 16
|
|
105
|
+
SkipForward: Command.ValueType # 18
|
|
106
|
+
SkipBackward: Command.ValueType # 19
|
|
107
|
+
ChangePlaybackRate: Command.ValueType # 20
|
|
108
|
+
RateTrack: Command.ValueType # 21
|
|
109
|
+
LikeTrack: Command.ValueType # 22
|
|
110
|
+
DislikeTrack: Command.ValueType # 23
|
|
111
|
+
BookmarkTrack: Command.ValueType # 24
|
|
112
|
+
SeekToPlaybackPosition: Command.ValueType # 45
|
|
113
|
+
ChangeRepeatMode: Command.ValueType # 46
|
|
114
|
+
ChangeShuffleMode: Command.ValueType # 47
|
|
115
|
+
EnableLanguageOption: Command.ValueType # 53
|
|
116
|
+
DisableLanguageOption: Command.ValueType # 54
|
|
117
|
+
NextChapter: Command.ValueType # 25
|
|
118
|
+
PreviousChapter: Command.ValueType # 26
|
|
119
|
+
NextAlbum: Command.ValueType # 27
|
|
120
|
+
PreviousAlbum: Command.ValueType # 28
|
|
121
|
+
NextPlaylist: Command.ValueType # 29
|
|
122
|
+
PreviousPlaylist: Command.ValueType # 30
|
|
123
|
+
BanTrack: Command.ValueType # 31
|
|
124
|
+
AddTrackToWishList: Command.ValueType # 32
|
|
125
|
+
RemoveTrackFromWishList: Command.ValueType # 33
|
|
126
|
+
NextInContext: Command.ValueType # 34
|
|
127
|
+
PreviousInContext: Command.ValueType # 35
|
|
128
|
+
ResetPlaybackTimeout: Command.ValueType # 41
|
|
129
|
+
SetPlaybackQueue: Command.ValueType # 48
|
|
130
|
+
AddNowPlayingItemToLibrary: Command.ValueType # 49
|
|
131
|
+
CreateRadioStation: Command.ValueType # 50
|
|
132
|
+
AddItemToLibrary: Command.ValueType # 51
|
|
133
|
+
InsertIntoPlaybackQueue: Command.ValueType # 52
|
|
134
|
+
ReorderPlaybackQueue: Command.ValueType # 55
|
|
135
|
+
RemoveFromPlaybackQueue: Command.ValueType # 56
|
|
136
|
+
PlayItemInPlaybackQueue: Command.ValueType # 57
|
|
137
|
+
PrepareForSetQueue: Command.ValueType # 58
|
|
138
|
+
SetPlaybackSession: Command.ValueType # 59
|
|
139
|
+
PreloadedPlaybackSession: Command.ValueType # 60
|
|
140
|
+
SetPriorityForPlaybackSession: Command.ValueType # 61
|
|
141
|
+
DiscardPlaybackSession: Command.ValueType # 62
|
|
142
|
+
Reshuffle: Command.ValueType # 63
|
|
143
|
+
ChangeQueueEndAction: Command.ValueType # 135
|
|
144
|
+
global___Command = Command
|
|
145
|
+
|
|
146
|
+
@typing.final
|
|
147
|
+
class QueueEndAction(google.protobuf.message.Message):
|
|
148
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
149
|
+
|
|
150
|
+
class _Enum:
|
|
151
|
+
ValueType = typing.NewType("ValueType", builtins.int)
|
|
152
|
+
V: typing_extensions.TypeAlias = ValueType
|
|
153
|
+
|
|
154
|
+
class _EnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[QueueEndAction._Enum.ValueType], builtins.type):
|
|
155
|
+
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
|
|
156
|
+
ClearAction: QueueEndAction._Enum.ValueType # 0
|
|
157
|
+
Reset: QueueEndAction._Enum.ValueType # 2
|
|
158
|
+
AutoPlay: QueueEndAction._Enum.ValueType # 3
|
|
159
|
+
|
|
160
|
+
class Enum(_Enum, metaclass=_EnumEnumTypeWrapper): ...
|
|
161
|
+
ClearAction: QueueEndAction.Enum.ValueType # 0
|
|
162
|
+
Reset: QueueEndAction.Enum.ValueType # 2
|
|
163
|
+
AutoPlay: QueueEndAction.Enum.ValueType # 3
|
|
164
|
+
|
|
165
|
+
def __init__(
|
|
166
|
+
self,
|
|
167
|
+
) -> None: ...
|
|
168
|
+
|
|
169
|
+
global___QueueEndAction = QueueEndAction
|
|
170
|
+
|
|
171
|
+
@typing.final
|
|
172
|
+
class DisableReason(google.protobuf.message.Message):
|
|
173
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
174
|
+
|
|
175
|
+
class _Enum:
|
|
176
|
+
ValueType = typing.NewType("ValueType", builtins.int)
|
|
177
|
+
V: typing_extensions.TypeAlias = ValueType
|
|
178
|
+
|
|
179
|
+
class _EnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[DisableReason._Enum.ValueType], builtins.type):
|
|
180
|
+
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
|
|
181
|
+
Unknown: DisableReason._Enum.ValueType # 0
|
|
182
|
+
AdPlayback: DisableReason._Enum.ValueType # 1
|
|
183
|
+
SkipLimitReached: DisableReason._Enum.ValueType # 2
|
|
184
|
+
|
|
185
|
+
class Enum(_Enum, metaclass=_EnumEnumTypeWrapper): ...
|
|
186
|
+
Unknown: DisableReason.Enum.ValueType # 0
|
|
187
|
+
AdPlayback: DisableReason.Enum.ValueType # 1
|
|
188
|
+
SkipLimitReached: DisableReason.Enum.ValueType # 2
|
|
189
|
+
|
|
190
|
+
def __init__(
|
|
191
|
+
self,
|
|
192
|
+
) -> None: ...
|
|
193
|
+
|
|
194
|
+
global___DisableReason = DisableReason
|
|
195
|
+
|
|
196
|
+
@typing.final
|
|
197
|
+
class PreloadedPlaybackSessionInfo(google.protobuf.message.Message):
|
|
198
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
199
|
+
|
|
200
|
+
PLAYBACKSESSIONIDENTIFIER_FIELD_NUMBER: builtins.int
|
|
201
|
+
PLAYBACKSESSIONREVISION_FIELD_NUMBER: builtins.int
|
|
202
|
+
PLAYBACKSESSIONPRIORITY_FIELD_NUMBER: builtins.int
|
|
203
|
+
playbackSessionIdentifier: builtins.str
|
|
204
|
+
playbackSessionRevision: builtins.str
|
|
205
|
+
playbackSessionPriority: builtins.int
|
|
206
|
+
def __init__(
|
|
207
|
+
self,
|
|
208
|
+
*,
|
|
209
|
+
playbackSessionIdentifier: builtins.str | None = ...,
|
|
210
|
+
playbackSessionRevision: builtins.str | None = ...,
|
|
211
|
+
playbackSessionPriority: builtins.int | None = ...,
|
|
212
|
+
) -> None: ...
|
|
213
|
+
def HasField(self, field_name: typing.Literal["playbackSessionIdentifier", b"playbackSessionIdentifier", "playbackSessionPriority", b"playbackSessionPriority", "playbackSessionRevision", b"playbackSessionRevision"]) -> builtins.bool: ...
|
|
214
|
+
def ClearField(self, field_name: typing.Literal["playbackSessionIdentifier", b"playbackSessionIdentifier", "playbackSessionPriority", b"playbackSessionPriority", "playbackSessionRevision", b"playbackSessionRevision"]) -> None: ...
|
|
215
|
+
|
|
216
|
+
global___PreloadedPlaybackSessionInfo = PreloadedPlaybackSessionInfo
|
|
217
|
+
|
|
218
|
+
@typing.final
|
|
219
|
+
class CommandInfo(google.protobuf.message.Message):
|
|
220
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
221
|
+
|
|
222
|
+
COMMAND_FIELD_NUMBER: builtins.int
|
|
223
|
+
ENABLED_FIELD_NUMBER: builtins.int
|
|
224
|
+
ACTIVE_FIELD_NUMBER: builtins.int
|
|
225
|
+
PREFERREDINTERVALS_FIELD_NUMBER: builtins.int
|
|
226
|
+
LOCALIZEDTITLE_FIELD_NUMBER: builtins.int
|
|
227
|
+
MINIMUMRATING_FIELD_NUMBER: builtins.int
|
|
228
|
+
MAXIMUMRATING_FIELD_NUMBER: builtins.int
|
|
229
|
+
SUPPORTEDRATES_FIELD_NUMBER: builtins.int
|
|
230
|
+
LOCALIZEDSHORTTITLE_FIELD_NUMBER: builtins.int
|
|
231
|
+
REPEATMODE_FIELD_NUMBER: builtins.int
|
|
232
|
+
SHUFFLEMODE_FIELD_NUMBER: builtins.int
|
|
233
|
+
PRESENTATIONSTYLE_FIELD_NUMBER: builtins.int
|
|
234
|
+
SKIPINTERVAL_FIELD_NUMBER: builtins.int
|
|
235
|
+
NUMAVAILABLESKIPS_FIELD_NUMBER: builtins.int
|
|
236
|
+
SKIPFREQUENCY_FIELD_NUMBER: builtins.int
|
|
237
|
+
CANSCRUB_FIELD_NUMBER: builtins.int
|
|
238
|
+
SUPPORTEDPLAYBACKQUEUETYPES_FIELD_NUMBER: builtins.int
|
|
239
|
+
SUPPORTEDCUSTOMQUEUEIDENTIFIERS_FIELD_NUMBER: builtins.int
|
|
240
|
+
SUPPORTEDINSERTIONPOSITIONS_FIELD_NUMBER: builtins.int
|
|
241
|
+
SUPPORTSSHAREDQUEUE_FIELD_NUMBER: builtins.int
|
|
242
|
+
UPNEXTITEMCOUNT_FIELD_NUMBER: builtins.int
|
|
243
|
+
PREFERREDPLAYBACKRATE_FIELD_NUMBER: builtins.int
|
|
244
|
+
SUPPORTEDPLAYBACKSESSIONTYPES_FIELD_NUMBER: builtins.int
|
|
245
|
+
CURRENTPLAYBACKSESSIONTYPES_FIELD_NUMBER: builtins.int
|
|
246
|
+
PLAYBACKSESSIONIDENTIFIER_FIELD_NUMBER: builtins.int
|
|
247
|
+
CURRENTQUEUEENDACTION_FIELD_NUMBER: builtins.int
|
|
248
|
+
SUPPORTEDENDQUEUEACTIONS_FIELD_NUMBER: builtins.int
|
|
249
|
+
DISABLEREASON_FIELD_NUMBER: builtins.int
|
|
250
|
+
SUPPORTEDPLAYBACKSESSIONIDENTIFIERS_FIELD_NUMBER: builtins.int
|
|
251
|
+
command: global___Command.ValueType
|
|
252
|
+
enabled: builtins.bool
|
|
253
|
+
active: builtins.bool
|
|
254
|
+
localizedTitle: builtins.str
|
|
255
|
+
minimumRating: builtins.float
|
|
256
|
+
maximumRating: builtins.float
|
|
257
|
+
localizedShortTitle: builtins.str
|
|
258
|
+
repeatMode: pyatv.protocols.mrp.protobuf.Common_pb2.RepeatMode.Enum.ValueType
|
|
259
|
+
shuffleMode: pyatv.protocols.mrp.protobuf.Common_pb2.ShuffleMode.Enum.ValueType
|
|
260
|
+
presentationStyle: builtins.int
|
|
261
|
+
skipInterval: builtins.int
|
|
262
|
+
numAvailableSkips: builtins.int
|
|
263
|
+
skipFrequency: builtins.int
|
|
264
|
+
canScrub: builtins.int
|
|
265
|
+
supportsSharedQueue: builtins.bool
|
|
266
|
+
upNextItemCount: builtins.int
|
|
267
|
+
preferredPlaybackRate: builtins.float
|
|
268
|
+
playbackSessionIdentifier: builtins.str
|
|
269
|
+
currentQueueEndAction: global___QueueEndAction.Enum.ValueType
|
|
270
|
+
disableReason: global___DisableReason.Enum.ValueType
|
|
271
|
+
@property
|
|
272
|
+
def preferredIntervals(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
|
|
273
|
+
@property
|
|
274
|
+
def supportedRates(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
|
|
275
|
+
@property
|
|
276
|
+
def supportedPlaybackQueueTypes(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
|
|
277
|
+
@property
|
|
278
|
+
def supportedCustomQueueIdentifiers(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
|
|
279
|
+
@property
|
|
280
|
+
def supportedInsertionPositions(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
|
|
281
|
+
@property
|
|
282
|
+
def supportedPlaybackSessionTypes(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
|
|
283
|
+
@property
|
|
284
|
+
def currentPlaybackSessionTypes(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
|
|
285
|
+
@property
|
|
286
|
+
def supportedEndQueueActions(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[global___QueueEndAction.Enum.ValueType]: ...
|
|
287
|
+
@property
|
|
288
|
+
def supportedPlaybackSessionIdentifiers(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PreloadedPlaybackSessionInfo]: ...
|
|
289
|
+
def __init__(
|
|
290
|
+
self,
|
|
291
|
+
*,
|
|
292
|
+
command: global___Command.ValueType | None = ...,
|
|
293
|
+
enabled: builtins.bool | None = ...,
|
|
294
|
+
active: builtins.bool | None = ...,
|
|
295
|
+
preferredIntervals: collections.abc.Iterable[builtins.float] | None = ...,
|
|
296
|
+
localizedTitle: builtins.str | None = ...,
|
|
297
|
+
minimumRating: builtins.float | None = ...,
|
|
298
|
+
maximumRating: builtins.float | None = ...,
|
|
299
|
+
supportedRates: collections.abc.Iterable[builtins.float] | None = ...,
|
|
300
|
+
localizedShortTitle: builtins.str | None = ...,
|
|
301
|
+
repeatMode: pyatv.protocols.mrp.protobuf.Common_pb2.RepeatMode.Enum.ValueType | None = ...,
|
|
302
|
+
shuffleMode: pyatv.protocols.mrp.protobuf.Common_pb2.ShuffleMode.Enum.ValueType | None = ...,
|
|
303
|
+
presentationStyle: builtins.int | None = ...,
|
|
304
|
+
skipInterval: builtins.int | None = ...,
|
|
305
|
+
numAvailableSkips: builtins.int | None = ...,
|
|
306
|
+
skipFrequency: builtins.int | None = ...,
|
|
307
|
+
canScrub: builtins.int | None = ...,
|
|
308
|
+
supportedPlaybackQueueTypes: collections.abc.Iterable[builtins.int] | None = ...,
|
|
309
|
+
supportedCustomQueueIdentifiers: collections.abc.Iterable[builtins.str] | None = ...,
|
|
310
|
+
supportedInsertionPositions: collections.abc.Iterable[builtins.int] | None = ...,
|
|
311
|
+
supportsSharedQueue: builtins.bool | None = ...,
|
|
312
|
+
upNextItemCount: builtins.int | None = ...,
|
|
313
|
+
preferredPlaybackRate: builtins.float | None = ...,
|
|
314
|
+
supportedPlaybackSessionTypes: collections.abc.Iterable[builtins.str] | None = ...,
|
|
315
|
+
currentPlaybackSessionTypes: collections.abc.Iterable[builtins.str] | None = ...,
|
|
316
|
+
playbackSessionIdentifier: builtins.str | None = ...,
|
|
317
|
+
currentQueueEndAction: global___QueueEndAction.Enum.ValueType | None = ...,
|
|
318
|
+
supportedEndQueueActions: collections.abc.Iterable[global___QueueEndAction.Enum.ValueType] | None = ...,
|
|
319
|
+
disableReason: global___DisableReason.Enum.ValueType | None = ...,
|
|
320
|
+
supportedPlaybackSessionIdentifiers: collections.abc.Iterable[global___PreloadedPlaybackSessionInfo] | None = ...,
|
|
321
|
+
) -> None: ...
|
|
322
|
+
def HasField(self, field_name: typing.Literal["active", b"active", "canScrub", b"canScrub", "command", b"command", "currentQueueEndAction", b"currentQueueEndAction", "disableReason", b"disableReason", "enabled", b"enabled", "localizedShortTitle", b"localizedShortTitle", "localizedTitle", b"localizedTitle", "maximumRating", b"maximumRating", "minimumRating", b"minimumRating", "numAvailableSkips", b"numAvailableSkips", "playbackSessionIdentifier", b"playbackSessionIdentifier", "preferredPlaybackRate", b"preferredPlaybackRate", "presentationStyle", b"presentationStyle", "repeatMode", b"repeatMode", "shuffleMode", b"shuffleMode", "skipFrequency", b"skipFrequency", "skipInterval", b"skipInterval", "supportsSharedQueue", b"supportsSharedQueue", "upNextItemCount", b"upNextItemCount"]) -> builtins.bool: ...
|
|
323
|
+
def ClearField(self, field_name: typing.Literal["active", b"active", "canScrub", b"canScrub", "command", b"command", "currentPlaybackSessionTypes", b"currentPlaybackSessionTypes", "currentQueueEndAction", b"currentQueueEndAction", "disableReason", b"disableReason", "enabled", b"enabled", "localizedShortTitle", b"localizedShortTitle", "localizedTitle", b"localizedTitle", "maximumRating", b"maximumRating", "minimumRating", b"minimumRating", "numAvailableSkips", b"numAvailableSkips", "playbackSessionIdentifier", b"playbackSessionIdentifier", "preferredIntervals", b"preferredIntervals", "preferredPlaybackRate", b"preferredPlaybackRate", "presentationStyle", b"presentationStyle", "repeatMode", b"repeatMode", "shuffleMode", b"shuffleMode", "skipFrequency", b"skipFrequency", "skipInterval", b"skipInterval", "supportedCustomQueueIdentifiers", b"supportedCustomQueueIdentifiers", "supportedEndQueueActions", b"supportedEndQueueActions", "supportedInsertionPositions", b"supportedInsertionPositions", "supportedPlaybackQueueTypes", b"supportedPlaybackQueueTypes", "supportedPlaybackSessionIdentifiers", b"supportedPlaybackSessionIdentifiers", "supportedPlaybackSessionTypes", b"supportedPlaybackSessionTypes", "supportedRates", b"supportedRates", "supportsSharedQueue", b"supportsSharedQueue", "upNextItemCount", b"upNextItemCount"]) -> None: ...
|
|
324
|
+
|
|
325
|
+
global___CommandInfo = CommandInfo
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
syntax = "proto2";
|
|
2
|
+
|
|
3
|
+
import "pyatv/protocols/mrp/protobuf/Common.proto";
|
|
4
|
+
|
|
5
|
+
message CommandOptions {
|
|
6
|
+
optional string sourceId = 2;
|
|
7
|
+
optional string mediaType = 3;
|
|
8
|
+
optional bool externalPlayerCommand = 4;
|
|
9
|
+
optional float skipInterval = 5;
|
|
10
|
+
optional float playbackRate = 6;
|
|
11
|
+
optional float rating = 7;
|
|
12
|
+
optional bool negative = 8;
|
|
13
|
+
optional double playbackPosition = 9;
|
|
14
|
+
optional RepeatMode.Enum repeatMode = 10;
|
|
15
|
+
optional ShuffleMode.Enum shuffleMode = 11;
|
|
16
|
+
optional uint64 trackID = 12;
|
|
17
|
+
optional int64 radioStationID = 13;
|
|
18
|
+
optional string radioStationHash = 14;
|
|
19
|
+
optional bytes systemAppPlaybackQueueData = 15;
|
|
20
|
+
optional string destinationAppDisplayID = 16;
|
|
21
|
+
optional uint32 sendOptions = 17;
|
|
22
|
+
optional bool requestDefermentToPlaybackQueuePosition = 18;
|
|
23
|
+
optional string contextID = 19;
|
|
24
|
+
optional bool shouldOverrideManuallyCuratedQueue = 20;
|
|
25
|
+
optional string stationURL = 21;
|
|
26
|
+
optional bool shouldBeginRadioPlayback = 22;
|
|
27
|
+
optional int32 playbackQueueInsertionPosition = 23;
|
|
28
|
+
optional string contentItemID = 24;
|
|
29
|
+
optional int32 playbackQueueOffset = 25;
|
|
30
|
+
optional int32 playbackQueueDestinationOffset = 26;
|
|
31
|
+
optional bytes languageOption = 27;
|
|
32
|
+
optional bytes playbackQueueContext = 28;
|
|
33
|
+
optional string insertAfterContentItemID = 29;
|
|
34
|
+
optional string nowPlayingContentItemID = 30;
|
|
35
|
+
optional int32 replaceIntent = 31;
|
|
36
|
+
}
|