mx-remote 4.7.2__tar.gz → 4.7.4__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.
Files changed (175) hide show
  1. {mx_remote-4.7.2 → mx_remote-4.7.4}/PKG-INFO +1 -1
  2. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/const.py +1 -1
  3. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameMirrorStatus.py +8 -3
  4. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/remote/Bay.py +7 -0
  5. {mx_remote-4.7.2 → mx_remote-4.7.4}/.claude/settings.local.json +0 -0
  6. {mx_remote-4.7.2 → mx_remote-4.7.4}/.gitignore +0 -0
  7. {mx_remote-4.7.2 → mx_remote-4.7.4}/LICENSE +0 -0
  8. {mx_remote-4.7.2 → mx_remote-4.7.4}/README.md +0 -0
  9. {mx_remote-4.7.2 → mx_remote-4.7.4}/hatch_build.py +0 -0
  10. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/Interface.py +0 -0
  11. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/Interface.pyi +0 -0
  12. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/Uid.py +0 -0
  13. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/Uid.pyi +0 -0
  14. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/__init__.py +0 -0
  15. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/__init__.pyi +0 -0
  16. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/const.pyi +0 -0
  17. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/main.py +0 -0
  18. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/main.pyi +0 -0
  19. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/BayConfig.py +0 -0
  20. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/BayConfig.pyi +0 -0
  21. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/Constants.py +0 -0
  22. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/Constants.pyi +0 -0
  23. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/Data.py +0 -0
  24. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/Data.pyi +0 -0
  25. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/Factory.py +0 -0
  26. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/Factory.pyi +0 -0
  27. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameAmpDolbySettings.py +0 -0
  28. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameAmpDolbySettings.pyi +0 -0
  29. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameAmpZoneSettings.py +0 -0
  30. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameAmpZoneSettings.pyi +0 -0
  31. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameBase.py +0 -0
  32. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameBase.pyi +0 -0
  33. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameBayConfig.py +0 -0
  34. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameBayConfig.pyi +0 -0
  35. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameBayConfigSecondary.py +0 -0
  36. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameBayConfigSecondary.pyi +0 -0
  37. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameBayHide.py +0 -0
  38. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameBayHide.pyi +0 -0
  39. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameBayStatus.py +0 -0
  40. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameBayStatus.pyi +0 -0
  41. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameConnectStatus.py +0 -0
  42. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameConnectStatus.pyi +0 -0
  43. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameDebug.py +0 -0
  44. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameDebug.pyi +0 -0
  45. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameDiscover.py +0 -0
  46. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameDiscover.pyi +0 -0
  47. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameEDID.py +0 -0
  48. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameEDID.pyi +0 -0
  49. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameEDIDProfile.py +0 -0
  50. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameEDIDProfile.pyi +0 -0
  51. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameFactoryReset.py +0 -0
  52. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameFactoryReset.pyi +0 -0
  53. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameFilterStatus.py +0 -0
  54. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameFilterStatus.pyi +0 -0
  55. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameFirmwareVersion.py +0 -0
  56. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameFirmwareVersion.pyi +0 -0
  57. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameHeader.py +0 -0
  58. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameHeader.pyi +0 -0
  59. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameHello.py +0 -0
  60. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameHello.pyi +0 -0
  61. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameLinks.py +0 -0
  62. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameLinks.pyi +0 -0
  63. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameMeshOperation.py +0 -0
  64. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameMeshOperation.pyi +0 -0
  65. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameMirrorStatus.pyi +0 -0
  66. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameMonitoringPulse.py +0 -0
  67. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameMonitoringPulse.pyi +0 -0
  68. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameNetworkStatus.py +0 -0
  69. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameNetworkStatus.pyi +0 -0
  70. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FramePDUState.py +0 -0
  71. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FramePDUState.pyi +0 -0
  72. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FramePowerChange.py +0 -0
  73. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FramePowerChange.pyi +0 -0
  74. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameRCAction.py +0 -0
  75. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameRCAction.pyi +0 -0
  76. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameRCIr.py +0 -0
  77. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameRCIr.pyi +0 -0
  78. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameRCKey.py +0 -0
  79. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameRCKey.pyi +0 -0
  80. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameRCSettings.py +0 -0
  81. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameRCSettings.pyi +0 -0
  82. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameReboot.py +0 -0
  83. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameReboot.pyi +0 -0
  84. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameRoutingChange.py +0 -0
  85. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameRoutingChange.pyi +0 -0
  86. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameSetInstaller.py +0 -0
  87. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameSetInstaller.pyi +0 -0
  88. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameSetName.py +0 -0
  89. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameSetName.pyi +0 -0
  90. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameSetRoute.py +0 -0
  91. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameSetRoute.pyi +0 -0
  92. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameSetupStatus.py +0 -0
  93. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameSetupStatus.pyi +0 -0
  94. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameSignalStatus.py +0 -0
  95. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameSignalStatus.pyi +0 -0
  96. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameSignalStatusNew.py +0 -0
  97. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameSignalStatusNew.pyi +0 -0
  98. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameSysTemperature.py +0 -0
  99. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameSysTemperature.pyi +0 -0
  100. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameSystemStatus.py +0 -0
  101. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameSystemStatus.pyi +0 -0
  102. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameTXRCAction.py +0 -0
  103. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameTXRCAction.pyi +0 -0
  104. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameTopology.py +0 -0
  105. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameTopology.pyi +0 -0
  106. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameTxIR.py +0 -0
  107. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameTxIR.pyi +0 -0
  108. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameUpgradeFPGA.py +0 -0
  109. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameUpgradeFPGA.pyi +0 -0
  110. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameV2IPAudio.py +0 -0
  111. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameV2IPAudio.pyi +0 -0
  112. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameV2IPBayMapping.py +0 -0
  113. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameV2IPBayMapping.pyi +0 -0
  114. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameV2IPDeviceConfiguration.py +0 -0
  115. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameV2IPDeviceConfiguration.pyi +0 -0
  116. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameV2IPLink.py +0 -0
  117. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameV2IPLink.pyi +0 -0
  118. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameV2IPManualSourceSwitch.py +0 -0
  119. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameV2IPManualSourceSwitch.pyi +0 -0
  120. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameV2IPMultiviewer.py +0 -0
  121. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameV2IPMultiviewer.pyi +0 -0
  122. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameV2IPPowerSave.py +0 -0
  123. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameV2IPPowerSave.pyi +0 -0
  124. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameV2IPSetMaster.py +0 -0
  125. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameV2IPSetMaster.pyi +0 -0
  126. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameV2IPSourceSwitch.py +0 -0
  127. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameV2IPSourceSwitch.pyi +0 -0
  128. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameV2IPSources.py +0 -0
  129. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameV2IPSources.pyi +0 -0
  130. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameV2IPStats.py +0 -0
  131. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameV2IPStats.pyi +0 -0
  132. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameV2IPStreamDetails.py +0 -0
  133. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameV2IPStreamDetails.pyi +0 -0
  134. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameV2IPTiling.py +0 -0
  135. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameV2IPTiling.pyi +0 -0
  136. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameVolume.py +0 -0
  137. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameVolume.pyi +0 -0
  138. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameVolumeDown.py +0 -0
  139. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameVolumeDown.pyi +0 -0
  140. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameVolumeSet.py +0 -0
  141. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameVolumeSet.pyi +0 -0
  142. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameVolumeUp.py +0 -0
  143. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/FrameVolumeUp.pyi +0 -0
  144. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/LinkConfig.py +0 -0
  145. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/LinkConfig.pyi +0 -0
  146. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/Multiviewer.py +0 -0
  147. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/Multiviewer.pyi +0 -0
  148. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/PDUState.py +0 -0
  149. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/PDUState.pyi +0 -0
  150. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/Svd.py +0 -0
  151. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/Svd.pyi +0 -0
  152. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/V2IPConfig.py +0 -0
  153. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/V2IPConfig.pyi +0 -0
  154. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/V2IPStats.py +0 -0
  155. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/V2IPStats.pyi +0 -0
  156. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/__init__.py +0 -0
  157. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/__init__.pyi +0 -0
  158. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/proto/svd.csv +0 -0
  159. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/py.typed +0 -0
  160. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/remote/Bay.pyi +0 -0
  161. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/remote/ConnectionAsync.py +0 -0
  162. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/remote/ConnectionAsync.pyi +0 -0
  163. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/remote/Device.py +0 -0
  164. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/remote/Device.pyi +0 -0
  165. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/remote/Link.py +0 -0
  166. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/remote/Link.pyi +0 -0
  167. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/remote/P8PDU.py +0 -0
  168. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/remote/P8PDU.pyi +0 -0
  169. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/remote/Remote.py +0 -0
  170. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/remote/Remote.pyi +0 -0
  171. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/remote/State.py +0 -0
  172. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/remote/State.pyi +0 -0
  173. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/remote/V2IP.py +0 -0
  174. {mx_remote-4.7.2 → mx_remote-4.7.4}/mx_remote/remote/V2IP.pyi +0 -0
  175. {mx_remote-4.7.2 → mx_remote-4.7.4}/pyproject.toml +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mx_remote
3
- Version: 4.7.2
3
+ Version: 4.7.4
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.2'
17
+ VERSION = '4.7.4'
18
18
  __version__ = VERSION
19
19
 
20
20
  MX_BCAST_UDP_PORT = 8811
@@ -20,9 +20,14 @@ class FrameMirrorStatus(FrameBase):
20
20
 
21
21
  @cached_property
22
22
  def target_bay(self) -> BayMirrorStatus:
23
- '''Mirror status for the target bay.'''
24
- if (self.target is not None):
25
- return BayMirrorStatus(MxrBayUid(self.target, 0))
23
+ '''Mirror status for the sender's first output bay.
24
+
25
+ Wraps the master UID (offset 16, the device the sender follows).
26
+ Empty when the sender is its own master, i.e. not mirroring.
27
+ '''
28
+ if (self.master is not None) and not self.master.empty \
29
+ and (self.master != self.target):
30
+ return BayMirrorStatus(MxrBayUid(self.master, 0))
26
31
  return BayMirrorStatus()
27
32
 
28
33
  @cached_property
@@ -143,6 +143,13 @@ class Bay(BayBase):
143
143
  @property
144
144
  @override
145
145
  def bay_uid(self) -> MxrBayUid:
146
+ # remote v2ip source bays are per-RX views of the same physical source
147
+ # on a OneIP TX/TZ; collapse them to the originating TX's first input so
148
+ # the same source has the same bay_uid regardless of which RX sees it.
149
+ if BayFeaturesMask.V2IP_SOURCE_REMOTE in self.features:
150
+ src_dev = self.v2ip_device
151
+ if (src_dev is not None) and ((src_input := src_dev.first_input) is not None):
152
+ return MxrBayUid(src_dev.remote_id, src_input.port)
146
153
  return MxrBayUid(self.device.remote_id, self.port)
147
154
 
148
155
  @property
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes