public void Play(bool loop, bool ignoreInfinite = false) { keyboard.Mute(); m_PatternLoop = data.FindLoopPoint( ); if (loop) { m_Loops = m_PlayLoops; if (ignoreInfinite) { m_Loops = System.Math.Max(m_PatternLoop == 0 ? 0 : 1, m_Loops); } } else { m_Loops = 0; } m_StartSample = psg.currentSample; m_CurrentPattern = data.currentPattern; m_CurrentLine = 0; m_Counter = 10000; view.SetSelection(0); m_LastLineTick = Time.time; m_IsPlaying = true; m_IsStopping = false; m_PatternBreakTarget = -1; view.SetSelection(view.selectedLine); }
void Start() { for (int i = 0; i < dataEntries.Length; i++) { int index = i; dataEntries [i].onClick.AddListener(() => { if (!view.playback.isPlaying) { view.SetSelection(line, channel, index, false); } }); dataEntries[i].GetComponent <BoxSelectable>().row = this; } }
private void ApplyEvent(FiniteStack <HistoryEvent> apply) { if (apply.count <= 0) { return; } HistoryEvent next = apply.Pop(); next.Restore(data.songData); data.currentPattern = next.pattern; view.UpdatePatternData(); Debug.Log("Next line is " + next.position.line); view.SetSelection(next.position); }
// Update is called once per frame void Update() { if (ExclusiveFocus.hasFocus) { return; } if (!playback.isPlaying) { if (Input.GetKeyDown(KeyCode.Home)) { patternView.SetSelection(0); } if (Input.GetKeyDown(KeyCode.End)) { patternView.SetSelection(songData.patternLength - 1); } if (Input.GetKeyDown(KeyCode.DownArrow)) { DoShortcut(KeyCode.DownArrow, () => { patternView.MoveVertical(1); }); } if (Input.GetKeyDown(KeyCode.UpArrow)) { DoShortcut(KeyCode.UpArrow, () => { patternView.MoveVertical(-1); }); } } if (Input.GetKeyDown(KeyCode.LeftArrow)) { DoShortcut(KeyCode.LeftArrow, () => { patternView.MoveHorizontal(-1); }); } if (Input.GetKeyDown(KeyCode.RightArrow)) { DoShortcut(KeyCode.RightArrow, () => { patternView.MoveHorizontal(1); }); } if (ModifierDown()) { if (Input.GetKeyDown(KeyCode.C)) { CopySelection(); } if (Input.GetKeyDown(KeyCode.V)) { PasteSelection(); } if (Input.GetKeyDown(KeyCode.X)) { CopySelection(); DeleteSelection(); } if (Input.GetKeyDown(KeyCode.Z)) { history.Undo(); } if (Input.GetKeyDown(KeyCode.F1)) { Transpose(-1); } if (Input.GetKeyDown(KeyCode.F2)) { Transpose(1); } if (Input.GetKeyDown(KeyCode.F3)) { Transpose(-12); } if (Input.GetKeyDown(KeyCode.F4)) { Transpose(12); } if (Input.GetKeyDown(KeyCode.A)) { SelectAll( ); } if (Input.GetKeyDown(KeyCode.S)) { fileManagement.SaveFile(false); } } if (patternView.recording) { if (Input.GetKeyDown(KeyCode.Delete)) { DoShortcut(KeyCode.Delete, DeleteSelection); } if (Input.GetKeyDown(KeyCode.Backspace)) { DoShortcut(KeyCode.Backspace, Erase); } if (Input.GetKeyDown(KeyCode.Insert)) { DoShortcut(KeyCode.Insert, Insert); } } if (!ModifierDown()) { for (int i = (int)KeyCode.F1; i <= (int)KeyCode.F8; i++) { if (Input.GetKeyDown((KeyCode)i)) { controls.octave.value = i - (int)KeyCode.F1 + 1; } } } }