Skip to content

Commit b6b5ffb

Browse files
committed
Implement fast update of Proxied Devices
1 parent 1c53c5f commit b6b5ffb

3 files changed

Lines changed: 13 additions & 3 deletions

File tree

RDMSharp/RDM/Device/AbstractRemoteRDMDevice.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,12 @@ public async Task RequestParameter(ERDM_Command command, ERDM_Parameter paramete
324324
ParameterBag parameterBag = new ParameterBag(parameter, this.UID.ManufacturerID, this.deviceInfo.DeviceModelId, this.deviceInfo.SoftwareVersionId);
325325

326326
PeerToPeerProcess ptpProcess = new PeerToPeerProcess(command, this.UID, this.Subdevice, parameterBag);
327-
await ptpProcess.Run();
327+
await runPeerToPeerProcess(ptpProcess);
328+
if (!ptpProcess.ResponsePayloadObject.IsUnset)
329+
{
330+
updateParameterValuesDependeciePropertyBag(ptpProcess.ParameterBag.PID, ptpProcess.ResponsePayloadObject);
331+
updateParameterValuesDataTreeBranch(new ParameterDataCacheBag(ptpProcess.ParameterBag.PID), ptpProcess.ResponsePayloadObject);
332+
}
328333
}
329334
public async Task<object> RequestParameterWithPayload(ERDM_Command command, ERDM_Parameter parameter, object payload)
330335
{

RDMSharp/RDM/Device/Module/ProxiedDevicesModule.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,18 @@ protected override void OnParentGeneratedDeviceChanged(AbstractGeneratedRDMDevic
4747
this.ParentGeneratedDevice.setParameterValue(ERDM_Parameter.PROXIED_DEVICES_COUNT, new RDMProxiedDeviceCount(0, false));
4848
}
4949

50-
protected override void ParameterChanged(ERDM_Parameter parameter, object newValue, object index)
50+
protected override async void ParameterChanged(ERDM_Parameter parameter, object newValue, object index)
5151
{
5252
switch (parameter)
5353
{
5454
case ERDM_Parameter.PROXIED_DEVICES:
5555
OnPropertyChanged(nameof(DeviceUIDs));
5656
break;
57+
58+
case ERDM_Parameter.PROXIED_DEVICES_COUNT:
59+
if (newValue is RDMProxiedDeviceCount proxiedDeviceCount && proxiedDeviceCount.ListChange)
60+
await this.ParentRemoteDevice.RequestParameter(ERDM_Command.GET_COMMAND, ERDM_Parameter.PROXIED_DEVICES);
61+
break;
5762
}
5863
}
5964
public override bool IsHandlingParameter(ERDM_Parameter parameter, ERDM_Command command)

RDMSharp/RDM/Enum/ERDM_Parameter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public enum ERDM_Parameter : ushort
1818
DISC_UN_MUTE = 0x0003,
1919
[ParameterGroup("Proxie"), ParameterUpdateTime(300000)]
2020
PROXIED_DEVICES = 0x0010,
21-
[ParameterGroup("Proxie"), ParameterUpdateTime(30000)]
21+
[ParameterGroup("Proxie"), ParameterUpdateTime(5000)]
2222
PROXIED_DEVICES_COUNT = 0x0011,
2323
COMMS_STATUS = 0x0015,
2424

0 commit comments

Comments
 (0)