41 lines
1.2 KiB
C#
41 lines
1.2 KiB
C#
namespace EmbyToolbox.Models;
|
||
|
||
/// <summary>Как сопоставлена дорожка текущего файла со snapshot.</summary>
|
||
public enum MatchingStrategy
|
||
{
|
||
None,
|
||
/// <summary>Type + Source + язык + порядковый номер внутри этой группы (как в текущем файле).</summary>
|
||
OrdinalByTypeSourceLanguage
|
||
}
|
||
|
||
/// <summary>Результат сопоставления одной дорожки текущего файла.</summary>
|
||
public sealed class TrackMatchResult
|
||
{
|
||
public int CurrentOrder { get; init; }
|
||
public bool IsMatched { get; init; }
|
||
public MatchingStrategy Strategy { get; init; }
|
||
public bool HadAmbiguousCandidates { get; init; }
|
||
public TrackSettingsSnapshotItem? SourceItem { get; init; }
|
||
public TrackActionKind ResolvedAction { get; init; }
|
||
}
|
||
|
||
public enum SnapshotApplyDegree
|
||
{
|
||
None,
|
||
Partial,
|
||
Full
|
||
}
|
||
|
||
public enum SnapshotApplyReason
|
||
{
|
||
NoSnapshot,
|
||
ScopeMismatch,
|
||
Success
|
||
}
|
||
|
||
public readonly record struct SnapshotApplyResult(
|
||
bool AppliedAny,
|
||
SnapshotApplyDegree Degree,
|
||
SnapshotApplyReason Reason,
|
||
IReadOnlyList<TrackMatchResult>? TrackResults);
|