internal static void UpdateSettings()
        {
            var dynamicDevices = new List <DeviceDynamicValueSetting>
            {
                new DeviceDynamicValueSetting {
                    Key = string.Empty, ValueString = "Default Device", Name = string.Empty
                },

                // Removed while we have a simple one-channel output scheme.
                //new DeviceDynamicValueSetting
                //{
                //    Key = NarrationSettings.None,
                //    ValueString = "None",
                //    Name = NarrationSettings.None
                //}
            };

            foreach (var device in AudioDeviceEnumerator.GetDevices())
            {
                dynamicDevices.Add(new DeviceDynamicValueSetting {
                    Key = device, ValueString = device, Name = device
                });
            }
            AppSettings.Instance.PublicNarration.DeviceNudger.Values  = dynamicDevices.ToArray();
            AppSettings.Instance.PrivateNarration.DeviceNudger.Values = dynamicDevices.ToArray();
        }
        internal static int GetMysteryIndex(INarrationSettings settings)
        {
            int mysteryIndex;

            switch (settings.Device)
            {
            case "":
                mysteryIndex = AudioProvider.Default;
                break;

            case "None":
                mysteryIndex = AudioProvider.Null;
                break;

            default:
                var index = AudioDeviceEnumerator.GetDeviceIndex(settings.Device);
                mysteryIndex = 0 <= index ? index : AudioProvider.Default;
                break;
            }

            return(mysteryIndex);
        }