Exemplo n.º 1
0
 void QSysLevelControl_ValueChanged(QSysControl control)
 {
     if (VolumeChanged != null)
     {
         VolumeChanged(this, new VolumeChangeEventArgs(VolumeLevelChangeEventType.LevelChanged));
     }
 }
Exemplo n.º 2
0
 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);
     }
 }
Exemplo n.º 3
0
        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;
                }
            }
        }