diff options
Diffstat (limited to 'MediaBrowser.Model')
| -rw-r--r-- | MediaBrowser.Model/Lyrics/LyricLine.cs | 11 | ||||
| -rw-r--r-- | MediaBrowser.Model/Lyrics/LyricLineCue.cs | 35 |
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; } +} |
