public SettingsViewModel()
        {
            InitializeCommands();

            _selectedTheme                = Domain.Settings.Instance.Theme;
            _selectedColorScheme          = _colors.FirstOrDefault(c => c.Name == Domain.Settings.Instance.AccentColor);
            _checkForUpdates              = Domain.Settings.Instance.CheckForUpdates;
            _enableNotifications          = Domain.Settings.Instance.ShowTrackNotifications;
            _enableTrayIcon               = Domain.Settings.Instance.EnableTrayIcon;
            _showBackgroundArt            = Domain.Settings.Instance.ShowBackgroundArt;
            _showBackgroundArtCompactMode = Domain.Settings.Instance.ShowBackgroundArtCompactMode;
            _blurBackground               = Domain.Settings.Instance.BlurBackground;
            _downloadArtistArt            = Domain.Settings.Instance.DownloadArtistArt;
            _downloadAlbumArt             = Domain.Settings.Instance.DownloadAlbumArt;
            _selectedEngine               = Engines.FirstOrDefault(e => e.Engine == Domain.Settings.Instance.MediaEngine);
            _enableRemotePlay             = Domain.Settings.Instance.EnableRemotePlay;
            _remotePlayPort               = Domain.Settings.Instance.RemotePlayPort.ToString();
            _useHttps = Domain.Settings.Instance.UseHttps;

            if (string.IsNullOrEmpty(Domain.Settings.Instance.RemotePlayAddress))
            {
                var addresses = NetworkHelper.GetLocalIpAddresses();
                if (addresses != null && addresses.Count > 0)
                {
                    _selectedRemotePlayAddress = addresses.First();
                }
            }
            else
            {
                _selectedRemotePlayAddress = Domain.Settings.Instance.RemotePlayAddress;
            }

            var lang = _languages.FirstOrDefault(l => l.LanguageCode == Domain.Settings.Instance.Language);

            if (lang != null)
            {
                _selectedLanguage = lang;
            }
            else
            {
                _selectedLanguage = _languages.First();
            }

            #region Hotkeys

            _hotkeys.Add(new SettingsHotkey()
            {
                Id    = "Next",
                Title = MainResources.SettingsHotkeyNext,
                Ctrl  = Domain.Settings.Instance.NextHotKeyModifier.HasFlag(ModifierKeys.Control),
                Alt   = Domain.Settings.Instance.NextHotKeyModifier.HasFlag(ModifierKeys.Alt),
                Shift = Domain.Settings.Instance.NextHotKeyModifier.HasFlag(ModifierKeys.Shift),
                Key   = Domain.Settings.Instance.NextHotKey.ToString()
            });

            _hotkeys.Add(new SettingsHotkey()
            {
                Id    = "Prev",
                Title = MainResources.SettingsHotkeyPrev,
                Ctrl  = Domain.Settings.Instance.PrevHotKeyModifier.HasFlag(ModifierKeys.Control),
                Alt   = Domain.Settings.Instance.PrevHotKeyModifier.HasFlag(ModifierKeys.Alt),
                Shift = Domain.Settings.Instance.PrevHotKeyModifier.HasFlag(ModifierKeys.Shift),
                Key   = Domain.Settings.Instance.PrevHotKey.ToString()
            });

            _hotkeys.Add(new SettingsHotkey()
            {
                Id    = "PlayPause",
                Title = MainResources.SettingsHotkeyPlayPause,
                Ctrl  = Domain.Settings.Instance.PlayPauseHotKeyModifier.HasFlag(ModifierKeys.Control),
                Alt   = Domain.Settings.Instance.PlayPauseHotKeyModifier.HasFlag(ModifierKeys.Alt),
                Shift = Domain.Settings.Instance.PlayPauseHotKeyModifier.HasFlag(ModifierKeys.Shift),
                Key   = Domain.Settings.Instance.PlayPauseHotKey.ToString()
            });

            _hotkeys.Add(new SettingsHotkey()
            {
                Id    = "FastForward",
                Title = MainResources.SettingsHotkeyFastForward,
                Ctrl  = Domain.Settings.Instance.FastForwardHotKeyModifier.HasFlag(ModifierKeys.Control),
                Alt   = Domain.Settings.Instance.FastForwardHotKeyModifier.HasFlag(ModifierKeys.Alt),
                Shift = Domain.Settings.Instance.FastForwardHotKeyModifier.HasFlag(ModifierKeys.Shift),
                Key   = Domain.Settings.Instance.FastForwardHotKey.ToString()
            });

            _hotkeys.Add(new SettingsHotkey()
            {
                Id    = "Rewind",
                Title = MainResources.SettingsHotkeyRewind,
                Ctrl  = Domain.Settings.Instance.RewindHotKeyModifier.HasFlag(ModifierKeys.Control),
                Alt   = Domain.Settings.Instance.RewindHotKeyModifier.HasFlag(ModifierKeys.Alt),
                Shift = Domain.Settings.Instance.RewindHotKeyModifier.HasFlag(ModifierKeys.Shift),
                Key   = Domain.Settings.Instance.RewindHotKey.ToString()
            });

            _hotkeys.Add(new SettingsHotkey()
            {
                Id    = "LikeDislike",
                Title = MainResources.SettingsHotkeyAddRemove,
                Ctrl  = Domain.Settings.Instance.LikeDislikeHotKeyModifier.HasFlag(ModifierKeys.Control),
                Alt   = Domain.Settings.Instance.LikeDislikeHotKeyModifier.HasFlag(ModifierKeys.Alt),
                Shift = Domain.Settings.Instance.LikeDislikeHotKeyModifier.HasFlag(ModifierKeys.Shift),
                Key   = Domain.Settings.Instance.LikeDislikeHotKey.ToString()
            });

            _hotkeys.Add(new SettingsHotkey()
            {
                Id    = "Shuffle",
                Title = MainResources.SettingsHotkeyShuffle,
                Ctrl  = Domain.Settings.Instance.ShuffleHotKeyModifier.HasFlag(ModifierKeys.Control),
                Alt   = Domain.Settings.Instance.ShuffleHotKeyModifier.HasFlag(ModifierKeys.Alt),
                Shift = Domain.Settings.Instance.ShuffleHotKeyModifier.HasFlag(ModifierKeys.Shift),
                Key   = Domain.Settings.Instance.ShuffleHotKey.ToString()
            });

            _hotkeys.Add(new SettingsHotkey()
            {
                Id    = "Repeat",
                Title = MainResources.SettingsHotkeyRepeat,
                Ctrl  = Domain.Settings.Instance.RepeatHotKeyModifier.HasFlag(ModifierKeys.Control),
                Alt   = Domain.Settings.Instance.RepeatHotKeyModifier.HasFlag(ModifierKeys.Alt),
                Shift = Domain.Settings.Instance.RepeatHotKeyModifier.HasFlag(ModifierKeys.Shift),
                Key   = Domain.Settings.Instance.RepeatHotKey.ToString()
            });

            _hotkeys.Add(new SettingsHotkey()
            {
                Id    = "IncreaseVolume",
                Title = MainResources.SettingsHotkeyIncreaseVolume,
                Ctrl  = Domain.Settings.Instance.IncreaseVolumeHotKeyModifier.HasFlag(ModifierKeys.Control),
                Alt   = Domain.Settings.Instance.IncreaseVolumeHotKeyModifier.HasFlag(ModifierKeys.Alt),
                Shift = Domain.Settings.Instance.IncreaseVolumeHotKeyModifier.HasFlag(ModifierKeys.Shift),
                Key   = Domain.Settings.Instance.IncreaseVolumeHotKey.ToString()
            });

            _hotkeys.Add(new SettingsHotkey()
            {
                Id    = "DecreaseVolume",
                Title = MainResources.SettingsHotkeyDecreaseVolume,
                Ctrl  = Domain.Settings.Instance.DecreaseVolumeHotKeyModifier.HasFlag(ModifierKeys.Control),
                Alt   = Domain.Settings.Instance.DecreaseVolumeHotKeyModifier.HasFlag(ModifierKeys.Alt),
                Shift = Domain.Settings.Instance.DecreaseVolumeHotKeyModifier.HasFlag(ModifierKeys.Shift),
                Key   = Domain.Settings.Instance.DecreaseVolumeHotKey.ToString()
            });

            _hotkeys.Add(new SettingsHotkey()
            {
                Id    = "ShowHide",
                Title = MainResources.SettingsHotkeyShowHide,
                Ctrl  = Domain.Settings.Instance.ShowHideHotKeyModifier.HasFlag(ModifierKeys.Control),
                Alt   = Domain.Settings.Instance.ShowHideHotKeyModifier.HasFlag(ModifierKeys.Alt),
                Shift = Domain.Settings.Instance.ShowHideHotKeyModifier.HasFlag(ModifierKeys.Shift),
                Key   = Domain.Settings.Instance.ShowHideHotKey.ToString()
            });

            #endregion
        }
Exemplo n.º 2
0
 public static void ApplySettings(object instance)
 => SettingsEngine.ApplySettings(instance);