using QuikDawEditor.EditingClasses; using QuikDawEditor.Properties; using QuikDawEditor.Undo; using System; using System.Windows; using System.Windows.Controls; using System.Windows.Input; using static QuikDawEditor.EDITING.StaticProperties; namespace QuikDawEditor; public partial class MasterTrackControl : UserControl { public MasterTrackControl() { InitializeComponent(); } bool MouseDownOnVolSlider = false; private float lastMasterTrackVolumeValue = 1; private void VolSlider_PreviewMouseDown(object sender, MouseButtonEventArgs e) { MouseDownOnVolSlider = true; lastMasterTrackVolumeValue = editingProject.MasterTrack.Volume; } private void VolSlider_PreviewMouseUp(object sender, MouseButtonEventArgs e) { MouseDownOnVolSlider = false; undoActions.Add(new MasterVolumeChangeUndo(lastMasterTrackVolumeValue)); } private void VolSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs e) { if (MouseDownOnVolSlider) editingProject.NeedsSaving = true; } private MasterTrack thisMT { get { return (MasterTrack)this.DataContext; } } private void ToggleTrackScaleBut_Click(object sender, RoutedEventArgs e) { thisMT.TrackYScale = thisMT.TrackYScale == 1 ? 0.7 : 1; editingProject.NeedsSaving = true; } private void VolSlider_MouseDoubleClick(object sender, MouseButtonEventArgs e) { VolSlider.Value = 0; } public MasterTrackFXWindow mtfxWindow; private void fxBut_Click(object sender, RoutedEventArgs e) { if (mtfxWindow != null && mtfxWindow.IsVisible) { mtfxWindow.Activate(); return; } mtfxWindow = new MasterTrackFXWindow() { Owner = Application.Current.MainWindow }; mtfxWindow.DataContext = thisMT; mtfxWindow.SelectedVstsLV.ItemsSource = thisMT.MasterTrackEffectVsts; mtfxWindow.Left = thisMT.FxWinLocation.int1; mtfxWindow.Top = thisMT.FxWinLocation.int2; mtfxWindow.Show(); //foreach (ActiveVstPlugin vstplugin in thisMT.MasterTrackEffectVsts) // if (vstplugin.IsEditorOpen) // switch (vstplugin.myEditorFrame == null) // { // case true: // vstplugin.OpenEditor(mtfxWindow); // break; // case false: // if (!vstplugin.myEditorFrame.Visible) // vstplugin.OpenEditor(mtfxWindow); // break; // } } private void ToggleMetronomeBut_Click(object sender, RoutedEventArgs e) { thisMT.MetronomeOn = !thisMT.MetronomeOn; } private void LeadInMinusBut_Click(object sender, RoutedEventArgs e) { Settings.Default.LeadInMeasures = Math.Max(0, Settings.Default.LeadInMeasures - 1); Settings.Default.Save(); } private void LeadInPlusBut_Click(object sender, RoutedEventArgs e) { Settings.Default.LeadInMeasures = Math.Min(Settings.Default.LeadInMeasures + 1, 16); Settings.Default.Save(); } private void MetroPlayCB_Checked(object sender, RoutedEventArgs e) { Settings.Default.MetronomePlay = true; Settings.Default.Save(); } private void MetroPlayCB_Unchecked(object sender, RoutedEventArgs e) { Settings.Default.MetronomePlay = false; Settings.Default.Save(); } private void MetroRecCB_Checked(object sender, RoutedEventArgs e) { Settings.Default.MetronomeRecord = true; Settings.Default.Save(); } private void MetroRecCB_Unchecked(object sender, RoutedEventArgs e) { Settings.Default.MetronomeRecord = false; Settings.Default.Save(); } private void MetronomeVolSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs e) { Settings.Default.Save(); } }