private void FinalizeButton_Tap(object sender, System.Windows.Input.GestureEventArgs e) { timer.Change(System.Threading.Timeout.Infinite, System.Threading.Timeout.Infinite); recTimer.Change(System.Threading.Timeout.Infinite, System.Threading.Timeout.Infinite); micTimer.Change(System.Threading.Timeout.Infinite, System.Threading.Timeout.Infinite); PlayAnimation.Stop(); viewModel.AudioMan.StopClick(); viewModel.AudioMan.StopAll(); timerRunning = false; VisualStateManager.GoToState(this, "Stopped", false); //TODO: Change this to ViewModel State MessageBoxResult sure = MessageBox.Show("Are you sure you want to finalize? This will mix your tracks down and delete the individual files.", "Finalize?", MessageBoxButton.OKCancel); if (sure == MessageBoxResult.OK) { //Mix-down and deletion code viewModel.AudioMan.FinalizeBank(viewModel.SelectedBank.bankID); viewModel.SelectedBank.Finalized = true; timer.Dispose(); recTimer.Dispose(); micTimer.Dispose(); OffsetTextBlock.Text = "0".ToString(); VisualStateManager.GoToState(this, "Finalized", true); byte[] trackData; int trackLength = viewModel.AudioMan.GetBankAudioData(viewModel.SelectedBank.bankID, out trackData); viewModel.SelectedBank.finalTrack = trackData; viewModel.SelectedBank.Size = trackLength; viewModel.SelectedBank.Pitch = viewModel.AudioMan.GetPitchSemitones(viewModel.SelectedBank.bankID); viewModel.SelectedBank.Offset = viewModel.AudioMan.GetBankOffsetMS(viewModel.SelectedBank.bankID); viewModel.SelectedBank.Volume = viewModel.AudioMan.GetBankVolumeDB(viewModel.SelectedBank.bankID); } }
private void stopPlayButton_Tap(object sender, System.Windows.Input.GestureEventArgs e) //TODO: Merge with finalized stop/start button { if (timerRunning) { timer.Change(System.Threading.Timeout.Infinite, System.Threading.Timeout.Infinite); recTimer.Change(System.Threading.Timeout.Infinite, System.Threading.Timeout.Infinite); micTimer.Change(System.Threading.Timeout.Infinite, System.Threading.Timeout.Infinite); PlayAnimation.Stop(); viewModel.AudioMan.StopClick(); viewModel.AudioMan.StopAll(); timerRunning = false; if (recording) { if (!starting) { viewModel.AudioMan.RecordStop(); } recording = false; starting = false; } //stopPlayImage.Source = "/Assets/play.png"; //TODO: Change background of button } else { timer.Change(0, 4000); timerRunning = true; //stopPlayImage.Source = "/Assets/stop.png"; } }
private void Progress_Go(object state) { System.Diagnostics.Debug.WriteLine("Progress_go ticked, there are " + viewModel.SelectedBank.tracks.Count + " tracks in bank " + viewModel.SelectedBank.bankID + "."); Dispatcher.BeginInvoke(delegate { foreach (Track t in viewModel.SelectedBank.tracks) { t.Finalized = true; } PlayAnimation.Stop(); progressBar.Value = 0; PlayAnimation.Begin(); viewModel.AudioMan.StopAll(); viewModel.AudioMan.PlayBank(viewModel.SelectedBank.bankID); //TODO: This should be PlayMixedDownBank? viewModel.AudioMan.SetClickVolume(MetronomeSlider.IsChecked == true ? 1 : 0); }); micTimer.Change(3950, System.Threading.Timeout.Infinite); viewModel.AudioMan.PlayClick(); }
private void LongListSelector_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (((Track)loopList.SelectedItem) != null) { if (e.RemovedItems[0] != null) { ((Track)e.RemovedItems[0]).IsSelected = false; } VisualStateManager.GoToState(this, "TrackSelected", true); PlayAnimation.Stop(); MetronomeSlider.IsChecked = false; viewModel.AudioMan.StopAll(); viewModel.AudioMan.StopClick(); viewModel.SelectedTrack = ((Track)loopList.SelectedItem); viewModel.SelectedTrack.IsSelected = true; timer.Change(System.Threading.Timeout.Infinite, System.Threading.Timeout.Infinite); recTimer.Change(System.Threading.Timeout.Infinite, System.Threading.Timeout.Infinite); micTimer.Change(System.Threading.Timeout.Infinite, System.Threading.Timeout.Infinite); timerRunning = false; VolumeSlider.Value = viewModel.SelectedTrack.Volume; OffsetTextBlock.Text = viewModel.SelectedTrack.Offset.ToString(); } }