Class LrcWriteOptions
- Namespace
- ModernLrc
- Assembly
- ModernLrc.dll
Configuration for a write operation.
public sealed record LrcWriteOptions : IEquatable<LrcWriteOptions>
- Inheritance
-
LrcWriteOptions
- Implements
- Inherited Members
Examples
// Emit a UTF-8 BOM and use CRLF line endings (Windows-friendly).
var winFriendly = new LrcWriteOptions
{
EmitByteOrderMark = true,
LineEnding = LrcLineEnding.Crlf,
};
// Millisecond precision and alphabetical metadata.
var precise = new LrcWriteOptions
{
TimestampPrecision = LrcTimestampPrecision.Milliseconds,
MetadataOrdering = LrcMetadataOrdering.Alphabetical,
};
// Emit one timestamp per line instead of collapsing into [t1][t2]text groups.
var verbose = new LrcWriteOptions { CollapseIdenticalLines = false };
Properties
CollapseIdenticalLines
Collapse consecutive lines with identical content (text + voice + line type) into
a single multi-timestamp line ([t1][t2]text). Default true — this is the
round-trip mechanism for inputs originally written as multi-timestamp groups, since the
parser fans them out into one line per timestamp.
public bool CollapseIdenticalLines { get; init; }
Property Value
Default
Default options.
public static LrcWriteOptions Default { get; }
Property Value
EmitByteOrderMark
Sole BOM control. true prepends GetPreamble();
false emits no preamble regardless of the encoding's natural BOM. Default false.
public bool EmitByteOrderMark { get; init; }
Property Value
EmitVoiceMarkers
Emit voice markers (default true). When false, voice metadata is dropped.
public bool EmitVoiceMarkers { get; init; }
Property Value
Encoding
Output encoding for byte sinks (default UTF-8). Whether its BOM is written is controlled by EmitByteOrderMark alone.
public Encoding Encoding { get; init; }
Property Value
LineEnding
Line-ending style (default Lf).
public LrcLineEnding LineEnding { get; init; }
Property Value
MetadataOrdering
Ordering policy for the metadata block.
public LrcMetadataOrdering MetadataOrdering { get; init; }
Property Value
TimestampPrecision
Timestamp precision (default centiseconds).
public LrcTimestampPrecision TimestampPrecision { get; init; }
Property Value
TrailingNewline
Append a final newline (default true).
public bool TrailingNewline { get; init; }
Property Value
VoiceMarkerOnChangeOnly
Only emit a voice marker on transition (default true); when false,
every line carrying a non-default voice receives an explicit marker.
public bool VoiceMarkerOnChangeOnly { get; init; }