/// <summary>
        ///     Initializes a new instance of the <see cref="ChannelPointViewModel" /> class.
        /// </summary>
        public ChannelPointViewModel()
        {
            this.channelPointSounds = new ObservableCollection <ChannelPointSoundWrapper>();
            this.OutputDevice       = Configuration.Instance.ChannelPointSoundRedemptionOutputChannel;
            this.MasterVolume       = Configuration.Instance.ChannelPointSoundRedemptionsMasterVolume ?? 50;

            // Create the list of Output devices.
            var outputDevices = NAudioUtilities.GetTotalOutputDevices();

            this.OutputDevices = new ObservableCollection <string>();
            this.OutputDevices.AddRange(Enumerable.Range(-1, outputDevices + 1).Select(n => NAudioUtilities.GetOutputDevice(n).ProductName));

            this.RefreshChannelPointRewards();
            this.PropertyChanged += this.PropertyChangedHandler;
        }
        /// <summary>
        ///     Initializes a new instance of the <see cref="TwitchChatConfigViewModel" /> class.
        /// </summary>
        public TwitchChatConfigViewModel()
        {
            this.Config                     = Configuration.Instance;
            this.isConnectedTimer           = new Timer(500);
            this.isConnectedTimer.AutoReset = true;
            this.isConnectedTimer.Elapsed  += this.IsConnectedTimer_OnElapsed;

            // Create the list of TTS voices.
            var speech = new SpeechSynthesizer();

            this.TtsVoices = new ObservableCollection <string>();
            this.TtsVoices.AddRange(speech.GetInstalledVoices().Select(v => v.VoiceInfo.Name));
            speech.Dispose();

            // Create the list of Output devices.
            var outputDevices = NAudioUtilities.GetTotalOutputDevices();

            this.OutputDevices = new ObservableCollection <string>();
            this.OutputDevices.AddRange(Enumerable.Range(-1, outputDevices + 1).Select(n => NAudioUtilities.GetOutputDevice(n).ProductName));

            // Setup our listeners.
            this.PropertyChanged += this.OnPropertyChanged;
            this.isConnectedTimer.Start();
        }