Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
 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";
     }
 }
Beispiel #3
0
        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();
        }
Beispiel #4
0
 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();
     }
 }