public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) { var joinMap = new TesiraStateJoinMapAdvancedStandalone(joinStart); var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey); if (!string.IsNullOrEmpty(joinMapSerialized)) { joinMap = JsonConvert.DeserializeObject <TesiraStateJoinMapAdvancedStandalone>(joinMapSerialized); } if (bridge != null) { bridge.AddJoinMap(Key, joinMap); } if (!Enabled) { return; } Debug.Console(2, this, "Tesira State {0} is Enabled", Key); StateFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Toggle.JoinNumber]); StateFeedback.LinkInputSig(trilist.BooleanInput[joinMap.On.JoinNumber]); StateFeedback.LinkComplementInputSig(trilist.BooleanInput[joinMap.Off.JoinNumber]); NameFeedback.LinkInputSig(trilist.StringInput[joinMap.Label.JoinNumber]); trilist.SetSigTrueAction(joinMap.Toggle.JoinNumber, StateToggle); trilist.SetSigTrueAction(joinMap.On.JoinNumber, StateOn); trilist.SetSigTrueAction(joinMap.Off.JoinNumber, StateOff); trilist.OnlineStatusChange += (d, args) => { if (!args.DeviceOnLine) { return; } foreach (var feedback in Feedbacks) { feedback.FireUpdate(); } }; }
public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) { var joinMap = new TesiraSwitcherJoinMapAdvancedStandalone(joinStart); var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey); if (!string.IsNullOrEmpty(joinMapSerialized)) { joinMap = JsonConvert.DeserializeObject <TesiraSwitcherJoinMapAdvancedStandalone>(joinMapSerialized); } if (bridge != null) { bridge.AddJoinMap(Key, joinMap); } if (!Enabled) { return; } Debug.Console(2, this, "Tesira Switcher {0} is Enabled", Key); var s = this as IRoutingWithFeedback; s.SourceIndexFeedback.LinkInputSig(trilist.UShortInput[joinMap.Index.JoinNumber]); trilist.SetUShortSigAction(joinMap.Index.JoinNumber, u => SetSource(u)); NameFeedback.LinkInputSig(trilist.StringInput[joinMap.Label.JoinNumber]); trilist.OnlineStatusChange += (d, args) => { if (!args.DeviceOnLine) { return; } foreach (var feedback in Feedbacks) { feedback.FireUpdate(); } }; }
public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) { var joinMap = new TesiraMeterJoinMapAdvancedStandalone(joinStart); var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey); if (!string.IsNullOrEmpty(joinMapSerialized)) { joinMap = JsonConvert.DeserializeObject <TesiraMeterJoinMapAdvancedStandalone>(joinMapSerialized); } if (bridge != null) { bridge.AddJoinMap(Key, joinMap); } Debug.Console(2, this, "AddingMeterBridge {0} | Join:{1}", Key, joinMap.Label.JoinNumber); MeterFeedback.LinkInputSig(trilist.UShortInput[joinMap.Meter.JoinNumber]); NameFeedback.LinkInputSig(trilist.StringInput[joinMap.Label.JoinNumber]); SubscribedFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Subscribe.JoinNumber]); trilist.SetSigTrueAction(joinMap.Subscribe.JoinNumber, Subscribe); trilist.SetSigFalseAction(joinMap.Subscribe.JoinNumber, UnSubscribe); trilist.OnlineStatusChange += (d, args) => { if (!args.DeviceOnLine) { return; } foreach (var feedback in Feedbacks) { feedback.FireUpdate(); } }; }
public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) { var joinMap = new TesiraRoomCombinerJoinMapAdvancedStandalone(joinStart); var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey); if (!string.IsNullOrEmpty(joinMapSerialized)) { joinMap = JsonConvert.DeserializeObject <TesiraRoomCombinerJoinMapAdvancedStandalone>(joinMapSerialized); } if (bridge != null) { bridge.AddJoinMap(Key, joinMap); } Debug.Console(2, "Tesira Room Combiner {0} connect", Key); var genericChannel = this as IBasicVolumeWithFeedback; if (!Enabled) { return; } Debug.Console(2, this, "TesiraChannel {0} Is Enabled", Key); NameFeedback.LinkInputSig(trilist.StringInput[joinMap.Label.JoinNumber]); VisibleFeedback.LinkInputSig(trilist.BooleanInput[joinMap.Visible.JoinNumber]); ControlTypeFeedback.LinkInputSig(trilist.UShortInput[joinMap.Type.JoinNumber]); PermissionsFeedback.LinkInputSig(trilist.UShortInput[joinMap.Permissions.JoinNumber]); RoomGroupFeedback.LinkInputSig(trilist.UShortInput[joinMap.Group.JoinNumber]); genericChannel.MuteFeedback.LinkInputSig(trilist.BooleanInput[joinMap.MuteToggle.JoinNumber]); genericChannel.MuteFeedback.LinkInputSig(trilist.BooleanInput[joinMap.MuteOn.JoinNumber]); genericChannel.MuteFeedback.LinkComplementInputSig(trilist.BooleanInput[joinMap.MuteOff.JoinNumber]); genericChannel.VolumeLevelFeedback.LinkInputSig(trilist.UShortInput[joinMap.Volume.JoinNumber]); trilist.SetSigTrueAction(joinMap.MuteToggle.JoinNumber, genericChannel.MuteToggle); trilist.SetSigTrueAction(joinMap.MuteOn.JoinNumber, genericChannel.MuteOn); trilist.SetSigTrueAction(joinMap.MuteOff.JoinNumber, genericChannel.MuteOff); trilist.SetBoolSigAction(joinMap.VolumeUp.JoinNumber, genericChannel.VolumeUp); trilist.SetBoolSigAction(joinMap.VolumeDown.JoinNumber, genericChannel.VolumeDown); trilist.SetUShortSigAction(joinMap.Volume.JoinNumber, u => { if (u > 0) { genericChannel.SetVolume(u); } }); trilist.SetUShortSigAction(joinMap.Group.JoinNumber, u => { if (u > 0) { SetRoomGroup(u); } }); trilist.OnlineStatusChange += (d, args) => { if (!args.DeviceOnLine) { return; } foreach (var feedback in Feedbacks) { feedback.FireUpdate(); } }; }