aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Model
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Model')
-rw-r--r--MediaBrowser.Model/Lyrics/LyricLine.cs11
-rw-r--r--MediaBrowser.Model/Lyrics/LyricLineCue.cs35
2 files changed, 45 insertions, 1 deletions
diff --git a/MediaBrowser.Model/Lyrics/LyricLine.cs b/MediaBrowser.Model/Lyrics/LyricLine.cs
index 64d1f64c2..788bace69 100644
--- a/MediaBrowser.Model/Lyrics/LyricLine.cs
+++ b/MediaBrowser.Model/Lyrics/LyricLine.cs
@@ -1,3 +1,5 @@
+using System.Collections.Generic;
+
namespace MediaBrowser.Model.Lyrics;
/// <summary>
@@ -10,10 +12,12 @@ public class LyricLine
/// </summary>
/// <param name="text">The lyric text.</param>
/// <param name="start">The lyric start time in ticks.</param>
- public LyricLine(string text, long? start = null)
+ /// <param name="cues">The time-aligned cues for the song's lyrics.</param>
+ public LyricLine(string text, long? start = null, IReadOnlyList<LyricLineCue>? cues = null)
{
Text = text;
Start = start;
+ Cues = cues;
}
/// <summary>
@@ -25,4 +29,9 @@ public class LyricLine
/// Gets the start time in ticks.
/// </summary>
public long? Start { get; }
+
+ /// <summary>
+ /// Gets the time-aligned cues for the song's lyrics.
+ /// </summary>
+ public IReadOnlyList<LyricLineCue>? Cues { get; }
}
diff --git a/MediaBrowser.Model/Lyrics/LyricLineCue.cs b/MediaBrowser.Model/Lyrics/LyricLineCue.cs
new file mode 100644
index 000000000..1172a0231
--- /dev/null
+++ b/MediaBrowser.Model/Lyrics/LyricLineCue.cs
@@ -0,0 +1,35 @@
+namespace MediaBrowser.Model.Lyrics;
+
+/// <summary>
+/// LyricLineCue model, holds information about the timing of words within a LyricLine.
+/// </summary>
+public class LyricLineCue
+{
+ /// <summary>
+ /// Initializes a new instance of the <see cref="LyricLineCue"/> class.
+ /// </summary>
+ /// <param name="position">The start of the character index of the lyric.</param>
+ /// <param name="start">The start of the timestamp the lyric is synced to in ticks.</param>
+ /// <param name="end">The end of the timestamp the lyric is synced to in ticks.</param>
+ public LyricLineCue(int position, long start, long? end)
+ {
+ Position = position;
+ Start = start;
+ End = end;
+ }
+
+ /// <summary>
+ /// Gets the character index of the lyric.
+ /// </summary>
+ public int Position { get; }
+
+ /// <summary>
+ /// Gets the timestamp the lyric is synced to in ticks.
+ /// </summary>
+ public long Start { get; }
+
+ /// <summary>
+ /// Gets the end timestamp the lyric is synced to in ticks.
+ /// </summary>
+ public long? End { get; }
+}