void Update()
    {
        if (ExclusiveFocus.hasFocus)
        {
            return;
        }

        if (!KeyboardShortcuts.ModifierDown() && patternView.IsCurrentPatternValid())
        {
            for (int i = 0; i < noteBinds.Length; i++)
            {
                if (noteBinds[i].GetNoteDown(m_CurrentOctave))
                {
                    if (noteBinds[i].note != Note.None)
                    {
                        SetNoteOn(noteBinds [i].note, m_CurrentOctave + noteBinds [i].octaveOffset);
                    }
                }
            }
        }

        for (int i = 0; i < noteBinds.Length; i++)
        {
            if (noteBinds [i].GetNoteUp( ))
            {
                SetNoteOff(noteBinds [i].note, m_CurrentOctave + noteBinds [i].octaveOffset);
            }
        }
    }
Example #2
0
    // Update is called once per frame
    void Update()
    {
        if (ExclusiveFocus.hasFocus)
        {
            return;
        }

        if (Input.GetKeyDown(KeyCode.Space))
        {
            selection.color = recording ? selectionRecording : selectionNormal;
            recording       = !recording;
        }

        if (recording && !KeyboardShortcuts.ModifierDown())
        {
            int maxLen = m_CurrentPosition.dataColumn == 2 ? 1 : 2;

            if (m_CurrentPosition.dataColumn != 0 && Input.inputString.Length > 0)
            {
                if (selectedLine + m_CurrentPosition.dataColumn != m_InputPos)
                {
                    m_InputPos = selectedLine + m_CurrentPosition.dataColumn;
                    m_Input    = System.String.Empty;
                }
                m_Input += Input.inputString[0];

                int res;
                if (int.TryParse(m_Input, System.Globalization.NumberStyles.HexNumber, null, out res))
                {
                    SetDataAtSelection(res);
                }
                else
                {
                    m_Input = m_Input.Substring(0, m_Input.Length - 1);
                }

                if (m_Input.Length >= maxLen)
                {
                    MoveVertical(1);
                    m_Input = System.String.Empty;
                }
            }
        }
    }