mx-remote 4.7.4__tar.gz → 4.7.6__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.4 → mx_remote-4.7.6}/PKG-INFO +1 -1
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/Interface.py +5 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/Interface.pyi +3 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/const.py +1 -1
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameV2IPSources.py +1 -1
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/V2IPConfig.py +7 -1
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/V2IPConfig.pyi +4 -1
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/remote/Bay.py +7 -5
- {mx_remote-4.7.4 → mx_remote-4.7.6}/.claude/settings.local.json +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/.gitignore +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/LICENSE +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/README.md +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/hatch_build.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/Uid.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/Uid.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/__init__.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/__init__.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/const.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/main.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/main.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/BayConfig.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/BayConfig.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/Constants.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/Constants.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/Data.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/Data.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/Factory.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/Factory.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameAmpDolbySettings.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameAmpDolbySettings.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameAmpZoneSettings.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameAmpZoneSettings.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameBase.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameBase.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameBayConfig.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameBayConfig.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameBayConfigSecondary.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameBayConfigSecondary.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameBayHide.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameBayHide.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameBayStatus.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameBayStatus.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameConnectStatus.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameConnectStatus.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameDebug.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameDebug.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameDiscover.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameDiscover.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameEDID.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameEDID.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameEDIDProfile.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameEDIDProfile.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameFactoryReset.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameFactoryReset.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameFilterStatus.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameFilterStatus.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameFirmwareVersion.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameFirmwareVersion.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameHeader.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameHeader.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameHello.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameHello.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameLinks.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameLinks.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameMeshOperation.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameMeshOperation.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameMirrorStatus.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameMirrorStatus.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameMonitoringPulse.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameMonitoringPulse.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameNetworkStatus.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameNetworkStatus.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FramePDUState.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FramePDUState.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FramePowerChange.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FramePowerChange.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameRCAction.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameRCAction.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameRCIr.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameRCIr.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameRCKey.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameRCKey.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameRCSettings.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameRCSettings.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameReboot.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameReboot.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameRoutingChange.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameRoutingChange.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameSetInstaller.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameSetInstaller.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameSetName.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameSetName.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameSetRoute.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameSetRoute.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameSetupStatus.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameSetupStatus.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameSignalStatus.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameSignalStatus.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameSignalStatusNew.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameSignalStatusNew.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameSysTemperature.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameSysTemperature.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameSystemStatus.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameSystemStatus.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameTXRCAction.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameTXRCAction.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameTopology.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameTopology.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameTxIR.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameTxIR.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameUpgradeFPGA.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameUpgradeFPGA.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameV2IPAudio.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameV2IPAudio.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameV2IPBayMapping.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameV2IPBayMapping.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameV2IPDeviceConfiguration.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameV2IPDeviceConfiguration.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameV2IPLink.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameV2IPLink.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameV2IPManualSourceSwitch.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameV2IPManualSourceSwitch.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameV2IPMultiviewer.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameV2IPMultiviewer.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameV2IPPowerSave.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameV2IPPowerSave.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameV2IPSetMaster.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameV2IPSetMaster.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameV2IPSourceSwitch.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameV2IPSourceSwitch.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameV2IPSources.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameV2IPStats.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameV2IPStats.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameV2IPStreamDetails.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameV2IPStreamDetails.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameV2IPTiling.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameV2IPTiling.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameVolume.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameVolume.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameVolumeDown.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameVolumeDown.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameVolumeSet.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameVolumeSet.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameVolumeUp.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/FrameVolumeUp.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/LinkConfig.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/LinkConfig.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/Multiviewer.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/Multiviewer.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/PDUState.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/PDUState.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/Svd.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/Svd.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/V2IPStats.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/V2IPStats.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/__init__.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/__init__.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/proto/svd.csv +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/py.typed +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/remote/Bay.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/remote/ConnectionAsync.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/remote/ConnectionAsync.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/remote/Device.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/remote/Device.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/remote/Link.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/remote/Link.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/remote/P8PDU.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/remote/P8PDU.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/remote/Remote.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/remote/Remote.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/remote/State.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/remote/State.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/remote/V2IP.py +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/mx_remote/remote/V2IP.pyi +0 -0
- {mx_remote-4.7.4 → mx_remote-4.7.6}/pyproject.toml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mx_remote
|
|
3
|
-
Version: 4.7.
|
|
3
|
+
Version: 4.7.6
|
|
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/
|
|
@@ -332,6 +332,11 @@ class V2IPStreamSources:
|
|
|
332
332
|
All V2IP multicast IP addresses and port numbers used by a device
|
|
333
333
|
"""
|
|
334
334
|
|
|
335
|
+
@property
|
|
336
|
+
@abstractmethod
|
|
337
|
+
def uid(self) -> MxrDeviceUid|None:
|
|
338
|
+
''' uid of the originating source device, when known '''
|
|
339
|
+
|
|
335
340
|
@property
|
|
336
341
|
@abstractmethod
|
|
337
342
|
def video(self) -> V2IPStreamSource:
|
|
@@ -102,6 +102,9 @@ class V2IPStreamSource(ABC):
|
|
|
102
102
|
def port(self) -> int: ...
|
|
103
103
|
|
|
104
104
|
class V2IPStreamSources:
|
|
105
|
+
@property
|
|
106
|
+
@abstractmethod
|
|
107
|
+
def uid(self) -> MxrDeviceUid | None: ...
|
|
105
108
|
@property
|
|
106
109
|
@abstractmethod
|
|
107
110
|
def video(self) -> V2IPStreamSource: ...
|
|
@@ -29,7 +29,7 @@ class FrameV2IPSources(FrameBase):
|
|
|
29
29
|
if (pl is None):
|
|
30
30
|
break
|
|
31
31
|
cfg = V2IPConfig(self, srcnum, pl)
|
|
32
|
-
rv.append(V2IPStreamSourcesImpl(video=cfg.video, audio=cfg.audio, anc=cfg.anc))
|
|
32
|
+
rv.append(V2IPStreamSourcesImpl(video=cfg.video, audio=cfg.audio, anc=cfg.anc, uid=cfg.uid))
|
|
33
33
|
srcnum += 1
|
|
34
34
|
return rv
|
|
35
35
|
|
|
@@ -71,11 +71,17 @@ class V2IPConfig:
|
|
|
71
71
|
class V2IPStreamSourcesImpl(V2IPStreamSources):
|
|
72
72
|
'''Concrete collection of V2IP stream sources (video, audio, ancillary, ARC).'''
|
|
73
73
|
|
|
74
|
-
def __init__(self, video:V2IPStreamSource, audio:V2IPStreamSource, anc:V2IPStreamSource, arc:V2IPStreamSource|None=None) -> None:
|
|
74
|
+
def __init__(self, video:V2IPStreamSource, audio:V2IPStreamSource, anc:V2IPStreamSource, arc:V2IPStreamSource|None=None, uid:MxrDeviceUid|None=None) -> None:
|
|
75
75
|
self._video = video
|
|
76
76
|
self._audio = audio
|
|
77
77
|
self._anc = anc
|
|
78
78
|
self._arc = arc
|
|
79
|
+
self._uid = uid
|
|
80
|
+
|
|
81
|
+
@property
|
|
82
|
+
@override
|
|
83
|
+
def uid(self) -> MxrDeviceUid|None:
|
|
84
|
+
return self._uid
|
|
79
85
|
|
|
80
86
|
@property
|
|
81
87
|
@override
|
|
@@ -28,7 +28,10 @@ class V2IPConfig:
|
|
|
28
28
|
def uid(self) -> MxrDeviceUid: ...
|
|
29
29
|
|
|
30
30
|
class V2IPStreamSourcesImpl(V2IPStreamSources):
|
|
31
|
-
def __init__(self, video: V2IPStreamSource, audio: V2IPStreamSource, anc: V2IPStreamSource, arc: V2IPStreamSource | None = None) -> None: ...
|
|
31
|
+
def __init__(self, video: V2IPStreamSource, audio: V2IPStreamSource, anc: V2IPStreamSource, arc: V2IPStreamSource | None = None, uid: MxrDeviceUid | None = None) -> None: ...
|
|
32
|
+
@property
|
|
33
|
+
@override
|
|
34
|
+
def uid(self) -> MxrDeviceUid | None: ...
|
|
32
35
|
@property
|
|
33
36
|
@override
|
|
34
37
|
def video(self) -> V2IPStreamSource: ...
|
|
@@ -143,11 +143,13 @@ class Bay(BayBase):
|
|
|
143
143
|
@property
|
|
144
144
|
@override
|
|
145
145
|
def bay_uid(self) -> MxrBayUid:
|
|
146
|
-
#
|
|
147
|
-
#
|
|
148
|
-
# the
|
|
149
|
-
|
|
150
|
-
|
|
146
|
+
# In a OneIP mesh the same source can be advertised by multiple devices
|
|
147
|
+
# (mesh forwarding etc.). MXR_OP_SYS_BAY_V2IP_SOURCES carries the uid of
|
|
148
|
+
# the originating source device alongside each stream, so collapse a
|
|
149
|
+
# v2ip source bay to its originating TX's first-input bay_uid — that
|
|
150
|
+
# gives the same physical source a single stable bay_uid.
|
|
151
|
+
if self.is_v2ip_source and ((stream := self.v2ip_source) is not None) and (stream.uid is not None):
|
|
152
|
+
src_dev = self.device.registry.get_by_uid(remote_id=stream.uid)
|
|
151
153
|
if (src_dev is not None) and ((src_input := src_dev.first_input) is not None):
|
|
152
154
|
return MxrBayUid(src_dev.remote_id, src_input.port)
|
|
153
155
|
return MxrBayUid(self.device.remote_id, self.port)
|
|
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
|