예제 #1
0
        private bool suppressTableOrFrameChange = true; // suppress until after form is loaded - since init fires notifications

        public WaveTableWindow(Registration registration, WaveTableObjectRec waveTableObject, IMainWindowServices mainWindow)
        {
            this.registration = registration;
            this.waveTableObject = waveTableObject;
            this.mainWindow = mainWindow;

            InitializeComponent();
            this.Icon = OutOfPhase.Properties.Resources.Icon2;

            this.textBoxFormula.TextService = Program.Config.EnableDirectWrite ? TextEditor.TextService.DirectWrite : TextEditor.TextService.Uniscribe;
            this.textBoxFormula.AutoIndent = Program.Config.AutoIndent;

            DpiChangeHelper.ScaleFont(this, Program.Config.AdditionalUIZoom);

            menuStripManager.SetGlobalHandler(mainWindow);
            menuStripManager.HookUpTextEditorWindowHelper(this.textEditorWindowHelper);
            menuStripManager.HookUpTextBoxWindowHelper(this.textBoxWindowHelper);

            waveTableControl.WaveTableObject = waveTableObject;
            hScrollBarWaveTable.Scroll += new ScrollEventHandler(waveTableControl.OnIndexChanged);

            foreach (int i in WaveTableObjectRec.NumFramesAllowedValues)
            {
                comboBoxNumFrames.Items.Add(i.ToString());
            }

            foreach (string item in EnumUtility.GetDescriptions(WaveTableObjectRec.NumBitsAllowedValues))
            {
                comboBoxNumBits.Items.Add(item);
            }

            documentBindingSource.Add(mainWindow.Document);
            waveTableObjectRecBindingSource.Add(waveTableObject);
            waveTableObject.PropertyChanged += WaveTableObject_PropertyChanged;

            textBoxName.TextChanged += new EventHandler(textBoxName_TextChanged);
            GlobalNameChanged();

            buttonTest.MouseDown += new MouseEventHandler(buttonTest_MouseDown);
            buttonTest.MouseUp += new MouseEventHandler(buttonTest_MouseUp);

            textBoxNumTables.Validated += new EventHandler(textBoxNumTables_TextChanged);
            comboBoxNumFrames.TextChanged += new EventHandler(comboBoxNumFrames_TextChanged);
            comboBoxNumBits.TextChanged += new EventHandler(ComboBoxNumBits_TextChanged);

            tabControlWave.SelectedIndexChanged += TabControlWave_SelectedIndexChanged;
            //
            dataGridViewWave.CellValueNeeded += DataGridViewWave_CellValueNeeded;
            dataGridViewWave.CellValuePushed += DataGridViewWave_CellValuePushed;
            RebuildDataGrid();
            //
            labelScale.Visible = false;
            comboBoxScale.Visible = false;
            comboBoxScale.SelectedIndex = 0;

            registration.Register(waveTableObject, this);
        }
예제 #2
0
        private int GetWaveTableFrames(
            ArrayHandleByte waveTableName)
        {
            string name = waveTableName.strings;
            WaveTableObjectRec waveTable = mainWindow.Document.WaveTableList.Find(
                delegate(WaveTableObjectRec candidate) { return(String.Equals(name, candidate.Name)); });

            if (waveTable == null)
            {
                throw new EvalErrorException(EvalErrors.eEvalGetSampleNotDefined);
            }
            return(waveTable.NumFrames);
        }
예제 #3
0
 bool IMenuStripManagerHandler.ExecuteMenuItem(MenuStripManager menuStrip, ToolStripMenuItem menuItem)
 {
     if (menuItem == menuStrip.buildObjectToolStripMenuItem)
     {
         BuildThis(true /*force*/);
         return(true);
     }
     else if (menuItem == menuStrip.disassembleToolStripMenuItem)
     {
         DisassembleThis();
         return(true);
     }
     else if (menuItem == menuStrip.openAsWaveTableToolStripMenuItem)
     {
         if (BuildThis(false /*force*/))
         {
             float[] raw = algoWaveTableObject.WaveTableData.GetRawCopy();
             SampConv.QuantizeAndClampVector(raw, algoWaveTableObject.WaveTableData.NumBits); // ensure target bit depth is honored
             WaveTableObjectRec waveTableObject = new WaveTableObjectRec(
                 mainWindow.Document,
                 new WaveTableStorageRec(
                     algoWaveTableObject.WaveTableData.NumTables,
                     algoWaveTableObject.WaveTableData.NumFrames,
                     algoWaveTableObject.WaveTableData.NumBits,
                     raw));
             waveTableObject.Name = String.Format("Copy of {0}", algoWaveTableObject.Name);
             mainWindow.Document.WaveTableList.Add(waveTableObject);
             new WaveTableWindow(registration, waveTableObject, mainWindow).Show();
         }
         return(true);
     }
     else if (menuItem == menuStrip.deleteObjectToolStripMenuItem)
     {
         Close();
         mainWindow.DeleteObject(algoWaveTableObject, mainWindow.Document.AlgoWaveTableList);
         return(true);
     }
     return(false);
 }
 protected override object Load(BinaryReader reader, Document document)
 {
     waveTable = new WaveTableObjectRec(reader, new LoadContext(Document.CurrentFormatVersionNumber, document, LoadContextState.Paste));
     return(waveTable);
 }
 public WaveTableClipboard(WaveTableObjectRec waveTable, Document document)
     : base(document)
 {
     this.waveTable = waveTable;
 }