void QSysLevelControl_ValueChanged(QSysControl control) { if (VolumeChanged != null) { VolumeChanged(this, new VolumeChangeEventArgs(VolumeLevelChangeEventType.LevelChanged)); } }
public QSysControlPair(string name, QSysControl levelControl, QSysControl muteControl) { _Name = name; if (levelControl.SupportsVolumeLevel) { QSysLevelControl = levelControl; QSysLevelControl.ValueChanged += new QSysControlChangeEventHandler(QSysLevelControl_ValueChanged); } else { ErrorLog.Error("QSysControlPair Constructor - {0} does not support level", levelControl.Name); } if (muteControl.SupportsVolumeMute) { QSysMuteControl = muteControl; QSysMuteControl.ValueChanged += new QSysControlChangeEventHandler(QSysMuteControl_ValueChanged); } else { ErrorLog.Error("QSysControlPair Constructor - {0} does not support mute", muteControl.Name); } }
void OnValueChange(QSysControl control) { if (StatusChanged != null) { if (control == RingingLEDControl) { StatusChanged(this, new QSysSoftPhoneStatusChangeEventArgs(QSysSoftPhoneStatusChangeEventID.IsRingingStatusChanged)); if (this.IsRinging) { CallStatus = QSysPhoneCallState.Ringing; } } if (control == DialStringControl) { StatusChanged(this, new QSysSoftPhoneStatusChangeEventArgs(QSysSoftPhoneStatusChangeEventID.DialStringChanged)); } if (control == DNDControl) { StatusChanged(this, new QSysSoftPhoneStatusChangeEventArgs(QSysSoftPhoneStatusChangeEventID.DNDStatusChanged)); } if (control == OffHookLEDControl) { StatusChanged(this, new QSysSoftPhoneStatusChangeEventArgs(QSysSoftPhoneStatusChangeEventID.OffHookStatusChanged)); } } if (control == ProgressControl) { if (StatusChanged != null) { StatusChanged(this, new QSysSoftPhoneStatusChangeEventArgs(QSysSoftPhoneStatusChangeEventID.ProgressStatusChanged)); } if (control.StringValue == "Disconnected") { this.Connected = false; this.CallDisplayNumber = string.Empty; this.CallDisplayName = string.Empty; this.IncomingCall = false; CallStatus = QSysPhoneCallState.Disconnected; } if (control.StringValue.StartsWith("Dialing")) { this.CallDisplayNumber = control.StringValue.Split(' ').Last(); this.CallDisplayName = this.CallDisplayNumber; CallStatus = QSysPhoneCallState.Dialing; } else if (control.StringValue.StartsWith("Call in progress") || control.StringValue.StartsWith("Connected")) { this.CallDisplayName = control.StringValue.Split(' ').Last(); this.Connected = true; this.IncomingCall = false; CallStatus = QSysPhoneCallState.Connected; } else if (control.StringValue.StartsWith("Incoming call from: ")) { this.CallDisplayName = control.StringValue.Remove(0, 20); this.IncomingCall = true; CallStatus = QSysPhoneCallState.Incoming; } else if (control.StringValue.StartsWith("Incoming Call - ")) { Regex r = new Regex(@"Incoming Call - (\S+) \(([\s\S]*)\)"); Match details = r.Match(control.StringValue); this.CallDisplayNumber = details.Groups[1].Value; this.CallDisplayName = details.Groups[2].Value; this.IncomingCall = true; CallStatus = QSysPhoneCallState.Incoming; } else if (control.StringValue == "Idle") { CallStatus = QSysPhoneCallState.Idle; } } }