using System;
using System.Text;
using System.Collections.Generic;
namespace BizHawk.Emulation.DiscSystem
{
///
/// Contains structural information for the disc broken down into c# data structures for easy interrogation.
/// This represents a best-effort interpretation of the raw disc image.
/// NOTE: Since this ended up really just having the list of sessions.. maybe it isn't needed and can just float on up into Disc
///
public class DiscStructure
{
///
/// This is a 1-indexed list of sessions (session 1 is at [1])
/// Support for multiple sessions is thoroughly not working yet
///
public List Sessions = new List();
public class Session
{
//Notable omission:
//Length of the session
//How should this be defined? It's even harder than determining a track length
///
/// The LBA of the session's leadout. In other words, for all intents and purposes, the end of the session
///
public int LeadoutLBA { get { return LeadoutTrack.LBA; } }
///
/// The session number
///
public int Number;
///
/// The number of user information tracks in the session.
/// This excludes the lead-in and lead-out tracks
/// Use this instead of Tracks.Count
///
public int InformationTrackCount { get { return Tracks.Count - 2; } }
///
/// All the tracks in the session.. but... Tracks[0] is the lead-in track. Tracks[1] should be "Track 1". So beware of this.
/// For a disc with "3 tracks", Tracks.Count will be 5: it includes that lead-in track as well as the leadout track.
/// Perhaps we should turn this into a special collection type with no Count or Length, or a method to GetTrack()
///
public List