aboutsummaryrefslogtreecommitdiffstats
path: root/src/base/UMusic.pas
diff options
context:
space:
mode:
Diffstat (limited to 'src/base/UMusic.pas')
-rw-r--r--src/base/UMusic.pas21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/base/UMusic.pas b/src/base/UMusic.pas
index d37c4458..d6ff05a9 100644
--- a/src/base/UMusic.pas
+++ b/src/base/UMusic.pas
@@ -43,6 +43,12 @@ uses
type
TNoteType = (ntFreestyle, ntNormal, ntGolden);
+ TPos = record
+ CP: integer;
+ line: integer;
+ note: integer;
+ end;
+
{**
* acoStretch: Stretch to screen width and height
* - ignores aspect
@@ -86,6 +92,10 @@ type
Tone: integer; // full range tone
Text: UTF8String; // text assigned to this fragment (a syllable, word, etc.)
NoteType: TNoteType; // note-type: golden-note/freestyle etc.
+
+ IsMedley: boolean; //just for editor
+ IsStartPreview: boolean; //just for editor
+
end;
(**
@@ -98,7 +108,7 @@ type
Lyric: UTF8String;
//LyricWidth: real; // @deprecated: width of the line in pixels.
// Do not use this as the width is not correct.
- // Use TLyricsEngine.GetUpperLine().Width instead.
+ // Use TLyricsEngine.GetUpperLine().Width instead.
End_: integer;
BaseNote: integer;
HighNote: integer; // index of last note in line (= High(Note)?)
@@ -110,7 +120,7 @@ type
(**
* TLines stores sets of lyric lines and information on them.
* Normally just one set is defined but in duet mode it might for example
- * contain two sets.
+ * contain two sets.
*)
TLines = record
Current: integer; // for drawing of current line
@@ -286,7 +296,7 @@ type
* free the SourceStream after the Playback-Stream is closed.
* You may use an OnClose-handler to achieve this. GetSourceStream()
* guarantees to deliver this method's SourceStream parameter to
- * the OnClose-handler. Freeing SourceStream at OnClose is allowed.
+ * the OnClose-handler. Freeing SourceStream at OnClose is allowed.
*)
function Open(SourceStream: TAudioSourceStream): boolean; virtual; abstract;
@@ -421,7 +431,7 @@ type
['{E4AE0B40-3C21-4DC5-847C-20A87E0DFB96}']
function InitializePlayback: boolean;
function FinalizePlayback: boolean;
-
+
function GetOutputDeviceList(): TAudioOutputDeviceList;
procedure SetAppVolume(Volume: single);
@@ -899,6 +909,7 @@ begin
// stop, close and free sounds
SoundLib.Free;
+
// stop and close music stream
if (AudioPlayback <> nil) then
AudioPlayback.Close;
@@ -1091,7 +1102,9 @@ end;
function TAudioPlaybackStream.Synchronize(BufferSize: integer; FormatInfo: TAudioFormatInfo): integer;
var
TimeDiff: double;
+ FrameDiff: double;
FrameSkip: integer;
+ ReqFrames: integer;
MasterClock: real;
CurPosition: real;
const