From ebac563f0f8f4fba120cee79e8e6a7973e394677 Mon Sep 17 00:00:00 2001 From: basisbit Date: Fri, 28 Aug 2015 01:45:23 +0000 Subject: * first usable implementation of the JukeBox mode, work in progress - you can start it by pressing "j" in the main menu git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@3128 b956fd51-792f-4845-bead-9b4dfca2ff2c --- src/base/UNote.pas | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'src/base/UNote.pas') diff --git a/src/base/UNote.pas b/src/base/UNote.pas index c82cc2e3..dc2c6922 100644 --- a/src/base/UNote.pas +++ b/src/base/UNote.pas @@ -44,6 +44,7 @@ uses ULyrics, URecord, UScreenSing, + UScreenJukebox, USong, UTime; @@ -135,6 +136,8 @@ procedure NewNote(Screen: TScreenSing); // detect note function GetMidBeat(Time: real): real; function GetTimeFromBeat(Beat: integer; SelfSong: TSong = nil): real; +procedure SingJukebox(Screen: TScreenJukebox); + implementation uses @@ -325,6 +328,33 @@ begin NewBeatDetect(Screen); end; +procedure SingJukebox(Screen: TScreenJukebox); +var + Count: integer; + CountGr: integer; + CP: integer; +begin + LyricsState.UpdateBeats(); + + // sentences routines + for CountGr := 0 to 0 do //High(Lines) + begin; + CP := CountGr; + // old parts + LyricsState.OldLine := Lines[CP].Current; + + // choose current parts + for Count := 0 to Lines[CP].High do + begin + if LyricsState.CurrentBeat >= Lines[CP].Line[Count].Start then + Lines[CP].Current := Count; + end; + end; // for CountGr + + // on sentence change... + Screen.onSentenceChange(Lines[0].Current); +end; + procedure NewSentence(Screen: TScreenSing); var i: integer; -- cgit v1.2.3