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; } = new List();
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; } = new List();
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 List flags { get; set; } = new List();
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
}
}
}
}
}