private void AddMediaSource(object parameters) { MediaSource newMediaSource = new MediaSource { Name = NewMediaSourceName, Path = NewMediaSourcePath }; MediaSources.Add(newMediaSource); }
private void ReadSettingsFromXml() { MediaSources.Clear(); if (Settings.properties.MediaSources != null) { foreach (MediaSource ms in Settings.properties.MediaSources) { MediaSources.Add(ms); } } }
public SettingsViewModel() { // 由于默认值不是常量,因此需要动态注册 SettingService.Instance.RegisterSetting(this, nameof(PriorSource), null, MediaSources.First()); SettingService.Instance.RegisterSetting(this, nameof(Theme), null, ThemeList.First()); SettingService.Instance.RegisterSetting(this, nameof(ReminderSpanAhead), null, TimeSpan.FromMinutes(5)); SettingService.Instance.ApplySettingAttributes(this); ClearCacheFiles = new DelegateCommand(async() => { await CacheService.ClearCache(); await new MessageDialog("成功清空缓存", "成功").ShowAsync(); CacheFileSize = 0; }, () => CacheFileSize > 0); }
private IEnumerable <Song> LoadAllSongs() { try { IEnumerable <string> sourcePaths = MediaSources.ToNotNull(); IEnumerable <string> nonHiddenFiles = sourcePaths.SelectMany(LoadFilePaths).Where(IsNotHidden); return(nonHiddenFiles.Select(p => new Song(p))); } catch { return(Enumerable.Empty <Song>()); } }
private void DeleteMediaSource(object parameters) { System.Collections.IList items = (System.Collections.IList)parameters; for (int ms = 0; ms < items.Count; ms++) { try { MediaSources.Remove((MediaSource)items[ms]); } catch (InvalidCastException ex) { MessageBox.Show(String.Format("Invalid element. Exception: {0}", ex.Message)); } catch (ArgumentOutOfRangeException ex) { MessageBox.Show(ex.Message); } } }
/// <summary> /// 添加节目源 /// </summary> public void AddSource(ProgramSource program) { if (ProgramInfo == null) { IsThumbAvaliable = program.IsThumbAvaliable; ThumbImage = program.ThumbImage; ProgramInfo = program.ProgramInfo; MediaSources.Add(new SourceRecord(program.SourceStation.IdentifierName, program.MediaSource)); counter.Add(program.SourceStation.IdentifierName, 1); } else { if (ProgramInfo != null && ProgramInfo.Channel != program.ProgramInfo.Channel) { throw new InvalidOperationException("添加的节目不属于同一个频道"); } ProgramInfo |= program.ProgramInfo; var idn = program.SourceStation.IdentifierName; if (!counter.ContainsKey(idn)) { counter.Add(idn, 0); } if (!string.IsNullOrWhiteSpace(program.MediaSourceTag)) { MediaSources.Add(new SourceRecord($"{idn}-{program.MediaSourceTag}", program.MediaSource)); } else { MediaSources.Add(new SourceRecord($"{idn}", program.MediaSource)); } counter[idn]++; if (!IsThumbAvaliable && program.IsThumbAvaliable) { IsThumbAvaliable = true; ThumbImage = program.ThumbImage; } } }
public override void Activate() { const bool suppressMediaForDebugging = false; timeActivated = DateTime.Now; videoPlayIsComplete = false; dieStoppedRolling = false; if (!suppressMediaForDebugging) { string[] mediaSources = MediaSources.Split(';'); foreach (string mediaSource in mediaSources) { ShowStampedeMediaSource(mediaSource.Trim(), true); } } stampedePlaybackTimer.Start(); stampedeDieRollGuid = Guid.NewGuid().ToString(); DungeonMasterApp.SetNextStampedeRoll(CardName, UserName, DamageStr, stampedeDieRollGuid); remindDungeonMasterTimer.Start(); HubtasticBaseStation.DiceStoppedRolling += HubtasticBaseStation_DiceStoppedRolling; }
public MainWindowViewModel() { #region ChangeNumberOfCubesCommand ChangeNumberOfCubesCommand = new RelayCommand<EventArgs>(e => { Status = Strings.ChangingNumberStatus; var args = e as RoutedPropertyChangedEventArgs<double>; if (args != null) { var numToChange = Math.Abs(Convert.ToInt32(CubeViewModels.Count - args.NewValue)); if (args.NewValue < CubeViewModels.Count) // removing cubes { for (var i = 0; i < numToChange; i++) { CubeViewModels.RemoveAt(CubeViewModels.Count - 1); } NeighborCalculator.CalculateNeighbors(CubeViewModels); } else if (args.NewValue > CubeViewModels.Count) // adding cubes { AddNewCubes(numToChange); Status = ReadyStatus; SnapToGridCommand.Execute(null); if (AppRunner.IsRunning) { AppRunner.App.AssociateCubes(CubeSet); } } } Status = ReadyStatus; }); #endregion #region SnapToGridCommand SnapToGridCommand = new RelayCommand(() => { Status = Strings.SnappingStatus; for (var i = 0; i < Math.Ceiling(CubeViewModels.Count / 4.0); i++) { for (var j = 0; j < 4; j++) { if ((i * 4) + j > CubeViewModels.Count - 1) { NeighborCalculator.CalculateNeighbors(CubeViewModels); Status = ReadyStatus; return; } CubeViewModels[(i * 4) + j].PositionX = 200 * j; CubeViewModels[(i * 4) + j].PositionY = 200 * i; } } NeighborCalculator.CalculateNeighbors(CubeViewModels); Status = ReadyStatus; }); #endregion #region LoadAFileCommand LoadAFileCommand = new RelayCommand(() => { if (AppRunner.IsRunning) { AppRunner.StopExecution(); } Status = Strings.SelectAppStatus; var openFileDialog = new OpenFileDialog { Filter = "C# Library (*.dll)|*.dll|All Files (*.*)|*.*", FilterIndex = 1, Multiselect = false }; if (openFileDialog.ShowDialog() == true) { Status = Strings.LoadingStatus; using (var fileStream = openFileDialog.File.OpenRead()) { try { AppRunner.LoadApplication(fileStream); } catch (TypeLoadException e) { Status = String.Format(Strings.LoadingError + ": {0}", e.Message); } } if (AppRunner.IsLoaded) { Status = Strings.LoadingImagesStatus; if (openFileDialog.File.Directory != null) { _imageSources = new ImageSources(openFileDialog.File.Directory.FullName + "\\assets\\images"); SoundSources = new SoundSources(openFileDialog.File.Directory.FullName + "\\assets\\sounds", ActiveSounds, InactiveSounds); AppRunner.App.Images = (ImageSet) _imageSources.GetMediaSet(); foreach (var cubeViewModel in CubeViewModels) { cubeViewModel.ImageSources = _imageSources; } Status = openFileDialog.File.Name + " " + Strings.LoadingSuccess; AppRunner.StartExecution(CubeSet, Application.Current.MainWindow.Dispatcher, (SoundSet) SoundSources.GetMediaSet()); AppRunner.NotifyApplicationException += DisplayException; NotifyPropertyChanged("PauseOrResumeText"); NotifyPropertyChanged("CanPauseOrResume"); } else { Status = Strings.LoadingFail; } } } else { Status = Strings.LoaderClosed; } }); #endregion #region PauseOrResumeCommand PauseOrResumeCommand = new RelayCommand(() => { if (AppRunner.IsRunning) { AppRunner.PauseExecution(); foreach (var sound in ActiveSounds) { sound.SetResumeSpot(); InactiveSounds.Add(sound); } ActiveSounds.Clear(); } else { AppRunner.ResumeExecution(); foreach (var sound in InactiveSounds) { ActiveSounds.Add(sound); sound.RestoreResumeSpot(); } InactiveSounds.Clear(); } NotifyPropertyChanged("PauseOrResumeText"); }); #endregion AppRunner = AppRunner.GetInstance(); CubeViewModels = new ObservableCollection<CubeViewModel>(); AddNewCubes(NumInitialCubes); SnapToGridCommand.Execute(null); ActiveSounds = new ObservableCollection<SoundViewModel>(); InactiveSounds = new Collection<SoundViewModel>(); Status = ReadyStatus; }
internal CspOptions Build() { List <string> directives = new List <string>(); string connectSourcesString = ConnectSources.Build(); if (!string.IsNullOrEmpty(connectSourcesString)) { directives.Add($"connect-src {connectSourcesString}"); } string defaultResourcesString = DefaultSources.Build(); if (!string.IsNullOrEmpty(defaultResourcesString)) { directives.Add($"default-src {defaultResourcesString}"); } string fontSourcesString = FontSources.Build(); if (!string.IsNullOrEmpty(fontSourcesString)) { directives.Add($"font-src {fontSourcesString}"); } string frameSourcesString = FrameSources.Build(); if (!string.IsNullOrEmpty(frameSourcesString)) { directives.Add($"frame-src {frameSourcesString}"); } string imgSourcesString = ImgSources.Build(); if (!string.IsNullOrEmpty(imgSourcesString)) { directives.Add($"img-src {imgSourcesString}"); } string manifestSourcesString = ManifestSources.Build(); if (!string.IsNullOrEmpty(manifestSourcesString)) { directives.Add($"manifest-src {manifestSourcesString}"); } string mediaSourcesString = MediaSources.Build(); if (!string.IsNullOrEmpty(mediaSourcesString)) { directives.Add($"media-src {mediaSourcesString}"); } string objectSourcesString = ObjectSources.Build(); if (!string.IsNullOrEmpty(objectSourcesString)) { directives.Add($"object-src {objectSourcesString}"); } string prefetchSourcesString = PrefetchSources.Build(); if (!string.IsNullOrEmpty(prefetchSourcesString)) { directives.Add($"prefetch-src {prefetchSourcesString}"); } string scriptSourcesString = ScriptSources.Build(); if (!string.IsNullOrEmpty(scriptSourcesString)) { directives.Add($"script-src {scriptSourcesString}"); } string styleSourcesString = StyleSources.Build(); if (!string.IsNullOrEmpty(styleSourcesString)) { directives.Add($"style-src {styleSourcesString}"); } string webrtcSourcesString = WebRtcSources.Build(); if (!string.IsNullOrEmpty(webrtcSourcesString)) { directives.Add($"webrtc-src {webrtcSourcesString}"); } string workerSourcesString = WorkerSources.Build(); if (!string.IsNullOrEmpty(workerSourcesString)) { directives.Add($"worker-src {workerSourcesString}"); } string baseUriString = BaseUri.Build(); if (!string.IsNullOrEmpty(baseUriString)) { directives.Add($"base-uri {baseUriString}"); } string pluginTypesString = PluginTypes.Build(); if (!string.IsNullOrEmpty(pluginTypesString)) { directives.Add($"plugin-types {pluginTypesString}"); } string sanboxOptionsString = Sandbox.Build(); if (!string.IsNullOrEmpty(sanboxOptionsString)) { directives.Add($"sandbox {sanboxOptionsString}"); } string formActionString = FormAction.Build(); if (!string.IsNullOrEmpty(formActionString)) { directives.Add($"form-action {formActionString}"); } string frameAncestors = FrameAncestors.Build(); if (!string.IsNullOrEmpty(frameAncestors)) { directives.Add($"frame-ancestors {frameAncestors}"); } if (upgrateInsecureRequests) { directives.Add("upgrade-insecure-requests"); } if (blockAllMixedContent) { directives.Add("block-all-mixed-content"); } string requireSriForString = RequireSriFor.Build(); if (!string.IsNullOrEmpty(requireSriForString)) { directives.Add($"require-sri-for {requireSriForString}"); } if (reportGroup != null) { directives.Add($"report-to {reportGroup.Group}"); } CspOptions options = new CspOptions { Content = string.Join("; ", directives), ReportingGroup = reportGroup }; return(options); }