mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
In Alcohol 120%, generate sessions list before checking for media type. Fixes #182
This commit is contained in:
@@ -404,6 +404,24 @@ namespace DiscImageChef.DiscImages
|
||||
|
||||
imageInfo.MediaType = AlcoholMediumTypeToMediaType(header.type);
|
||||
|
||||
Sessions = new List<Session>();
|
||||
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<Session>();
|
||||
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<Partition>();
|
||||
offsetmap = new Dictionary<uint, ulong>();
|
||||
ulong byteOffset = 0;
|
||||
|
||||
Reference in New Issue
Block a user