From 82f474c7e39877d10c5e2d29361c9ff2733d716c Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Wed, 20 Jun 2018 22:50:50 +0100 Subject: [PATCH] In Alcohol 120%, generate sessions list before checking for media type. Fixes #182 --- DiscImageChef.DiscImages/Alcohol120.cs | 36 +++++++++++++------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/DiscImageChef.DiscImages/Alcohol120.cs b/DiscImageChef.DiscImages/Alcohol120.cs index 14a86b65b..02a5a6526 100644 --- a/DiscImageChef.DiscImages/Alcohol120.cs +++ b/DiscImageChef.DiscImages/Alcohol120.cs @@ -404,6 +404,24 @@ namespace DiscImageChef.DiscImages imageInfo.MediaType = AlcoholMediumTypeToMediaType(header.type); + Sessions = new List(); + foreach(AlcoholSession alcSes in alcSessions.Values) + { + Session session = new Session(); + + if(!alcTracks.TryGetValue(alcSes.firstTrack, out AlcoholTrack startingTrack)) break; + if(!alcTracks.TryGetValue(alcSes.lastTrack, out AlcoholTrack endingTrack)) break; + if(!alcTrackExtras.TryGetValue(alcSes.lastTrack, out AlcoholTrackExtra endingTrackExtra)) break; + + session.StartSector = startingTrack.startLba; + session.StartTrack = alcSes.firstTrack; + session.SessionSequence = alcSes.sessionSequence; + session.EndSector = endingTrack.startLba + endingTrackExtra.sectors - 1; + session.EndTrack = alcSes.lastTrack; + + Sessions.Add(session); + } + if(isDvd) { // TODO: Second layer @@ -530,24 +548,6 @@ namespace DiscImageChef.DiscImages DicConsole.DebugWriteLine("Alcohol 120% plugin", "ImageInfo.mediaType = {0}", imageInfo.MediaType); - Sessions = new List(); - foreach(AlcoholSession alcSes in alcSessions.Values) - { - Session session = new Session(); - - if(!alcTracks.TryGetValue(alcSes.firstTrack, out AlcoholTrack startingTrack)) break; - if(!alcTracks.TryGetValue(alcSes.lastTrack, out AlcoholTrack endingTrack)) break; - if(!alcTrackExtras.TryGetValue(alcSes.lastTrack, out AlcoholTrackExtra endingTrackExtra)) break; - - session.StartSector = startingTrack.startLba; - session.StartTrack = alcSes.firstTrack; - session.SessionSequence = alcSes.sessionSequence; - session.EndSector = endingTrack.startLba + endingTrackExtra.sectors - 1; - session.EndTrack = alcSes.lastTrack; - - Sessions.Add(session); - } - Partitions = new List(); offsetmap = new Dictionary(); ulong byteOffset = 0;