/// <summary> /// Initializes this attribute based on config values and generates subscriptions commands and adds commands to the parent's queue. /// </summary> public void Initialize(string key, QscDspLevelControlBlockConfig config) { Key = string.Format("{0}--{1}", Parent.Key, key); Enabled = true; DeviceManager.AddDevice(this); if (config.IsMic) { Type = ePdtLevelTypes.microphone; } else { Type = ePdtLevelTypes.speaker; } Debug.Console(2, this, "Adding LevelControl '{0}'", Key); this.IsSubscribed = false; MuteFeedback = new BoolFeedback(() => _IsMuted); VolumeLevelFeedback = new IntFeedback(() => _VolumeLevel); VolumeUpRepeatTimer = new CTimer(VolumeUpRepeat, Timeout.Infinite); VolumeDownRepeatTimer = new CTimer(VolumeDownRepeat, Timeout.Infinite); LevelCustomName = config.Label; HasMute = config.HasMute; HasLevel = config.HasLevel; }
private void Initialize(TesiraFaderControlBlockConfig config) { if (config.Enabled) { DeviceManager.AddDevice(this); } _type = config.IsMic ? ePdtLevelTypes.Microphone : ePdtLevelTypes.Speaker; Debug.Console(2, this, "Adding LevelControl '{0}'", Key); IsSubscribed = false; HasMute = config.HasMute; HasLevel = config.HasLevel; UseAbsoluteValue = config.UseAbsoluteValue; Enabled = config.Enabled; Permissions = config.Permissions; IncrementAmount = config.IncrementAmount; AutomaticUnmuteOnVolumeUp = config.UnmuteOnVolChange; _volumeUpRepeatTimer = new CTimer(VolumeUpRepeat, Timeout.Infinite); _volumeDownRepeatTimer = new CTimer(VolumeDownRepeat, Timeout.Infinite); _volumeUpRepeatDelayTimer = new CTimer(VolumeUpRepeatDelay, Timeout.Infinite); _volumeDownRepeatDelayTimer = new CTimer(VolumeDownRepeatDelay, Timeout.Infinite); if (HasMute && HasLevel) { ControlType = 0; Debug.Console(2, this, "{0} has BOTH Mute and Level", Key); } else if (!HasMute && HasLevel) { ControlType = 1; Debug.Console(2, this, "{0} has Level ONLY", Key); } else if (HasMute && !HasLevel) { Debug.Console(2, this, "{0} has MUTE ONLY", Key); ControlType = 2; } MuteFeedback = new BoolFeedback(Key + "-MuteFeedback", () => IsMuted); VisibleFeedback = new BoolFeedback(Key + "-VisibleFeedback", () => Enabled); VolumeLevelFeedback = new IntFeedback(Key + "-LevelFeedback", () => VolumeLevel); TypeFeedback = new IntFeedback(Key + "-TypeFeedback", () => (ushort)_type); ControlTypeFeedback = new IntFeedback(Key + "-ControlTypeFeedback", () => ControlType); PermissionsFeedback = new IntFeedback(Key + "-PermissionsFeedback", () => Permissions); Feedbacks.Add(MuteFeedback); Feedbacks.Add(VolumeLevelFeedback); Feedbacks.Add(NameFeedback); Feedbacks.Add(VisibleFeedback); Feedbacks.Add(TypeFeedback); Feedbacks.Add(ControlTypeFeedback); Feedbacks.Add(PermissionsFeedback); Parent.Feedbacks.AddRange(Feedbacks); }