async Task <SequencingSampleProvider> RenderPartAsync(UVoicePart part, UProject project, string cacheDir) { var singer = project.Tracks[part.TrackNo].Singer; if (singer == null || !singer.Loaded) { return(null); } var tasks = new List <Task <RenderItem> >(); var progress = new Progress(part.Notes.Sum(note => note.Phonemes.Count)); progress.Clear(); foreach (var note in part.Notes) { foreach (var phoneme in note.Phonemes) { if (string.IsNullOrEmpty(phoneme.Oto.File)) { Log.Warning($"Cannot find phoneme in note {note.Lyric}"); continue; } var item = new RenderItem(phoneme, part, project); item.progress = progress; tasks.Add(Task <RenderItem> .Factory.StartNew(ResamplePhonemeAsync, item, cancellationTokenSource.Token)); } } await Task.WhenAll(tasks.ToArray()); progress.Clear(); return(new SequencingSampleProvider(tasks.Select(task => new RenderItemSampleProvider(task.Result)))); }
public void OnSelfClose(Mobile m) { if (Progress != null) { Progress.Clear(); } }
public void Serialize() { //CSharpCodeProvider.cre CSharpCodeProvider prov = new CSharpCodeProvider(new Dictionary <string, string>() { { "CompilerVersion", "v4.0" } }); CompilerParameters cp = new CompilerParameters(new [] { "mscorlib.dll", "System.dll", "System.IO.dll", "System.xml.dll", "System.Xml.Serializer.dll", "System.Runtime.dll", "System.ObjectModel.dll", "System.Collections.dll", "FileExplorer3.dll", "FileExplorer3.IO.dll", "FileExplorer3.WPF.dll", "Caliburn.Micro.dll", "Caliburn.Micro.Platform.dll" }); cp.GenerateExecutable = false; cp.GenerateInMemory = true; Progress.Clear(); CompilerResults cr = prov.CompileAssemblyFromSource(cp, Script); if (cr.Errors.HasErrors) { Progress.Add("Error when serializing:"); cr.Errors.Cast <CompilerError>().ToList().ForEach(err => Progress.Add(String.Format("{0} at line {1} column {2} ", err.ErrorText, err.Line, err.Column))); } }
public Tuple <MasterAdapter, List <Fader>, CancellationTokenSource, Task> RenderProject(int startTick) { var source = new CancellationTokenSource(); var items = new List <RenderItem>(); var faders = new List <Fader>(); foreach (var track in project.tracks) { var trackItems = PrepareTrack(track, project, startTick).ToArray(); var sources = trackItems.Select(item => { var waveSource = new WaveSource(item.PosMs, item.DurMs, item.Envelope, item.SkipOver); item.OnComplete = data => waveSource.SetWaveData(data); return(waveSource); }).ToList(); sources.AddRange(project.parts .Where(part => part is UWavePart && part.trackNo == track.TrackNo) .Select(part => part as UWavePart) .Select(part => { var waveSource = new WaveSource( project.TickToMillisecond(part.position), project.TickToMillisecond(part.Duration), null, part.skipMs); if (part.Samples != null) { waveSource.SetSamples(part.Samples); } return(waveSource); })); var trackMix = new WaveMix(sources); items.AddRange(trackItems); var fader = new Fader(trackMix); fader.Scale = PlaybackManager.DecibelToVolume(track.Volume); faders.Add(fader); } items = items.OrderBy(item => item.PosMs).ToList(); int threads = Util.Preferences.Default.PrerenderThreads; var progress = new Progress(items.Count); var task = Task.Run(() => { var progress = new Progress(items.Count); Parallel.ForEach(source: items, parallelOptions: new ParallelOptions() { MaxDegreeOfParallelism = threads }, body: item => { if (source.Token.IsCancellationRequested) { return; } item.progress = progress; Resample(item); }); ReleaseSourceTemp(); progress.Clear(); }); var master = new MasterAdapter(new WaveMix(faders)); master.SetPosition((int)(project.TickToMillisecond(startTick) * 44100 / 1000)); return(Tuple.Create(master, faders, source, task)); }
public void Update(IEnumerable <LevelProgressDto> collection) { Progress.Clear(); foreach (var model in collection) { Progress.Add(model); } }
public void Restart() { ProgressHelper.STATUS status = Progress.GetStatus(); if (status == ProgressHelper.STATUS.CANCLE || status == ProgressHelper.STATUS.ERROR) { Progress.Clear(); Start(); } }
/// <summary> /// Generates a new world using the current settings, /// then starts the first level. /// </summary> public void GenerateWorld() { if (IsInGame) { StopCoroutine(mapGameCoroutine); } mapGameCoroutine = null; Map.Clear(); Progress.Clear(); GenerateMap(true); if (OnStart != null) { OnStart(); } }
public List <WaveMix> RenderTracks() { List <WaveMix> result = new List <WaveMix>(); foreach (var track in project.tracks) { var items = PrepareTrack(track, project, 0); var progress = new Progress(items.Count()); var mix = new WaveMix(items.Select(item => { var waveSource = new WaveSource(item.PosMs, item.DurMs, item.Envelope, item.SkipOver); item.progress = progress; item.OnComplete = data => waveSource.SetWaveData(data); Resample(item); return(waveSource); })); progress.Clear(); result.Add(mix); } return(result); }
/// <summary> /// Quits the current world without saving and goes back to the main menu. /// </summary> public void QuitWorld() { if (IsInGame) { StopCoroutine(mapGameCoroutine); mapGameCoroutine = null; } if (OnEnd != null) { OnEnd(); } Map.Clear(); Progress.Clear(); Settings = new WorldSettings(); MenuController.Instance.Activate(MenuController.Instance.Menu_Main); }
public CancellationTokenSource PreRenderProject() { int threads = Util.Preferences.Default.PrerenderThreads; var source = new CancellationTokenSource(); Task.Run(() => { try { Thread.Sleep(200); if (source.Token.IsCancellationRequested) { return; } RenderItem[] items; lock (project) { items = PrepareProject(project, startTick) .OrderBy(item => item.PosMs) .ToArray(); } var progress = new Progress(items.Length); Parallel.ForEach(source: items, parallelOptions: new ParallelOptions() { MaxDegreeOfParallelism = threads }, body: item => { if (source.Token.IsCancellationRequested) { return; } item.progress = progress; Resample(item); }); ReleaseSourceTemp(); progress.Clear(); } catch (Exception e) { if (!source.IsCancellationRequested) { Log.Error(e, "Failed to pre-render."); } } }); return(source); }
void IGlobalListener.ClearProgress() { Progress.Clear(); }
public void Reset() { Progress.Clear(); }