using MediaBrowser.Model.Plugins;
namespace ConfusedPolarBear.Plugin.IntroSkipper.Configuration;
///
/// Plugin configuration.
///
public class PluginConfiguration : BasePluginConfiguration
{
///
/// Initializes a new instance of the class.
///
public PluginConfiguration()
{
}
// ===== Analysis settings =====
///
/// Gets or sets a value indicating whether the episode's fingerprint should be cached to the filesystem.
///
public bool CacheFingerprints { get; set; } = true;
///
/// Gets or sets the max degree of parallelism used when analyzing episodes.
///
public int MaxParallelism { get; set; } = 2;
///
/// Gets or sets the comma separated list of library names to analyze. If empty, all libraries will be analyzed.
///
public string SelectedLibraries { get; set; } = string.Empty;
// ===== EDL handling =====
///
/// Gets or sets a value indicating the action to write to created EDL files.
///
public EdlAction EdlAction { get; set; } = EdlAction.None;
///
/// Gets or sets a value indicating whether to regenerate all EDL files during the next scan.
/// By default, EDL files are only written for a season if the season had at least one newly analyzed episode.
/// If this is set, all EDL files will be regenerated and overwrite any existing EDL file.
///
public bool RegenerateEdlFiles { get; set; } = false;
// ===== Custom analysis settings =====
///
/// Gets or sets the percentage of each episode's audio track to analyze.
///
public int AnalysisPercent { get; set; } = 25;
///
/// Gets or sets the upper limit (in minutes) on the length of each episode's audio track that will be analyzed.
///
public int AnalysisLengthLimit { get; set; } = 10;
///
/// Gets or sets the minimum length of similar audio that will be considered an introduction.
///
public int MinimumIntroDuration { get; set; } = 15;
///
/// Gets or sets the maximum amount of noise (in dB) that is considered silent.
/// Lowering this number will increase the filter's sensitivity to noise.
///
public int SilenceDetectionMaximumNoise { get; set; } = -50;
///
/// Gets or sets the minimum duration of audio (in seconds) that is considered silent.
///
public double SilenceDetectionMinimumDuration { get; set; } = 0.50;
// ===== Playback settings =====
///
/// Gets or sets a value indicating whether introductions should be automatically skipped.
///
public bool AutoSkip { get; set; }
///
/// Gets or sets the seconds before the intro starts to show the skip prompt at.
///
public int ShowPromptAdjustment { get; set; } = 5;
///
/// Gets or sets the seconds after the intro starts to hide the skip prompt at.
///
public int HidePromptAdjustment { get; set; } = 10;
///
/// Gets or sets the amount of intro to play (in seconds).
///
public int SecondsOfIntroToPlay { get; set; } = 2;
}