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 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
}
}
}
}
}