using System; using System.Collections.Generic; namespace gaseous_identifier.objects { /// /// Object returned by all signature engines containing metadata about the ROM's in the data files /// /// This class was based on the TOSEC dataset, so may need to be expanded as new signature engines are added /// public class RomSignatureObject { public string Name { get; set; } public string Description { get; set; } public string Category { get; set; } public string Version { get; set; } public string Author { get; set; } public string Email { get; set; } public string Homepage { get; set; } public Uri? Url { get; set; } public string SourceType { get; set; } public List Games { get; set; } public class Game { public string Name { get; set; } public string Description { get; set; } public string Year { get; set; } public string Publisher { get; set; } public DemoTypes Demo { get; set; } public string System { get; set; } public string SystemVariant { get; set; } public string Video { get; set; } public KeyValuePair Country { get; set; } public KeyValuePair Language { get; set; } public KeyValuePair Copyright { get; set; } public KeyValuePair DevelopmentStatus { get; set; } public List Roms { get; set; } public enum DemoTypes { NotDemo = 0, demo = 1, demo_kiosk = 2, demo_playable = 3, demo_rolling = 4, demo_slideshow = 5 } public class Rom { public string Name { get; set; } public UInt64 Size { get; set; } public string Crc { get; set; } public string Md5 { get; set; } public string Sha1 { get; set; } public string flags { get; set; } public RomTypes RomType { get; set; } public string RomTypeMedia { get; set; } public string MediaLabel { get; set; } public enum RomTypes { /// /// Media type is unknown /// Unknown = 0, /// /// Optical media /// Disc = 1, /// /// Magnetic media /// Disk = 2, /// /// Individual files /// File = 3, /// /// Individual pars /// Part = 4, /// /// Tape base media /// Tape = 5, /// /// Side of the media /// Side = 6 } } } } }