mx-remote 4.7.8__tar.gz → 4.7.9__tar.gz
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.
- mx_remote-4.7.9/.claude/settings.local.json +13 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/PKG-INFO +1 -1
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/const.py +10 -1
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/const.pyi +3 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/remote/Bay.py +17 -5
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/remote/Bay.pyi +1 -0
- mx_remote-4.7.8/.claude/agents/semble-search.md +0 -30
- mx_remote-4.7.8/.claude/settings.local.json +0 -9
- {mx_remote-4.7.8 → mx_remote-4.7.9}/.gitignore +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/CLAUDE.md +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/LICENSE +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/README.md +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/hatch_build.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/Interface.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/Interface.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/Uid.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/Uid.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/__init__.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/__init__.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/main.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/main.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/BayConfig.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/BayConfig.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/Constants.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/Constants.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/Data.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/Data.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/Factory.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/Factory.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameAmpDolbySettings.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameAmpDolbySettings.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameAmpZoneSettings.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameAmpZoneSettings.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameBase.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameBase.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameBayConfig.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameBayConfig.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameBayConfigSecondary.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameBayConfigSecondary.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameBayHide.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameBayHide.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameBayStatus.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameBayStatus.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameConnectStatus.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameConnectStatus.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameDebug.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameDebug.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameDiscover.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameDiscover.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameEDID.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameEDID.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameEDIDProfile.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameEDIDProfile.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameFactoryReset.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameFactoryReset.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameFilterStatus.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameFilterStatus.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameFirmwareVersion.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameFirmwareVersion.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameHeader.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameHeader.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameHello.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameHello.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameLinks.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameLinks.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameMeshOperation.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameMeshOperation.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameMirrorStatus.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameMirrorStatus.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameMonitoringPulse.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameMonitoringPulse.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameNetworkStatus.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameNetworkStatus.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FramePDUState.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FramePDUState.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FramePowerChange.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FramePowerChange.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameRCAction.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameRCAction.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameRCIr.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameRCIr.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameRCKey.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameRCKey.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameRCSettings.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameRCSettings.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameReboot.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameReboot.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameRoutingChange.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameRoutingChange.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameSetInstaller.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameSetInstaller.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameSetName.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameSetName.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameSetRoute.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameSetRoute.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameSetupStatus.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameSetupStatus.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameSignalStatus.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameSignalStatus.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameSignalStatusNew.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameSignalStatusNew.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameSysTemperature.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameSysTemperature.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameSystemStatus.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameSystemStatus.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameTXRCAction.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameTXRCAction.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameTopology.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameTopology.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameTxIR.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameTxIR.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameUpgradeFPGA.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameUpgradeFPGA.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameV2IPAudio.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameV2IPAudio.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameV2IPBayMapping.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameV2IPBayMapping.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameV2IPDeviceConfiguration.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameV2IPDeviceConfiguration.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameV2IPLink.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameV2IPLink.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameV2IPManualSourceSwitch.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameV2IPManualSourceSwitch.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameV2IPMultiviewer.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameV2IPMultiviewer.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameV2IPPowerSave.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameV2IPPowerSave.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameV2IPSetMaster.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameV2IPSetMaster.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameV2IPSourceSwitch.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameV2IPSourceSwitch.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameV2IPSources.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameV2IPSources.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameV2IPStats.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameV2IPStats.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameV2IPStreamDetails.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameV2IPStreamDetails.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameV2IPTiling.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameV2IPTiling.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameVolume.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameVolume.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameVolumeDown.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameVolumeDown.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameVolumeSet.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameVolumeSet.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameVolumeUp.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/FrameVolumeUp.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/LinkConfig.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/LinkConfig.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/Multiviewer.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/Multiviewer.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/PDUState.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/PDUState.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/Svd.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/Svd.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/V2IPConfig.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/V2IPConfig.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/V2IPStats.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/V2IPStats.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/__init__.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/__init__.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/proto/svd.csv +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/py.typed +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/remote/ConnectionAsync.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/remote/ConnectionAsync.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/remote/Device.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/remote/Device.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/remote/Link.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/remote/Link.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/remote/P8PDU.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/remote/P8PDU.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/remote/Remote.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/remote/Remote.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/remote/State.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/remote/State.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/remote/V2IP.py +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/mx_remote/remote/V2IP.pyi +0 -0
- {mx_remote-4.7.8 → mx_remote-4.7.9}/pyproject.toml +0 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Bash(scp *)",
|
|
5
|
+
"Bash(ssh hass@home '~/venv-hass/bin/pip install --upgrade /tmp/mx_remote-4.3.0-py3-none-any.whl')",
|
|
6
|
+
"Bash(ssh hass@home *)",
|
|
7
|
+
"Bash(git reset *)",
|
|
8
|
+
"Bash(mount)",
|
|
9
|
+
"Bash(curl -s -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiI1ZTU3MjI0Zjc3ZjQ0OWVkYjEzMzU5YjAyMTMzN2IzMiIsImlhdCI6MTc3NTQ4MjM0NiwiZXhwIjoyMDkwODQyMzQ2fQ.EzuPwl8JfzUFkWQIczcKGc_bUEfKKzXfday8t7EB93M' http://10.8.100.5:8123/api/states/media_player.video_output_kantoor)",
|
|
10
|
+
"Bash(git pull *)"
|
|
11
|
+
]
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mx_remote
|
|
3
|
-
Version: 4.7.
|
|
3
|
+
Version: 4.7.9
|
|
4
4
|
Summary: Python 3 library for interfacing with MX Remote compatible devices
|
|
5
5
|
Project-URL: Homepage, https://github.com/opdenkamp/mx-remote/
|
|
6
6
|
Project-URL: Documentation, https://github.com/opdenkamp/mx-remote/
|
|
@@ -14,7 +14,7 @@ Default communication modes:
|
|
|
14
14
|
"""
|
|
15
15
|
import os
|
|
16
16
|
|
|
17
|
-
VERSION = '4.7.
|
|
17
|
+
VERSION = '4.7.9'
|
|
18
18
|
__version__ = VERSION
|
|
19
19
|
|
|
20
20
|
MX_BCAST_UDP_PORT = 8811
|
|
@@ -26,4 +26,13 @@ MX_MCAST_UDP_IP = '224.8.8.8'
|
|
|
26
26
|
MX_MCAST_UDP_PORT = 8812
|
|
27
27
|
"""UDP port used in multicast mode (default)."""
|
|
28
28
|
|
|
29
|
+
V2IP_UDP_PORT_VIDEO = 50020
|
|
30
|
+
"""Default destination UDP port for a V2IP video stream (firmware ``V2IP_UDP_PORT_VIDEO``)."""
|
|
31
|
+
|
|
32
|
+
V2IP_UDP_PORT_ANC = 50021
|
|
33
|
+
"""Default destination UDP port for a V2IP ancillary stream (firmware ``V2IP_UDP_PORT_ANC``)."""
|
|
34
|
+
|
|
35
|
+
V2IP_UDP_PORT_AUDIO = 50022
|
|
36
|
+
"""Default destination UDP port for a V2IP audio stream (firmware ``V2IP_UDP_PORT_AUDIO``)."""
|
|
37
|
+
|
|
29
38
|
BASE_PATH = os.path.dirname(__file__)
|
|
@@ -43,6 +43,7 @@ from ..Interface import (
|
|
|
43
43
|
AudioChangeSource,
|
|
44
44
|
)
|
|
45
45
|
from ..Uid import MxrBayUid
|
|
46
|
+
from ..const import V2IP_UDP_PORT_AUDIO
|
|
46
47
|
|
|
47
48
|
_LOGGER = logging.getLogger(__name__)
|
|
48
49
|
|
|
@@ -830,9 +831,13 @@ class Bay(BayBase):
|
|
|
830
831
|
async def select_audio_source(self, source:int|BayBase|str|None, endpoint:str|None=None, audio_fmt:V2IPAudioFormat|None=None) -> bool:
|
|
831
832
|
'''Select the audio source for this output bay.
|
|
832
833
|
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
834
|
+
``source`` may be an input port number, a source ``BayBase``, or a raw
|
|
835
|
+
``"ip[:port]"`` multicast address string. The manual V2IP source switch
|
|
836
|
+
frame (0x24) is used when ``audio_fmt`` is provided (so the receiver's
|
|
837
|
+
sample rate and channel count can be overridden) or when ``source`` is a
|
|
838
|
+
raw address (so its destination port is carried -- the legacy 0x1F frame
|
|
839
|
+
has no port field). A raw address without a port defaults to the standard
|
|
840
|
+
V2IP audio port. video/anc are sent as 0.0.0.0:0 (no change).
|
|
836
841
|
'''
|
|
837
842
|
if not self.is_v2ip_sink:
|
|
838
843
|
return False
|
|
@@ -846,7 +851,14 @@ class Bay(BayBase):
|
|
|
846
851
|
if (source is None) or (not isinstance(source, (BayBase, str))):
|
|
847
852
|
return False
|
|
848
853
|
|
|
849
|
-
|
|
854
|
+
# A raw "ip[:port]" source string carries a destination port that only the
|
|
855
|
+
# manual switch frame (0x24) can express; the legacy source-switch frame
|
|
856
|
+
# (0x1F) has no port field, so the receiver resolves the address against
|
|
857
|
+
# its known sources and, failing that, falls back to the *default* audio
|
|
858
|
+
# port -- a custom stream on any other port never routes. Use the manual
|
|
859
|
+
# frame whenever the source is a raw address or an audio format override
|
|
860
|
+
# is requested; a known input bay with neither still uses 0x1F.
|
|
861
|
+
if (audio_fmt is not None) or isinstance(source, str):
|
|
850
862
|
if isinstance(source, BayBase):
|
|
851
863
|
if (source.v2ip_source is None) or (source.v2ip_source.audio is None):
|
|
852
864
|
return False
|
|
@@ -855,7 +867,7 @@ class Bay(BayBase):
|
|
|
855
867
|
else:
|
|
856
868
|
host, _, port_s = source.partition(':')
|
|
857
869
|
audio_ip = host
|
|
858
|
-
audio_port = int(port_s) if port_s else
|
|
870
|
+
audio_port = int(port_s) if port_s else V2IP_UDP_PORT_AUDIO
|
|
859
871
|
frame = FrameV2IPManualSourceSwitch.construct(
|
|
860
872
|
mxr=self.device.registry, target=self.device,
|
|
861
873
|
video_ip="0.0.0.0", video_port=0,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from ..Interface import AmpZoneSettings as AmpZoneSettings, AudioChangeSource as AudioChangeSource, AudioEndpoint as AudioEndpoint, BayBase as BayBase, BayLink as BayLink, BayMirrorStatus as BayMirrorStatus, ConnectStatus as ConnectStatus, DeviceBase as DeviceBase, DeviceStatus as DeviceStatus, FilteredDevices as FilteredDevices, HiddenStatus as HiddenStatus, MxrCallbacks as MxrCallbacks, MxrDeviceUid as MxrDeviceUid, PowerStatus as PowerStatus, SelectedBays as SelectedBays, SignalStatus as SignalStatus, V2IPStreamSources as V2IPStreamSources
|
|
2
2
|
from ..Uid import MxrBayUid as MxrBayUid
|
|
3
|
+
from ..const import V2IP_UDP_PORT_AUDIO as V2IP_UDP_PORT_AUDIO
|
|
3
4
|
from ..proto.BayConfig import BayConfig as BayConfig
|
|
4
5
|
from ..proto.Constants import BayFeaturesMask as BayFeaturesMask, BayStatusMask as BayStatusMask, EdidProfile as EdidProfile, RCAction as RCAction, RCKey as RCKey, RCType as RCType
|
|
5
6
|
from ..proto.Data import VolumeMuteStatus as VolumeMuteStatus
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: semble-search
|
|
3
|
-
description: Code search agent for exploring any codebase. Use for finding code by intent, locating implementations, understanding how something works, or discovering related code. Prefer over Grep/Glob/Read for any semantic or exploratory question.
|
|
4
|
-
tools: Bash, Read
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
Use `semble search` to find code by describing what it does or naming a symbol/identifier, instead of grep:
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
semble search "authentication flow" ./my-project
|
|
11
|
-
semble search "save_pretrained" ./my-project
|
|
12
|
-
semble search "save model to disk" ./my-project --top-k 10
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
Use `semble find-related` to discover code similar to a known location (pass `file_path` and `line` from a prior search result):
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
semble find-related src/auth.py 42 ./my-project
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
`path` defaults to the current directory when omitted; git URLs are accepted.
|
|
22
|
-
|
|
23
|
-
If `semble` is not on `$PATH`, use `uvx --from "semble[mcp]" semble` in its place.
|
|
24
|
-
|
|
25
|
-
## Workflow
|
|
26
|
-
|
|
27
|
-
1. Start with `semble search` to find relevant chunks.
|
|
28
|
-
2. Inspect full files only when the returned chunk is not enough context.
|
|
29
|
-
3. Optionally use `semble find-related` with a promising result's `file_path` and `line` to discover related implementations.
|
|
30
|
-
4. Use grep only when you need exhaustive literal matches or quick confirmation of an exact string.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|