// --------------------------------------------------------------------------------------------------------------------
//
// This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License.
//
//
// The Preset Service Interface
//
// --------------------------------------------------------------------------------------------------------------------
namespace HandBrakeWPF.Services.Presets.Interfaces
{
using System.Collections.ObjectModel;
using HandBrakeWPF.Services.Presets.Model;
///
/// The Preset Service Interface
///
public interface IPresetService
{
///
/// Gets a Collection of presets.
///
ObservableCollection Presets { get; }
///
/// Gets DefaultPreset.
///
Preset DefaultPreset { get; }
///
/// The load.
///
void Load();
///
/// Add a new preset to the system
///
///
/// A Preset to add
///
///
/// True if added,
/// False if name already exists
///
bool Add(Preset preset);
///
/// The import.
///
///
/// The filename.
///
void Import(string filename);
///
/// Update a preset
///
///
/// The updated preset
///
void Update(Preset update);
///
/// Remove a preset with a given name from either the built in or user preset list.
///
///
/// The Preset to remove
///
void Remove(Preset preset);
///
/// Remove a group of presets by category
///
///
/// The Category to remove
///
void RemoveGroup(string category);
///
/// Get a Preset
///
///
/// The name of the preset to get
///
///
/// A Preset or null object
///
Preset GetPreset(string name);
///
/// Clear Built-in Presets
///
void ClearBuiltIn();
///
/// Clear all presets
///
void ClearAll();
///
/// Set Default Preset
///
///
/// The name.
///
void SetDefault(Preset name);
///
/// Returns a value if the preset can be updated / resaved
///
///
/// The name.
///
///
/// True if it's not a built-in preset, false otherwise.
///
bool CanUpdatePreset(string name);
///
/// Reads the CLI's CLI output format and load's them into the preset List Preset
///
void UpdateBuiltInPresets();
///
/// Check if the built in Presets stored are not out of date.
/// Update them if they are.
///
/// true if out of date
bool CheckIfPresetsAreOutOfDate();
///
/// Check if the preset "name" exists in either Presets or UserPresets lists.
///
/// Name of the preset
/// True if found
bool CheckIfPresetExists(string name);
}
}