/// <summary>
        /// Applies the specified settings.
        /// </summary>
        /// <param name="uv">The Ultraviolet context.</param>
        public void Apply(UltravioletContext uv)
        {
            Contract.Require(uv, nameof(uv));

            var audio = uv.GetAudio();

            audio.AudioMasterVolume        = AudioMasterVolume;
            audio.AudioMuted               = AudioMuted;
            audio.SongsMasterVolume        = SongsMasterVolume;
            audio.SongsMuted               = SongsMuted;
            audio.SoundEffectsMasterVolume = SoundEffectsMasterVolume;
            audio.SoundEffectsMuted        = SoundEffectsMuted;
        }
        /// <summary>
        /// Applies the specified settings.
        /// </summary>
        /// <param name="uv">The Ultraviolet context.</param>
        public void Apply(UltravioletContext uv)
        {
            Contract.Require(uv, nameof(uv));

            var audio = uv.GetAudio();

            audio.PlaybackDevice           = String.IsNullOrEmpty(PlaybackDeviceName) ? null : audio.FindAudioDeviceByName(PlaybackDeviceName);
            audio.AudioMasterVolume        = AudioMasterVolume;
            audio.AudioMuted               = AudioMuted;
            audio.SongsMasterVolume        = SongsMasterVolume;
            audio.SongsMuted               = SongsMuted;
            audio.SoundEffectsMasterVolume = SoundEffectsMasterVolume;
            audio.SoundEffectsMuted        = SoundEffectsMuted;
        }
        /// <summary>
        /// Creates a set of audio settings from the current application state.
        /// </summary>
        /// <param name="uv">The Ultraviolet context.</param>
        /// <returns>The audio settings which were retrieved.</returns>
        public static UltravioletApplicationAudioSettings FromCurrentSettings(UltravioletContext uv)
        {
            Contract.Require(uv, nameof(uv));

            var audio    = uv.GetAudio();
            var settings = new UltravioletApplicationAudioSettings();

            settings.AudioMasterVolume        = audio.AudioMasterVolume;
            settings.AudioMuted               = audio.AudioMuted;
            settings.SongsMasterVolume        = audio.SongsMasterVolume;
            settings.SongsMuted               = audio.SongsMuted;
            settings.SoundEffectsMasterVolume = audio.SoundEffectsMasterVolume;
            settings.SoundEffectsMuted        = audio.SoundEffectsMuted;

            return(settings);
        }