Exemple #1
0
 bool IMenuStripManagerHandler.ExecuteMenuItem(MenuStripManager menuStrip, ToolStripMenuItem menuItem)
 {
     if (menuItem == menuStrip.evaluateToolStripMenuItem)
     {
         Eval();
         return true;
     }
     else if (menuItem == menuStrip.undoToolStripMenuItem)
     {
         Undo();
         return true;
     }
     else if (menuItem == menuStrip.redoToolStripMenuItem)
     {
         Redo();
         return true;
     }
     else if (menuItem == menuStrip.insertTableToolStripMenuItem)
     {
         using (CmdDlgOneParam dialog = new CmdDlgOneParam("Insert new wave table at which index?", "Index:", hScrollBarWaveTable.Value.ToString(), CmdDlgOneParam.Options.None))
         {
             if (dialog.ShowDialog() == DialogResult.OK)
             {
                 int index;
                 if (Int32.TryParse(dialog.Value, out index) && unchecked((uint)index) <= (uint)waveTableObject.NumTables)
                 {
                     undo.Push(waveTableObject.WaveTableData);
                     redo.Clear();
                     waveTableObject.WaveTableData = WaveTableStorageRec.InsertTable(waveTableObject.WaveTableData, index);
                 }
             }
         }
         return true;
     }
     else if (menuItem == menuStrip.deleteTableToolStripMenuItem)
     {
         using (CmdDlgOneParam dialog = new CmdDlgOneParam("Delete wave table at which index?", "Index:", hScrollBarWaveTable.Value.ToString(), CmdDlgOneParam.Options.None))
         {
             if (dialog.ShowDialog() == DialogResult.OK)
             {
                 int index;
                 if (Int32.TryParse(dialog.Value, out index) && unchecked((uint)index) < (uint)waveTableObject.NumTables)
                 {
                     undo.Push(waveTableObject.WaveTableData);
                     redo.Clear();
                     waveTableObject.WaveTableData = WaveTableStorageRec.DeleteTable(waveTableObject.WaveTableData, index);
                 }
             }
         }
         return true;
     }
     else if (menuItem == menuStrip.deleteObjectToolStripMenuItem)
     {
         Close();
         mainWindow.DeleteObject(waveTableObject, mainWindow.Document.WaveTableList);
         return true;
     }
     return false;
 }
Exemple #2
0
 public static bool CommandDialogOneString2(
     string Prompt,
     string BoxName,
     ref string DataInOut)
 {
     using (CmdDlgOneParam dialog = new CmdDlgOneParam(
                Prompt,
                BoxName,
                DataInOut,
                Options.Wide))
     {
         if (dialog.ShowDialog() == DialogResult.OK)
         {
             DataInOut = dialog.Value;
             return(true);
         }
     }
     return(false);
 }
Exemple #3
0
 public static bool CommandDialogOneParam(
     string Prompt,
     string BoxName,
     ref double DataInOut)
 {
     using (CmdDlgOneParam dialog = new CmdDlgOneParam(
                Prompt,
                BoxName,
                DataInOut.ToString("G12"),
                Options.None))
     {
         if (dialog.ShowDialog() == DialogResult.OK)
         {
             double v;
             if (Double.TryParse(dialog.Value, out v))
             {
                 DataInOut = v;
                 return(true);
             }
         }
     }
     return(false);
 }
        bool IMenuStripManagerHandler.ExecuteMenuItem(MenuStripManager menuStrip, ToolStripMenuItem menuItem)
        {
            if (menuItem == menuStrip.editNotePropertiesToolStripMenuItem)
            {
                EditNoteProperties();
                return(true);
            }
            else if (menuItem == menuStrip.editTrackPropertiesToolStripMenuItem)
            {
                EditTrackProperties();
                return(true);
            }
            else if (menuItem == menuStrip.selectAllToolStripMenuItem)
            {
                trackViewControl.TrackViewSelectAll();
                return(true);
            }
            else if (menuItem == menuStrip.pasteToolStripMenuItem)
            {
                trackViewControl.TrackViewAttemptPaste();
                return(true);
            }
            else if (menuItem == menuStrip.clearToolStripMenuItem)
            {
                if (trackViewControl.TrackViewIsASingleNoteSelected() || trackViewControl.TrackViewIsASingleCommandSelected())
                {
                    trackViewControl.TrackViewDeleteSingleNoteOrCommand();
                }
                else if (trackViewControl.TrackViewIsARangeSelected())
                {
                    trackViewControl.TrackViewDeleteRangeSelection();
                }
                trackViewControl.TrackViewShowSelection();
                return(true);
            }
            else if (menuItem == menuStrip.cutToolStripMenuItem)
            {
                trackViewControl.TrackViewCutRangeSelection();
                trackViewControl.TrackViewShowSelection();
                return(true);
            }
            else if (menuItem == menuStrip.copyToolStripMenuItem)
            {
                trackViewControl.TrackViewCopyRangeSelection();
                return(true);
            }
            else if (menuItem == menuStrip.undoToolStripMenuItem)
            {
                trackViewControl.UndoHelper.Undo();
                return(true);
            }
            else if (menuItem == menuStrip.redoToolStripMenuItem)
            {
                trackViewControl.UndoHelper.Redo();
                return(true);
            }
            else if ((menuItem == menuStrip.playTrackFromHereToolStripMenuItem) ||
                     (menuItem == menuStrip.playTrackFromHereToDiskToolStripMenuItem))
            {
                IPlayPrefsProvider playPrefsProvider = mainWindow.GetPlayPrefsProvider();

                int StartIndex;
                if (trackViewControl.TrackViewIsARangeSelected())
                {
                    StartIndex = trackViewControl.TrackViewGetRangeStart();
                }
                else if (trackViewControl.TrackViewIsThereInsertionPoint())
                {
                    StartIndex = trackViewControl.TrackViewGetInsertionPointIndex();
                }
                else if (trackViewControl.TrackViewIsASingleNoteSelected() ||
                         trackViewControl.TrackViewIsASingleCommandSelected())
                {
                    StartIndex = trackViewControl.TrackViewGetSingleNoteSelectionFrameNumber();
                }
                else
                {
                    StartIndex = 0; /* default to the beginning for other selections */
                }

                List <TrackObjectRec> TrackList = new List <TrackObjectRec>();
                TrackList.Add(trackObject);

                if (menuItem == menuStrip.playTrackFromHereToolStripMenuItem)
                {
#if true // prevents "Add New Data Source..." from working
                    SynthesizerGeneratorParams <OutputDeviceDestination, OutputDeviceArguments> .Do(
                        mainWindow.DisplayName,
                        OutputDeviceEnumerator.OutputDeviceGetDestination,
                        OutputDeviceEnumerator.CreateOutputDeviceDestinationHandler,
                        new OutputDeviceArguments(playPrefsProvider.BufferDuration),
                        SynthesizerGeneratorParams <OutputDeviceDestination, OutputDeviceArguments> .SynthesizerMainLoop,
                        new SynthesizerGeneratorParams <OutputDeviceDestination, OutputDeviceArguments>(
                            mainWindow,
                            mainWindow.Document,
                            TrackList,
                            trackObject,
                            StartIndex,
                            playPrefsProvider.SamplingRate,
                            playPrefsProvider.EnvelopeUpdateRate,
                            playPrefsProvider.NumChannels,
                            (LargeBCDType)playPrefsProvider.DefaultBeatsPerMinute,
                            playPrefsProvider.OverallVolumeScalingFactor,
                            (LargeBCDType)playPrefsProvider.ScanningGap,
                            playPrefsProvider.OutputNumBits,
                            false /*clipWarning*/,
                            playPrefsProvider.Oversampling,
                            playPrefsProvider.ShowSummary,
                            playPrefsProvider.Deterministic,
                            playPrefsProvider.Seed,
                            null /*automationSettings*/),
                        SynthesizerGeneratorParams <OutputDeviceDestination, OutputDeviceArguments> .SynthesizerCompletion,
                        mainWindow,
                        playPrefsProvider.NumChannels,
                        playPrefsProvider.OutputNumBits,
                        playPrefsProvider.SamplingRate,
                        playPrefsProvider.Oversampling,
                        true /*showProgressWindow*/,
                        true /*modal*/);
#endif
                }
                else
                {
#if true // prevents "Add New Data Source..." from working
                    SynthesizerGeneratorParams <OutputSelectableFileDestination, OutputSelectableFileArguments> .Do(
                        mainWindow.DisplayName,
                        OutputSelectableFileDestinationHandler.OutputSelectableFileGetDestination,
                        OutputSelectableFileDestinationHandler.CreateOutputSelectableFileDestinationHandler,
                        new OutputSelectableFileArguments(),
                        SynthesizerGeneratorParams <OutputSelectableFileDestination, OutputSelectableFileArguments> .SynthesizerMainLoop,
                        new SynthesizerGeneratorParams <OutputSelectableFileDestination, OutputSelectableFileArguments>(
                            mainWindow,
                            mainWindow.Document,
                            TrackList,
                            trackObject,
                            StartIndex,
                            playPrefsProvider.SamplingRate,
                            playPrefsProvider.EnvelopeUpdateRate,
                            playPrefsProvider.NumChannels,
                            (LargeBCDType)playPrefsProvider.DefaultBeatsPerMinute,
                            playPrefsProvider.OverallVolumeScalingFactor,
                            (LargeBCDType)playPrefsProvider.ScanningGap,
                            playPrefsProvider.OutputNumBits,
                            false /*clipWarning*/,
                            playPrefsProvider.Oversampling,
                            playPrefsProvider.ShowSummary,
                            playPrefsProvider.Deterministic,
                            playPrefsProvider.Seed,
                            null /*automationSettings*/),
                        SynthesizerGeneratorParams <OutputSelectableFileDestination, OutputSelectableFileArguments> .SynthesizerCompletion,
                        mainWindow,
                        playPrefsProvider.NumChannels,
                        playPrefsProvider.OutputNumBits,
                        playPrefsProvider.SamplingRate,
                        playPrefsProvider.Oversampling,
                        true /*showProgressWindow*/,
                        true /*modal*/);
#endif
                }
                return(true);
            }
            else if ((menuItem == menuStrip.playAllFromHereToolStripMenuItem) ||
                     (menuItem == menuStrip.playAllFromHereToDiskToolStripMenuItem))
            {
                IPlayPrefsProvider playPrefsProvider = mainWindow.GetPlayPrefsProvider();

                int StartIndex;
                if (trackViewControl.TrackViewIsARangeSelected())
                {
                    StartIndex = trackViewControl.TrackViewGetRangeStart();
                }
                else if (trackViewControl.TrackViewIsThereInsertionPoint())
                {
                    StartIndex = trackViewControl.TrackViewGetInsertionPointIndex();
                }
                else if (trackViewControl.TrackViewIsASingleNoteSelected() ||
                         trackViewControl.TrackViewIsASingleCommandSelected())
                {
                    StartIndex = trackViewControl.TrackViewGetSingleNoteSelectionFrameNumber();
                }
                else
                {
                    StartIndex = 0; /* default to the beginning for other selections */
                }

                List <TrackObjectRec> TrackList = new List <TrackObjectRec>();
                TrackList.Add(trackObject); // we must include the current track
                foreach (TrackObjectRec track in playPrefsProvider.IncludedTracks)
                {
                    if (track != trackObject)
                    {
                        TrackList.Add(track);
                    }
                }

                if (menuItem == menuStrip.playAllFromHereToolStripMenuItem)
                {
#if true // prevents "Add New Data Source..." from working
                    SynthesizerGeneratorParams <OutputDeviceDestination, OutputDeviceArguments> .Do(
                        mainWindow.DisplayName,
                        OutputDeviceEnumerator.OutputDeviceGetDestination,
                        OutputDeviceEnumerator.CreateOutputDeviceDestinationHandler,
                        new OutputDeviceArguments(playPrefsProvider.BufferDuration),
                        SynthesizerGeneratorParams <OutputDeviceDestination, OutputDeviceArguments> .SynthesizerMainLoop,
                        new SynthesizerGeneratorParams <OutputDeviceDestination, OutputDeviceArguments>(
                            mainWindow,
                            mainWindow.Document,
                            TrackList,
                            trackObject,
                            StartIndex,
                            playPrefsProvider.SamplingRate,
                            playPrefsProvider.EnvelopeUpdateRate,
                            playPrefsProvider.NumChannels,
                            (LargeBCDType)playPrefsProvider.DefaultBeatsPerMinute,
                            playPrefsProvider.OverallVolumeScalingFactor,
                            (LargeBCDType)playPrefsProvider.ScanningGap,
                            playPrefsProvider.OutputNumBits,
                            false /*clipWarning*/,
                            playPrefsProvider.Oversampling,
                            playPrefsProvider.ShowSummary,
                            playPrefsProvider.Deterministic,
                            playPrefsProvider.Seed,
                            null /*automationSettings*/),
                        SynthesizerGeneratorParams <OutputDeviceDestination, OutputDeviceArguments> .SynthesizerCompletion,
                        mainWindow,
                        playPrefsProvider.NumChannels,
                        playPrefsProvider.OutputNumBits,
                        playPrefsProvider.SamplingRate,
                        playPrefsProvider.Oversampling,
                        true /*showProgressWindow*/,
                        true /*modal*/);
#endif
                }
                else
                {
#if true // prevents "Add New Data Source..." from working
                    SynthesizerGeneratorParams <OutputSelectableFileDestination, OutputSelectableFileArguments> .Do(
                        mainWindow.DisplayName,
                        OutputSelectableFileDestinationHandler.OutputSelectableFileGetDestination,
                        OutputSelectableFileDestinationHandler.CreateOutputSelectableFileDestinationHandler,
                        new OutputSelectableFileArguments(),
                        SynthesizerGeneratorParams <OutputSelectableFileDestination, OutputSelectableFileArguments> .SynthesizerMainLoop,
                        new SynthesizerGeneratorParams <OutputSelectableFileDestination, OutputSelectableFileArguments>(
                            mainWindow,
                            mainWindow.Document,
                            TrackList,
                            trackObject,
                            StartIndex,
                            playPrefsProvider.SamplingRate,
                            playPrefsProvider.EnvelopeUpdateRate,
                            playPrefsProvider.NumChannels,
                            (LargeBCDType)playPrefsProvider.DefaultBeatsPerMinute,
                            playPrefsProvider.OverallVolumeScalingFactor,
                            (LargeBCDType)playPrefsProvider.ScanningGap,
                            playPrefsProvider.OutputNumBits,
                            false /*clipWarning*/,
                            playPrefsProvider.Oversampling,
                            playPrefsProvider.ShowSummary,
                            playPrefsProvider.Deterministic,
                            playPrefsProvider.Seed,
                            null /*automationSettings*/),
                        SynthesizerGeneratorParams <OutputSelectableFileDestination, OutputSelectableFileArguments> .SynthesizerCompletion,
                        mainWindow,
                        playPrefsProvider.NumChannels,
                        playPrefsProvider.OutputNumBits,
                        playPrefsProvider.SamplingRate,
                        playPrefsProvider.Oversampling,
                        true /*showProgressWindow*/,
                        true /*modal*/);
#endif
                }
                return(true);
            }
            else if (menuItem == menuStrip.showSelectionToolStripMenuItem)
            {
                trackViewControl.TrackViewShowSelection();
                return(true);
            }
            else if (menuItem == menuStrip.transposeToolStripMenuItem)
            {
                double Transpose = 0;
                CmdDlgOneParam.CommandDialogOneParam("Transpose half-steps:", null, ref Transpose);
                if (Transpose != 0)
                {
                    trackViewControl.TrackViewTransposeSelection((int)Transpose);
                }
                return(true);
            }
            else if (menuItem == menuStrip.goToLineToolStripMenuItem)
            {
                double NewMeasure = 0;
                CmdDlgOneParam.CommandDialogOneParam("Go To Measure:", null, ref NewMeasure);
                if (NewMeasure != 0)
                {
                    trackViewControl.TrackViewShowMeasure((int)NewMeasure);
                }
                return(true);
            }
            else if (menuItem == menuStrip.doubleDurationToolStripMenuItem)
            {
                trackViewControl.TrackViewAdjustDuration(2, 1);
                return(true);
            }
            else if (menuItem == menuStrip.halveDurationToolStripMenuItem)
            {
                trackViewControl.TrackViewAdjustDuration(1, 2);
                return(true);
            }

            return(false);
        }