using Cryville.Common; using System.Collections.Generic; using System.IO; namespace Cryville.Crtr.Browsing { public abstract class ResourceConverter { public abstract string[] GetSupportedFormats(); public abstract IEnumerable ConvertFrom(FileInfo file); } public abstract class Resource { protected Resource(string name) { Name = StringUtils.EscapeFileName(name); } public string Name { get; private set; } } public class ChartResource : Resource { public ChartResource(string name, Chart main, ChartMeta meta) : base(name) { Main = main; Meta = meta; } public Chart Main { get; private set; } public ChartMeta Meta { get; private set; } } public class CoverResource : Resource { public CoverResource(string name, FileInfo src) : base(name) { Source = src; } public FileInfo Source { get; private set; } } public class SongResource : Resource { public SongResource(string name, FileInfo src) : base(name) { Source = src; } public FileInfo Source { get; private set; } } }