/// <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);
                };
            }
        }
Esempio n. 2
0
        /// <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;
        }