Example #1
0
        public void Stop()
        {
            if (AudioMeter == null)
            {
                Logger.Log("Attempted to Stop an already stopped AudioMeterEvent");
                return;
            }
            AudioMeter      audioMeter;
            KeepaliveTimers keepaliveTimers;

            lock (Mutex)
            {
                audioMeter = AudioMeter;
                AudioMeter = null;

                Logger.Log("Stopped audio meter monitoring");
                if (CurrentKeepaliveTimers != null)
                {
                    EventQueue.EnqueueEvent(() => { StoppedSounding(this, System.EventArgs.Empty); });
                }

                keepaliveTimers        = CurrentKeepaliveTimers;
                CurrentKeepaliveTimers = null;
            }
            audioMeter.Dispose();
            if (keepaliveTimers != null)
            {
                keepaliveTimers.Dispose();
            }
        }
Example #2
0
        public void Start()
        {
            if (AudioMeter != null)
            {
                Logger.Log("Attempted to Start an already started AudioMeterEvent");
                return;
            }
            Logger.Log("Starting audio meter monitoring");
            var audioMeter = new AudioMeter(IAudioMeterInformation, MinimumLevel, MinimumDuration, Period);

            lock (Mutex)
            {
                AudioMeter = audioMeter;
            }
            AudioMeter.SoundDetected += AudioMeter_SoundDetected;
        }
Example #3
0
        /// <summary>
        /// Load any general settings from the programs settings file
        /// e.g. the write directory
        /// </summary>
        public void LoadSettings()
        {
            // Write Directory
            this._writeDir = Properties.Settings.Default.writeDir;
            this.previousRecordings.writeDir = this._writeDir;
            CheckWriteDirectory();

            // Capture Device
            var inputDeviceGUID = Properties.Settings.Default.inputDevice;

            try
            {
                _captureDevice = new CaptureDevice(inputDeviceGUID);
                _audioMeter    = AudioMeter.FromDevice(_captureDevice.Device);
                _recorder?.Dispose(); // Get rid of the old recorder.
                _recorder = new Recorder(_captureDevice.Device, _captureDevice.CaptureMode);
                _recorder.NotificationStream.SingleBlockRead += UpdateMainVisualization;
            }
            catch (Exception) {}
        }