public void LoadModelFromDisc ()
{
Clear ();
LocalDisc mb_disc = LocalDisc.GetFromDevice (volume.DeviceNode);
if (mb_disc == null) {
throw new ApplicationException ("Could not read contents of the disc. Platform may not be supported.");
}
TimeSpan[] durations = mb_disc.GetTrackDurations ();
for (int i = 0, n = durations.Length; i < n; i++) {
AudioCdTrackInfo track = new AudioCdTrackInfo (this, volume.DeviceNode, i);
track.TrackNumber = i + 1;
track.TrackCount = n;
track.DiscNumber = 1;
track.Duration = durations[i];
track.ArtistName = Catalog.GetString ("Unknown Artist");
track.AlbumTitle = Catalog.GetString ("Unknown Album");
track.TrackTitle = String.Format (Catalog.GetString ("Track {0}"), track.TrackNumber);
track.FileSize = PCM_FACTOR * (uint)track.Duration.TotalSeconds;
Add (track);
duration += track.Duration;
file_size += track.FileSize;
}
EnabledCount = Count;
Reload ();
ThreadPool.QueueUserWorkItem (LoadDiscMetadata, mb_disc);
}