51 lines
1.8 KiB
C#
51 lines
1.8 KiB
C#
using System;
|
|
|
|
namespace IntroSkipper.Data;
|
|
|
|
/// <summary>
|
|
/// Represents the state of an episode regarding analysis and blacklist status.
|
|
/// </summary>
|
|
public class EpisodeState
|
|
{
|
|
private readonly bool[] _analyzedStates = new bool[2];
|
|
|
|
private readonly bool[] _blacklistedStates = new bool[2];
|
|
|
|
/// <summary>
|
|
/// Checks if the specified analysis mode has been analyzed.
|
|
/// </summary>
|
|
/// <param name="mode">The analysis mode to check.</param>
|
|
/// <returns>True if the mode has been analyzed, false otherwise.</returns>
|
|
public bool IsAnalyzed(AnalysisMode mode) => _analyzedStates[(int)mode];
|
|
|
|
/// <summary>
|
|
/// Sets the analyzed state for the specified analysis mode.
|
|
/// </summary>
|
|
/// <param name="mode">The analysis mode to set.</param>
|
|
/// <param name="value">The analyzed state to set.</param>
|
|
public void SetAnalyzed(AnalysisMode mode, bool value) => _analyzedStates[(int)mode] = value;
|
|
|
|
/// <summary>
|
|
/// Checks if the specified analysis mode has been blacklisted.
|
|
/// </summary>
|
|
/// <param name="mode">The analysis mode to check.</param>
|
|
/// <returns>True if the mode has been blacklisted, false otherwise.</returns>
|
|
public bool IsBlacklisted(AnalysisMode mode) => _blacklistedStates[(int)mode];
|
|
|
|
/// <summary>
|
|
/// Sets the blacklisted state for the specified analysis mode.
|
|
/// </summary>
|
|
/// <param name="mode">The analysis mode to set.</param>
|
|
/// <param name="value">The blacklisted state to set.</param>
|
|
public void SetBlacklisted(AnalysisMode mode, bool value) => _blacklistedStates[(int)mode] = value;
|
|
|
|
/// <summary>
|
|
/// Resets the analyzed states.
|
|
/// </summary>
|
|
public void ResetStates()
|
|
{
|
|
Array.Clear(_analyzedStates);
|
|
Array.Clear(_blacklistedStates);
|
|
}
|
|
}
|