@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,32 @@
|
|
|
1
|
+
"""
|
|
2
|
+
@generated by mypy-protobuf. Do not edit manually!
|
|
3
|
+
isort:skip_file
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
import builtins
|
|
7
|
+
import google.protobuf.descriptor
|
|
8
|
+
import google.protobuf.internal.extension_dict
|
|
9
|
+
import google.protobuf.message
|
|
10
|
+
import pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2
|
|
11
|
+
import typing
|
|
12
|
+
|
|
13
|
+
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
14
|
+
|
|
15
|
+
@typing.final
|
|
16
|
+
class SetArtworkMessage(google.protobuf.message.Message):
|
|
17
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
18
|
+
|
|
19
|
+
JPEGDATA_FIELD_NUMBER: builtins.int
|
|
20
|
+
jpegData: builtins.bytes
|
|
21
|
+
def __init__(
|
|
22
|
+
self,
|
|
23
|
+
*,
|
|
24
|
+
jpegData: builtins.bytes | None = ...,
|
|
25
|
+
) -> None: ...
|
|
26
|
+
def HasField(self, field_name: typing.Literal["jpegData", b"jpegData"]) -> builtins.bool: ...
|
|
27
|
+
def ClearField(self, field_name: typing.Literal["jpegData", b"jpegData"]) -> None: ...
|
|
28
|
+
|
|
29
|
+
global___SetArtworkMessage = SetArtworkMessage
|
|
30
|
+
|
|
31
|
+
SETARTWORKMESSAGE_FIELD_NUMBER: builtins.int
|
|
32
|
+
setArtworkMessage: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2.ProtocolMessage, global___SetArtworkMessage]
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
syntax = "proto2";
|
|
2
|
+
|
|
3
|
+
import "pyatv/protocols/mrp/protobuf/ProtocolMessage.proto";
|
|
4
|
+
|
|
5
|
+
extend ProtocolMessage {
|
|
6
|
+
optional SetConnectionStateMessage setConnectionStateMessage = 42;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
message SetConnectionStateMessage {
|
|
10
|
+
enum ConnectionState {
|
|
11
|
+
None = 0;
|
|
12
|
+
Connecting = 1;
|
|
13
|
+
Connected = 2;
|
|
14
|
+
Disconnected = 3;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
optional ConnectionState state = 1;
|
|
18
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
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.enum_type_wrapper
|
|
9
|
+
import google.protobuf.internal.extension_dict
|
|
10
|
+
import google.protobuf.message
|
|
11
|
+
import pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2
|
|
12
|
+
import sys
|
|
13
|
+
import typing
|
|
14
|
+
|
|
15
|
+
if sys.version_info >= (3, 10):
|
|
16
|
+
import typing as typing_extensions
|
|
17
|
+
else:
|
|
18
|
+
import typing_extensions
|
|
19
|
+
|
|
20
|
+
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
21
|
+
|
|
22
|
+
@typing.final
|
|
23
|
+
class SetConnectionStateMessage(google.protobuf.message.Message):
|
|
24
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
25
|
+
|
|
26
|
+
class _ConnectionState:
|
|
27
|
+
ValueType = typing.NewType("ValueType", builtins.int)
|
|
28
|
+
V: typing_extensions.TypeAlias = ValueType
|
|
29
|
+
|
|
30
|
+
class _ConnectionStateEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[SetConnectionStateMessage._ConnectionState.ValueType], builtins.type):
|
|
31
|
+
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
|
|
32
|
+
Connecting: SetConnectionStateMessage._ConnectionState.ValueType # 1
|
|
33
|
+
Connected: SetConnectionStateMessage._ConnectionState.ValueType # 2
|
|
34
|
+
Disconnected: SetConnectionStateMessage._ConnectionState.ValueType # 3
|
|
35
|
+
|
|
36
|
+
class ConnectionState(_ConnectionState, metaclass=_ConnectionStateEnumTypeWrapper): ...
|
|
37
|
+
Connecting: SetConnectionStateMessage.ConnectionState.ValueType # 1
|
|
38
|
+
Connected: SetConnectionStateMessage.ConnectionState.ValueType # 2
|
|
39
|
+
Disconnected: SetConnectionStateMessage.ConnectionState.ValueType # 3
|
|
40
|
+
|
|
41
|
+
STATE_FIELD_NUMBER: builtins.int
|
|
42
|
+
state: global___SetConnectionStateMessage.ConnectionState.ValueType
|
|
43
|
+
def __init__(
|
|
44
|
+
self,
|
|
45
|
+
*,
|
|
46
|
+
state: global___SetConnectionStateMessage.ConnectionState.ValueType | None = ...,
|
|
47
|
+
) -> None: ...
|
|
48
|
+
def HasField(self, field_name: typing.Literal["state", b"state"]) -> builtins.bool: ...
|
|
49
|
+
def ClearField(self, field_name: typing.Literal["state", b"state"]) -> None: ...
|
|
50
|
+
|
|
51
|
+
global___SetConnectionStateMessage = SetConnectionStateMessage
|
|
52
|
+
|
|
53
|
+
SETCONNECTIONSTATEMESSAGE_FIELD_NUMBER: builtins.int
|
|
54
|
+
setConnectionStateMessage: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2.ProtocolMessage, global___SetConnectionStateMessage]
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
syntax = "proto2";
|
|
2
|
+
|
|
3
|
+
import "pyatv/protocols/mrp/protobuf/ProtocolMessage.proto";
|
|
4
|
+
import "pyatv/protocols/mrp/protobuf/NowPlayingInfo.proto";
|
|
5
|
+
import "pyatv/protocols/mrp/protobuf/PlaybackQueue.proto";
|
|
6
|
+
import "pyatv/protocols/mrp/protobuf/SupportedCommands.proto";
|
|
7
|
+
import "pyatv/protocols/mrp/protobuf/PlaybackQueueCapabilities.proto";
|
|
8
|
+
import "pyatv/protocols/mrp/protobuf/PlayerPath.proto";
|
|
9
|
+
import "pyatv/protocols/mrp/protobuf/PlaybackQueueRequestMessage.proto";
|
|
10
|
+
import "pyatv/protocols/mrp/protobuf/Common.proto";
|
|
11
|
+
|
|
12
|
+
extend ProtocolMessage {
|
|
13
|
+
optional SetDefaultSupportedCommandsMessage setDefaultSupportedCommandsMessage = 75;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// Seems to be the same as SetStateMessage
|
|
17
|
+
message SetDefaultSupportedCommandsMessage {
|
|
18
|
+
optional NowPlayingInfo nowPlayingInfo = 1;
|
|
19
|
+
optional SupportedCommands supportedCommands = 2;
|
|
20
|
+
optional PlaybackQueue playbackQueue = 3;
|
|
21
|
+
optional string displayID = 4;
|
|
22
|
+
optional string displayName = 5;
|
|
23
|
+
optional PlaybackState.Enum playbackState = 6;
|
|
24
|
+
optional PlaybackQueueCapabilities playbackQueueCapabilities = 8;
|
|
25
|
+
optional PlayerPath playerPath = 9;
|
|
26
|
+
optional PlaybackQueueRequestMessage request = 10;
|
|
27
|
+
optional double playbackStateTimestamp = 11;
|
|
28
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
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.Common_pb2
|
|
11
|
+
import pyatv.protocols.mrp.protobuf.NowPlayingInfo_pb2
|
|
12
|
+
import pyatv.protocols.mrp.protobuf.PlaybackQueueCapabilities_pb2
|
|
13
|
+
import pyatv.protocols.mrp.protobuf.PlaybackQueueRequestMessage_pb2
|
|
14
|
+
import pyatv.protocols.mrp.protobuf.PlaybackQueue_pb2
|
|
15
|
+
import pyatv.protocols.mrp.protobuf.PlayerPath_pb2
|
|
16
|
+
import pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2
|
|
17
|
+
import pyatv.protocols.mrp.protobuf.SupportedCommands_pb2
|
|
18
|
+
import typing
|
|
19
|
+
|
|
20
|
+
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
21
|
+
|
|
22
|
+
@typing.final
|
|
23
|
+
class SetDefaultSupportedCommandsMessage(google.protobuf.message.Message):
|
|
24
|
+
"""Seems to be the same as SetStateMessage"""
|
|
25
|
+
|
|
26
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
27
|
+
|
|
28
|
+
NOWPLAYINGINFO_FIELD_NUMBER: builtins.int
|
|
29
|
+
SUPPORTEDCOMMANDS_FIELD_NUMBER: builtins.int
|
|
30
|
+
PLAYBACKQUEUE_FIELD_NUMBER: builtins.int
|
|
31
|
+
DISPLAYID_FIELD_NUMBER: builtins.int
|
|
32
|
+
DISPLAYNAME_FIELD_NUMBER: builtins.int
|
|
33
|
+
PLAYBACKSTATE_FIELD_NUMBER: builtins.int
|
|
34
|
+
PLAYBACKQUEUECAPABILITIES_FIELD_NUMBER: builtins.int
|
|
35
|
+
PLAYERPATH_FIELD_NUMBER: builtins.int
|
|
36
|
+
REQUEST_FIELD_NUMBER: builtins.int
|
|
37
|
+
PLAYBACKSTATETIMESTAMP_FIELD_NUMBER: builtins.int
|
|
38
|
+
displayID: builtins.str
|
|
39
|
+
displayName: builtins.str
|
|
40
|
+
playbackState: pyatv.protocols.mrp.protobuf.Common_pb2.PlaybackState.Enum.ValueType
|
|
41
|
+
playbackStateTimestamp: builtins.float
|
|
42
|
+
@property
|
|
43
|
+
def nowPlayingInfo(self) -> pyatv.protocols.mrp.protobuf.NowPlayingInfo_pb2.NowPlayingInfo: ...
|
|
44
|
+
@property
|
|
45
|
+
def supportedCommands(self) -> pyatv.protocols.mrp.protobuf.SupportedCommands_pb2.SupportedCommands: ...
|
|
46
|
+
@property
|
|
47
|
+
def playbackQueue(self) -> pyatv.protocols.mrp.protobuf.PlaybackQueue_pb2.PlaybackQueue: ...
|
|
48
|
+
@property
|
|
49
|
+
def playbackQueueCapabilities(self) -> pyatv.protocols.mrp.protobuf.PlaybackQueueCapabilities_pb2.PlaybackQueueCapabilities: ...
|
|
50
|
+
@property
|
|
51
|
+
def playerPath(self) -> pyatv.protocols.mrp.protobuf.PlayerPath_pb2.PlayerPath: ...
|
|
52
|
+
@property
|
|
53
|
+
def request(self) -> pyatv.protocols.mrp.protobuf.PlaybackQueueRequestMessage_pb2.PlaybackQueueRequestMessage: ...
|
|
54
|
+
def __init__(
|
|
55
|
+
self,
|
|
56
|
+
*,
|
|
57
|
+
nowPlayingInfo: pyatv.protocols.mrp.protobuf.NowPlayingInfo_pb2.NowPlayingInfo | None = ...,
|
|
58
|
+
supportedCommands: pyatv.protocols.mrp.protobuf.SupportedCommands_pb2.SupportedCommands | None = ...,
|
|
59
|
+
playbackQueue: pyatv.protocols.mrp.protobuf.PlaybackQueue_pb2.PlaybackQueue | None = ...,
|
|
60
|
+
displayID: builtins.str | None = ...,
|
|
61
|
+
displayName: builtins.str | None = ...,
|
|
62
|
+
playbackState: pyatv.protocols.mrp.protobuf.Common_pb2.PlaybackState.Enum.ValueType | None = ...,
|
|
63
|
+
playbackQueueCapabilities: pyatv.protocols.mrp.protobuf.PlaybackQueueCapabilities_pb2.PlaybackQueueCapabilities | None = ...,
|
|
64
|
+
playerPath: pyatv.protocols.mrp.protobuf.PlayerPath_pb2.PlayerPath | None = ...,
|
|
65
|
+
request: pyatv.protocols.mrp.protobuf.PlaybackQueueRequestMessage_pb2.PlaybackQueueRequestMessage | None = ...,
|
|
66
|
+
playbackStateTimestamp: builtins.float | None = ...,
|
|
67
|
+
) -> None: ...
|
|
68
|
+
def HasField(self, field_name: typing.Literal["displayID", b"displayID", "displayName", b"displayName", "nowPlayingInfo", b"nowPlayingInfo", "playbackQueue", b"playbackQueue", "playbackQueueCapabilities", b"playbackQueueCapabilities", "playbackState", b"playbackState", "playbackStateTimestamp", b"playbackStateTimestamp", "playerPath", b"playerPath", "request", b"request", "supportedCommands", b"supportedCommands"]) -> builtins.bool: ...
|
|
69
|
+
def ClearField(self, field_name: typing.Literal["displayID", b"displayID", "displayName", b"displayName", "nowPlayingInfo", b"nowPlayingInfo", "playbackQueue", b"playbackQueue", "playbackQueueCapabilities", b"playbackQueueCapabilities", "playbackState", b"playbackState", "playbackStateTimestamp", b"playbackStateTimestamp", "playerPath", b"playerPath", "request", b"request", "supportedCommands", b"supportedCommands"]) -> None: ...
|
|
70
|
+
|
|
71
|
+
global___SetDefaultSupportedCommandsMessage = SetDefaultSupportedCommandsMessage
|
|
72
|
+
|
|
73
|
+
SETDEFAULTSUPPORTEDCOMMANDSMESSAGE_FIELD_NUMBER: builtins.int
|
|
74
|
+
setDefaultSupportedCommandsMessage: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2.ProtocolMessage, global___SetDefaultSupportedCommandsMessage]
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
syntax = "proto2";
|
|
2
|
+
|
|
3
|
+
import "pyatv/protocols/mrp/protobuf/ProtocolMessage.proto";
|
|
4
|
+
|
|
5
|
+
extend ProtocolMessage {
|
|
6
|
+
optional SetDiscoveryModeMessage setDiscoveryModeMessage = 82;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
message SetDiscoveryModeMessage {
|
|
10
|
+
optional int32 mode = 1;
|
|
11
|
+
optional int32 features = 2;
|
|
12
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"""
|
|
2
|
+
@generated by mypy-protobuf. Do not edit manually!
|
|
3
|
+
isort:skip_file
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
import builtins
|
|
7
|
+
import google.protobuf.descriptor
|
|
8
|
+
import google.protobuf.internal.extension_dict
|
|
9
|
+
import google.protobuf.message
|
|
10
|
+
import pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2
|
|
11
|
+
import typing
|
|
12
|
+
|
|
13
|
+
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
14
|
+
|
|
15
|
+
@typing.final
|
|
16
|
+
class SetDiscoveryModeMessage(google.protobuf.message.Message):
|
|
17
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
18
|
+
|
|
19
|
+
MODE_FIELD_NUMBER: builtins.int
|
|
20
|
+
FEATURES_FIELD_NUMBER: builtins.int
|
|
21
|
+
mode: builtins.int
|
|
22
|
+
features: builtins.int
|
|
23
|
+
def __init__(
|
|
24
|
+
self,
|
|
25
|
+
*,
|
|
26
|
+
mode: builtins.int | None = ...,
|
|
27
|
+
features: builtins.int | None = ...,
|
|
28
|
+
) -> None: ...
|
|
29
|
+
def HasField(self, field_name: typing.Literal["features", b"features", "mode", b"mode"]) -> builtins.bool: ...
|
|
30
|
+
def ClearField(self, field_name: typing.Literal["features", b"features", "mode", b"mode"]) -> None: ...
|
|
31
|
+
|
|
32
|
+
global___SetDiscoveryModeMessage = SetDiscoveryModeMessage
|
|
33
|
+
|
|
34
|
+
SETDISCOVERYMODEMESSAGE_FIELD_NUMBER: builtins.int
|
|
35
|
+
setDiscoveryModeMessage: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2.ProtocolMessage, global___SetDiscoveryModeMessage]
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"""
|
|
2
|
+
@generated by mypy-protobuf. Do not edit manually!
|
|
3
|
+
isort:skip_file
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
import builtins
|
|
7
|
+
import google.protobuf.descriptor
|
|
8
|
+
import google.protobuf.internal.extension_dict
|
|
9
|
+
import google.protobuf.message
|
|
10
|
+
import pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2
|
|
11
|
+
import typing
|
|
12
|
+
|
|
13
|
+
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
14
|
+
|
|
15
|
+
@typing.final
|
|
16
|
+
class SetHiliteModeMessage(google.protobuf.message.Message):
|
|
17
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
18
|
+
|
|
19
|
+
HILITEMODE_FIELD_NUMBER: builtins.int
|
|
20
|
+
hiliteMode: builtins.int
|
|
21
|
+
def __init__(
|
|
22
|
+
self,
|
|
23
|
+
*,
|
|
24
|
+
hiliteMode: builtins.int | None = ...,
|
|
25
|
+
) -> None: ...
|
|
26
|
+
def HasField(self, field_name: typing.Literal["hiliteMode", b"hiliteMode"]) -> builtins.bool: ...
|
|
27
|
+
def ClearField(self, field_name: typing.Literal["hiliteMode", b"hiliteMode"]) -> None: ...
|
|
28
|
+
|
|
29
|
+
global___SetHiliteModeMessage = SetHiliteModeMessage
|
|
30
|
+
|
|
31
|
+
SETHILITEMODEMESSAGE_FIELD_NUMBER: builtins.int
|
|
32
|
+
setHiliteModeMessage: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2.ProtocolMessage, global___SetHiliteModeMessage]
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
syntax = "proto2";
|
|
2
|
+
|
|
3
|
+
import "pyatv/protocols/mrp/protobuf/ProtocolMessage.proto";
|
|
4
|
+
import "pyatv/protocols/mrp/protobuf/NowPlayingClient.proto";
|
|
5
|
+
|
|
6
|
+
extend ProtocolMessage {
|
|
7
|
+
optional SetNowPlayingClientMessage setNowPlayingClientMessage = 50;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
message SetNowPlayingClientMessage {
|
|
11
|
+
optional NowPlayingClient client = 1;
|
|
12
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
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.NowPlayingClient_pb2
|
|
11
|
+
import pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2
|
|
12
|
+
import typing
|
|
13
|
+
|
|
14
|
+
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
15
|
+
|
|
16
|
+
@typing.final
|
|
17
|
+
class SetNowPlayingClientMessage(google.protobuf.message.Message):
|
|
18
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
19
|
+
|
|
20
|
+
CLIENT_FIELD_NUMBER: builtins.int
|
|
21
|
+
@property
|
|
22
|
+
def client(self) -> pyatv.protocols.mrp.protobuf.NowPlayingClient_pb2.NowPlayingClient: ...
|
|
23
|
+
def __init__(
|
|
24
|
+
self,
|
|
25
|
+
*,
|
|
26
|
+
client: pyatv.protocols.mrp.protobuf.NowPlayingClient_pb2.NowPlayingClient | None = ...,
|
|
27
|
+
) -> None: ...
|
|
28
|
+
def HasField(self, field_name: typing.Literal["client", b"client"]) -> builtins.bool: ...
|
|
29
|
+
def ClearField(self, field_name: typing.Literal["client", b"client"]) -> None: ...
|
|
30
|
+
|
|
31
|
+
global___SetNowPlayingClientMessage = SetNowPlayingClientMessage
|
|
32
|
+
|
|
33
|
+
SETNOWPLAYINGCLIENTMESSAGE_FIELD_NUMBER: builtins.int
|
|
34
|
+
setNowPlayingClientMessage: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2.ProtocolMessage, global___SetNowPlayingClientMessage]
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
syntax = "proto2";
|
|
2
|
+
|
|
3
|
+
import "pyatv/protocols/mrp/protobuf/ProtocolMessage.proto";
|
|
4
|
+
import "pyatv/protocols/mrp/protobuf/PlayerPath.proto";
|
|
5
|
+
|
|
6
|
+
extend ProtocolMessage {
|
|
7
|
+
optional SetNowPlayingPlayerMessage setNowPlayingPlayerMessage = 51;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
message SetNowPlayingPlayerMessage {
|
|
11
|
+
optional PlayerPath playerPath = 1;
|
|
12
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
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.PlayerPath_pb2
|
|
11
|
+
import pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2
|
|
12
|
+
import typing
|
|
13
|
+
|
|
14
|
+
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
15
|
+
|
|
16
|
+
@typing.final
|
|
17
|
+
class SetNowPlayingPlayerMessage(google.protobuf.message.Message):
|
|
18
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
19
|
+
|
|
20
|
+
PLAYERPATH_FIELD_NUMBER: builtins.int
|
|
21
|
+
@property
|
|
22
|
+
def playerPath(self) -> pyatv.protocols.mrp.protobuf.PlayerPath_pb2.PlayerPath: ...
|
|
23
|
+
def __init__(
|
|
24
|
+
self,
|
|
25
|
+
*,
|
|
26
|
+
playerPath: pyatv.protocols.mrp.protobuf.PlayerPath_pb2.PlayerPath | None = ...,
|
|
27
|
+
) -> None: ...
|
|
28
|
+
def HasField(self, field_name: typing.Literal["playerPath", b"playerPath"]) -> builtins.bool: ...
|
|
29
|
+
def ClearField(self, field_name: typing.Literal["playerPath", b"playerPath"]) -> None: ...
|
|
30
|
+
|
|
31
|
+
global___SetNowPlayingPlayerMessage = SetNowPlayingPlayerMessage
|
|
32
|
+
|
|
33
|
+
SETNOWPLAYINGPLAYERMESSAGE_FIELD_NUMBER: builtins.int
|
|
34
|
+
setNowPlayingPlayerMessage: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2.ProtocolMessage, global___SetNowPlayingPlayerMessage]
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
syntax = "proto2";
|
|
2
|
+
|
|
3
|
+
import "pyatv/protocols/mrp/protobuf/ProtocolMessage.proto";
|
|
4
|
+
|
|
5
|
+
extend ProtocolMessage {
|
|
6
|
+
optional SetRecordingStateMessage setRecordingStateMessage = 35;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
message SetRecordingStateMessage {
|
|
10
|
+
enum RecordingState {
|
|
11
|
+
Unknown = 0;
|
|
12
|
+
Recording = 1;
|
|
13
|
+
NotRecording = 2;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
optional RecordingState state = 1;
|
|
17
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
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.enum_type_wrapper
|
|
9
|
+
import google.protobuf.internal.extension_dict
|
|
10
|
+
import google.protobuf.message
|
|
11
|
+
import pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2
|
|
12
|
+
import sys
|
|
13
|
+
import typing
|
|
14
|
+
|
|
15
|
+
if sys.version_info >= (3, 10):
|
|
16
|
+
import typing as typing_extensions
|
|
17
|
+
else:
|
|
18
|
+
import typing_extensions
|
|
19
|
+
|
|
20
|
+
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
21
|
+
|
|
22
|
+
@typing.final
|
|
23
|
+
class SetRecordingStateMessage(google.protobuf.message.Message):
|
|
24
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
25
|
+
|
|
26
|
+
class _RecordingState:
|
|
27
|
+
ValueType = typing.NewType("ValueType", builtins.int)
|
|
28
|
+
V: typing_extensions.TypeAlias = ValueType
|
|
29
|
+
|
|
30
|
+
class _RecordingStateEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[SetRecordingStateMessage._RecordingState.ValueType], builtins.type):
|
|
31
|
+
DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
|
|
32
|
+
Unknown: SetRecordingStateMessage._RecordingState.ValueType # 0
|
|
33
|
+
Recording: SetRecordingStateMessage._RecordingState.ValueType # 1
|
|
34
|
+
NotRecording: SetRecordingStateMessage._RecordingState.ValueType # 2
|
|
35
|
+
|
|
36
|
+
class RecordingState(_RecordingState, metaclass=_RecordingStateEnumTypeWrapper): ...
|
|
37
|
+
Unknown: SetRecordingStateMessage.RecordingState.ValueType # 0
|
|
38
|
+
Recording: SetRecordingStateMessage.RecordingState.ValueType # 1
|
|
39
|
+
NotRecording: SetRecordingStateMessage.RecordingState.ValueType # 2
|
|
40
|
+
|
|
41
|
+
STATE_FIELD_NUMBER: builtins.int
|
|
42
|
+
state: global___SetRecordingStateMessage.RecordingState.ValueType
|
|
43
|
+
def __init__(
|
|
44
|
+
self,
|
|
45
|
+
*,
|
|
46
|
+
state: global___SetRecordingStateMessage.RecordingState.ValueType | None = ...,
|
|
47
|
+
) -> None: ...
|
|
48
|
+
def HasField(self, field_name: typing.Literal["state", b"state"]) -> builtins.bool: ...
|
|
49
|
+
def ClearField(self, field_name: typing.Literal["state", b"state"]) -> None: ...
|
|
50
|
+
|
|
51
|
+
global___SetRecordingStateMessage = SetRecordingStateMessage
|
|
52
|
+
|
|
53
|
+
SETRECORDINGSTATEMESSAGE_FIELD_NUMBER: builtins.int
|
|
54
|
+
setRecordingStateMessage: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2.ProtocolMessage, global___SetRecordingStateMessage]
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
syntax = "proto2";
|
|
2
|
+
|
|
3
|
+
import "pyatv/protocols/mrp/protobuf/ProtocolMessage.proto";
|
|
4
|
+
import "pyatv/protocols/mrp/protobuf/NowPlayingInfo.proto";
|
|
5
|
+
import "pyatv/protocols/mrp/protobuf/PlaybackQueue.proto";
|
|
6
|
+
import "pyatv/protocols/mrp/protobuf/SupportedCommands.proto";
|
|
7
|
+
import "pyatv/protocols/mrp/protobuf/PlaybackQueueCapabilities.proto";
|
|
8
|
+
import "pyatv/protocols/mrp/protobuf/PlayerPath.proto";
|
|
9
|
+
import "pyatv/protocols/mrp/protobuf/PlaybackQueueRequestMessage.proto";
|
|
10
|
+
import "pyatv/protocols/mrp/protobuf/Common.proto";
|
|
11
|
+
|
|
12
|
+
extend ProtocolMessage {
|
|
13
|
+
optional SetStateMessage setStateMessage = 9;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
message SetStateMessage {
|
|
17
|
+
optional NowPlayingInfo nowPlayingInfo = 1;
|
|
18
|
+
optional SupportedCommands supportedCommands = 2;
|
|
19
|
+
optional PlaybackQueue playbackQueue = 3;
|
|
20
|
+
optional string displayID = 4;
|
|
21
|
+
optional string displayName = 5;
|
|
22
|
+
optional PlaybackState.Enum playbackState = 6;
|
|
23
|
+
optional PlaybackQueueCapabilities playbackQueueCapabilities = 8;
|
|
24
|
+
optional PlayerPath playerPath = 9;
|
|
25
|
+
optional PlaybackQueueRequestMessage request = 10;
|
|
26
|
+
optional double playbackStateTimestamp = 11;
|
|
27
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
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.Common_pb2
|
|
11
|
+
import pyatv.protocols.mrp.protobuf.NowPlayingInfo_pb2
|
|
12
|
+
import pyatv.protocols.mrp.protobuf.PlaybackQueueCapabilities_pb2
|
|
13
|
+
import pyatv.protocols.mrp.protobuf.PlaybackQueueRequestMessage_pb2
|
|
14
|
+
import pyatv.protocols.mrp.protobuf.PlaybackQueue_pb2
|
|
15
|
+
import pyatv.protocols.mrp.protobuf.PlayerPath_pb2
|
|
16
|
+
import pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2
|
|
17
|
+
import pyatv.protocols.mrp.protobuf.SupportedCommands_pb2
|
|
18
|
+
import typing
|
|
19
|
+
|
|
20
|
+
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
21
|
+
|
|
22
|
+
@typing.final
|
|
23
|
+
class SetStateMessage(google.protobuf.message.Message):
|
|
24
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
25
|
+
|
|
26
|
+
NOWPLAYINGINFO_FIELD_NUMBER: builtins.int
|
|
27
|
+
SUPPORTEDCOMMANDS_FIELD_NUMBER: builtins.int
|
|
28
|
+
PLAYBACKQUEUE_FIELD_NUMBER: builtins.int
|
|
29
|
+
DISPLAYID_FIELD_NUMBER: builtins.int
|
|
30
|
+
DISPLAYNAME_FIELD_NUMBER: builtins.int
|
|
31
|
+
PLAYBACKSTATE_FIELD_NUMBER: builtins.int
|
|
32
|
+
PLAYBACKQUEUECAPABILITIES_FIELD_NUMBER: builtins.int
|
|
33
|
+
PLAYERPATH_FIELD_NUMBER: builtins.int
|
|
34
|
+
REQUEST_FIELD_NUMBER: builtins.int
|
|
35
|
+
PLAYBACKSTATETIMESTAMP_FIELD_NUMBER: builtins.int
|
|
36
|
+
displayID: builtins.str
|
|
37
|
+
displayName: builtins.str
|
|
38
|
+
playbackState: pyatv.protocols.mrp.protobuf.Common_pb2.PlaybackState.Enum.ValueType
|
|
39
|
+
playbackStateTimestamp: builtins.float
|
|
40
|
+
@property
|
|
41
|
+
def nowPlayingInfo(self) -> pyatv.protocols.mrp.protobuf.NowPlayingInfo_pb2.NowPlayingInfo: ...
|
|
42
|
+
@property
|
|
43
|
+
def supportedCommands(self) -> pyatv.protocols.mrp.protobuf.SupportedCommands_pb2.SupportedCommands: ...
|
|
44
|
+
@property
|
|
45
|
+
def playbackQueue(self) -> pyatv.protocols.mrp.protobuf.PlaybackQueue_pb2.PlaybackQueue: ...
|
|
46
|
+
@property
|
|
47
|
+
def playbackQueueCapabilities(self) -> pyatv.protocols.mrp.protobuf.PlaybackQueueCapabilities_pb2.PlaybackQueueCapabilities: ...
|
|
48
|
+
@property
|
|
49
|
+
def playerPath(self) -> pyatv.protocols.mrp.protobuf.PlayerPath_pb2.PlayerPath: ...
|
|
50
|
+
@property
|
|
51
|
+
def request(self) -> pyatv.protocols.mrp.protobuf.PlaybackQueueRequestMessage_pb2.PlaybackQueueRequestMessage: ...
|
|
52
|
+
def __init__(
|
|
53
|
+
self,
|
|
54
|
+
*,
|
|
55
|
+
nowPlayingInfo: pyatv.protocols.mrp.protobuf.NowPlayingInfo_pb2.NowPlayingInfo | None = ...,
|
|
56
|
+
supportedCommands: pyatv.protocols.mrp.protobuf.SupportedCommands_pb2.SupportedCommands | None = ...,
|
|
57
|
+
playbackQueue: pyatv.protocols.mrp.protobuf.PlaybackQueue_pb2.PlaybackQueue | None = ...,
|
|
58
|
+
displayID: builtins.str | None = ...,
|
|
59
|
+
displayName: builtins.str | None = ...,
|
|
60
|
+
playbackState: pyatv.protocols.mrp.protobuf.Common_pb2.PlaybackState.Enum.ValueType | None = ...,
|
|
61
|
+
playbackQueueCapabilities: pyatv.protocols.mrp.protobuf.PlaybackQueueCapabilities_pb2.PlaybackQueueCapabilities | None = ...,
|
|
62
|
+
playerPath: pyatv.protocols.mrp.protobuf.PlayerPath_pb2.PlayerPath | None = ...,
|
|
63
|
+
request: pyatv.protocols.mrp.protobuf.PlaybackQueueRequestMessage_pb2.PlaybackQueueRequestMessage | None = ...,
|
|
64
|
+
playbackStateTimestamp: builtins.float | None = ...,
|
|
65
|
+
) -> None: ...
|
|
66
|
+
def HasField(self, field_name: typing.Literal["displayID", b"displayID", "displayName", b"displayName", "nowPlayingInfo", b"nowPlayingInfo", "playbackQueue", b"playbackQueue", "playbackQueueCapabilities", b"playbackQueueCapabilities", "playbackState", b"playbackState", "playbackStateTimestamp", b"playbackStateTimestamp", "playerPath", b"playerPath", "request", b"request", "supportedCommands", b"supportedCommands"]) -> builtins.bool: ...
|
|
67
|
+
def ClearField(self, field_name: typing.Literal["displayID", b"displayID", "displayName", b"displayName", "nowPlayingInfo", b"nowPlayingInfo", "playbackQueue", b"playbackQueue", "playbackQueueCapabilities", b"playbackQueueCapabilities", "playbackState", b"playbackState", "playbackStateTimestamp", b"playbackStateTimestamp", "playerPath", b"playerPath", "request", b"request", "supportedCommands", b"supportedCommands"]) -> None: ...
|
|
68
|
+
|
|
69
|
+
global___SetStateMessage = SetStateMessage
|
|
70
|
+
|
|
71
|
+
SETSTATEMESSAGE_FIELD_NUMBER: builtins.int
|
|
72
|
+
setStateMessage: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2.ProtocolMessage, global___SetStateMessage]
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
syntax = "proto2";
|
|
2
|
+
|
|
3
|
+
import "pyatv/protocols/mrp/protobuf/ProtocolMessage.proto";
|
|
4
|
+
|
|
5
|
+
extend ProtocolMessage {
|
|
6
|
+
optional SetVolumeMessage setVolumeMessage = 55;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
message SetVolumeMessage {
|
|
10
|
+
optional float volume = 1;
|
|
11
|
+
optional string outputDeviceUID = 2;
|
|
12
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"""
|
|
2
|
+
@generated by mypy-protobuf. Do not edit manually!
|
|
3
|
+
isort:skip_file
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
import builtins
|
|
7
|
+
import google.protobuf.descriptor
|
|
8
|
+
import google.protobuf.internal.extension_dict
|
|
9
|
+
import google.protobuf.message
|
|
10
|
+
import pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2
|
|
11
|
+
import typing
|
|
12
|
+
|
|
13
|
+
DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
|
|
14
|
+
|
|
15
|
+
@typing.final
|
|
16
|
+
class SetVolumeMessage(google.protobuf.message.Message):
|
|
17
|
+
DESCRIPTOR: google.protobuf.descriptor.Descriptor
|
|
18
|
+
|
|
19
|
+
VOLUME_FIELD_NUMBER: builtins.int
|
|
20
|
+
OUTPUTDEVICEUID_FIELD_NUMBER: builtins.int
|
|
21
|
+
volume: builtins.float
|
|
22
|
+
outputDeviceUID: builtins.str
|
|
23
|
+
def __init__(
|
|
24
|
+
self,
|
|
25
|
+
*,
|
|
26
|
+
volume: builtins.float | None = ...,
|
|
27
|
+
outputDeviceUID: builtins.str | None = ...,
|
|
28
|
+
) -> None: ...
|
|
29
|
+
def HasField(self, field_name: typing.Literal["outputDeviceUID", b"outputDeviceUID", "volume", b"volume"]) -> builtins.bool: ...
|
|
30
|
+
def ClearField(self, field_name: typing.Literal["outputDeviceUID", b"outputDeviceUID", "volume", b"volume"]) -> None: ...
|
|
31
|
+
|
|
32
|
+
global___SetVolumeMessage = SetVolumeMessage
|
|
33
|
+
|
|
34
|
+
SETVOLUMEMESSAGE_FIELD_NUMBER: builtins.int
|
|
35
|
+
setVolumeMessage: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[pyatv.protocols.mrp.protobuf.ProtocolMessage_pb2.ProtocolMessage, global___SetVolumeMessage]
|