Example #1
0
    private IEnumerator CreateNextInputWindow(AudioClip audioClip, double intervalUntilScheduledTime)
    {
        yield return(new WaitForSecondsRealtime((float)intervalUntilScheduledTime));

        int     clipID  = soundLibrary.GetIDFromClip(audioClip);
        KeyCode keyCode = AudioKeyCodeConstants.GetKeyCodeFromID(clipID);

        if (activeInputWindow != null)
        {
            activeInputWindow.OnWindowShutEvent    -= OnWindowShut;
            activeInputWindow.OnButtonPressedEvent -= OnButtonPressed;
            activeInputWindow.Deactivate();
        }

        if (clipID >= soundLibrary.IndexOfFirstCue)
        {
            beatVisualizer.WindowOpened();

            Debug.Log("Creating Input Window");
            activeInputWindow = new InputWindow(audioClip, keyCode, AudioSettings.dspTime + audioClip.length, inputSystem, updateCallback);
            activeInputWindow.OnWindowShutEvent    += OnWindowShut;
            activeInputWindow.OnButtonPressedEvent += OnButtonPressed;
        }
        else
        {
            activeInputWindow = null;
        }
    }