/// <summary> /// Add midi signal /// </summary> /// <param name="midiType">type of midi signal</param> private void AddMidi(MidiSignalTypes midiType, BaseMidiSignal midiSignal) { IRemovable midiVM = null; switch (midiType) { case MidiSignalTypes.MidiCC: if (midiSignal == null) { midiSignal = new MidiCC(); m_conditionsBlock.MidiSignals.Add(midiSignal); } midiVM = new MidiCCViewModel((MidiCC)midiSignal); break; case MidiSignalTypes.MidiNote: if (midiSignal == null) { midiSignal = new MidiNote(); m_conditionsBlock.MidiSignals.Add(midiSignal); } midiVM = new MidiNoteViewModel((MidiNote)midiSignal); break; } if (midiVM != null) { MidiSignals.Add(midiVM); //add remove delegate midiVM.DelegateToRemove = () => { m_conditionsBlock.MidiSignals.Remove(midiSignal); MidiSignals.Remove(midiVM); }; } }
/// <summary> /// Working constructor /// </summary> /// <param name="midiSettings">current midi settings</param> /// <param name="block"></param> public MidiCCViewModel(MidiCC miciCC) { RemoveCommand = new RelayCommand(() => Remove()); m_midiCC = miciCC; }