iSpyApplication.Controls.VolumeLevel.Disable C# (CSharp) Method

Disable() public method

public Disable ( bool stopSource = true ) : void
stopSource bool
return void
        public void Disable(bool stopSource = true)
        {
            if (_disabling)
                return;
            if (InvokeRequired)
            {
                Invoke(new Delegates.DisableDelegate(Disable), stopSource);
                return;
            }

            lock (_lockobject)
            {
                if (!IsEnabled)
                    return;
                IsEnabled = false;
            }
            _disabling = true;

            try
            {
                IsReconnect = false;
                RecordSwitch(false);

                if (AudioSource != null)
                {
                    AudioSource.AudioFinished -= AudioDeviceAudioFinished;
                    AudioSource.DataAvailable -= AudioDeviceDataAvailable;
                    AudioSource.LevelChanged -= AudioDeviceLevelChanged;

                    if (!IsClone)
                    {
                        if (stopSource)
                        {
                            if (!(AudioSource is IVideoSource))
                            {
                                //lock (_lockobject)
                                //{
                                AudioSource.Stop();
                                //allow operations to complete in other threads
                                Thread.Sleep(250);
                                //}
                            }
                        }
                    }
                    else
                    {
                        int imic;
                        if (Int32.TryParse(Micobject.settings.sourcename, out imic))
                        {

                                var vl = MainForm.InstanceReference.GetVolumeLevel(imic);
                                if (vl != null)
                                {
                                    vl.AudioDeviceDisabled -= MicrophoneDisabled;
                                    vl.AudioDeviceEnabled -= MicrophoneEnabled;
                                    vl.AudioDeviceReConnected -= MicrophoneReconnected;
                                }
                        }
                    }

                }

                IsEnabled = false;
                IsReconnect = false;

                StopSaving();

                ClearBuffer();

                Levels = null;
                SoundDetected = false;
                ForcedRecording = false;
                Alerted = false;
                FlashCounter = DateTime.MinValue;
                Listening = false;
                ReconnectCount = 0;
                AudioSourceErrorState = false;
                _soundRecentlyDetected = false;

                UpdateFloorplans(false);
                Micobject.settings.active = false;

                MainForm.NeedsSync = true;
                _errorTime = _reconnectTime = DateTime.MinValue;
                BackColor = MainForm.BackgroundColor;
                if (!ShuttingDown)
                    _requestRefresh = true;

                AudioDeviceDisabled?.Invoke(this, EventArgs.Empty);
            }
            catch (Exception ex)
            {
                ErrorHandler?.Invoke(ex.Message);
            }
            _disabling = false;
        }

Usage Example

示例#1
0
        public void RemoveMicrophone(VolumeLevel volumeControl, bool confirm)
        {
            if (confirm &&
                MessageBox.Show(LocRm.GetString("AreYouSure"), LocRm.GetString("Confirm"), MessageBoxButtons.OKCancel,
                                MessageBoxIcon.Warning) == DialogResult.Cancel)
                return;

            var dr = DialogResult.No;
            if (confirm)
            {
                dr = MessageBox.Show(LocRm.GetString("DeleteAllAssociatedMedia"), LocRm.GetString("Confirm"),
                    MessageBoxButtons.YesNoCancel,
                    MessageBoxIcon.Question);
            }
            if (dr == DialogResult.Cancel)
                return;

            string folder = volumeControl.Dir.Entry + "audio\\" + volumeControl.Micobject.directory + "\\";

            volumeControl.ShuttingDown = true;
            volumeControl.MouseDown -= VolumeControlMouseDown;
            volumeControl.MouseUp -= VolumeControlMouseUp;
            volumeControl.MouseMove -= VolumeControlMouseMove;
            volumeControl.DoubleClick -= VolumeControlDoubleClick;
            volumeControl.RemoteCommand -= VolumeControlRemoteCommand;
            volumeControl.Notification -= ControlNotification;
            if (volumeControl.Recording)
                volumeControl.RecordSwitch(false);

            volumeControl.Disable();
            volumeControl.SaveFileList();

            if (InvokeRequired)
                Invoke(new Delegates.MicrophoneCommandDelegate(RemoveMicrophonePanel), volumeControl);
            else
                RemoveMicrophonePanel(volumeControl);

            if (dr == DialogResult.Yes)
            {
                try
                {
                    Directory.Delete(folder, true);
                }
                catch (Exception ex)
                {
                    LogExceptionToFile(ex);
                }
            }
        }
All Usage Examples Of iSpyApplication.Controls.VolumeLevel::Disable