public TrackStepViewModel AddTrack(SamplePlayer samplePlayer) { var track = new Track(samplePlayer); Tracks.Add(track); var trackVm = new TrackStepViewModel(track); try { if (CurrentTrackViewModel != null) { var index = TrackViewModels.IndexOf(CurrentTrackViewModel); if (index != -1) { TrackViewModels.Insert(index + 1, trackVm); return(trackVm); } } } catch (ArgumentOutOfRangeException) { } TrackViewModels.Add(trackVm); return(trackVm); }
private void ReadFromJson(string jsonData) { var saveService = new PersistencyService(); saveService.CreateDataFromJsonProject(AudioDefines.XAudio, AudioDefines.WaveFormat, AudioDefines.VoicePool, jsonData); MasterPan = saveService.MasterTrackPan; MasterVolume = saveService.MasterTrackVolume; MasterBpm = saveService.MasterTrackBpm; Tracks = new ConcurrentBag <Track>(saveService.Tracks); TrackViewModels.Clear(); foreach (var track in Tracks) { TrackViewModels.Add(new TrackStepViewModel(track)); } if (TrackViewModels.Any()) { CurrentTrackViewModel = TrackViewModels.First(); } }