From d3bffafd86fe567f76443b8bba0e964f31c94b61 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Tue, 21 Apr 2020 21:01:02 +0100 Subject: [PATCH] Add writable optical image capabilities enumeration. --- .idea/.idea.Aaru/.idea/contentModel.xml | 3 ++- .idea/.idea.Aaru/.idea/vcs.xml | 1 + Aaru.CommonTypes | 2 +- Aaru.Images/AaruFormat/Properties.cs | 11 +++++++++++ Aaru.Images/Alcohol120/Properties.cs | 10 ++++++++++ Aaru.Images/CDRDAO/Properties.cs | 10 ++++++++++ Aaru.Images/CDRWin/Properties.cs | 21 ++++++++++++++++----- Aaru.Images/CloneCD/Properties.cs | 11 +++++++++++ Aaru.Images/ZZZRawImage/Properties.cs | 4 ++++ 9 files changed, 66 insertions(+), 7 deletions(-) diff --git a/.idea/.idea.Aaru/.idea/contentModel.xml b/.idea/.idea.Aaru/.idea/contentModel.xml index 428009be1..ea3da717d 100644 --- a/.idea/.idea.Aaru/.idea/contentModel.xml +++ b/.idea/.idea.Aaru/.idea/contentModel.xml @@ -17,6 +17,7 @@ + @@ -1367,7 +1368,6 @@ - @@ -2184,6 +2184,7 @@ + diff --git a/.idea/.idea.Aaru/.idea/vcs.xml b/.idea/.idea.Aaru/.idea/vcs.xml index edd5dbb6a..b5f290c82 100644 --- a/.idea/.idea.Aaru/.idea/vcs.xml +++ b/.idea/.idea.Aaru/.idea/vcs.xml @@ -15,5 +15,6 @@ + \ No newline at end of file diff --git a/Aaru.CommonTypes b/Aaru.CommonTypes index 60f1376cc..fe4e055fb 160000 --- a/Aaru.CommonTypes +++ b/Aaru.CommonTypes @@ -1 +1 @@ -Subproject commit 60f1376ccf061e0cab5946704f212019049acc82 +Subproject commit fe4e055fbcd39300fce2fb9c6ec9122596219d32 diff --git a/Aaru.Images/AaruFormat/Properties.cs b/Aaru.Images/AaruFormat/Properties.cs index 14dbe4f35..92229ed17 100644 --- a/Aaru.Images/AaruFormat/Properties.cs +++ b/Aaru.Images/AaruFormat/Properties.cs @@ -42,6 +42,17 @@ namespace Aaru.DiscImages { public partial class AaruFormat { + public OpticalImageCapabilities OpticalCapabilities => OpticalImageCapabilities.CanStoreAudioTracks | + OpticalImageCapabilities.CanStoreDataTracks | + OpticalImageCapabilities.CanStorePregaps | + OpticalImageCapabilities.CanStoreSubchannelRw | + OpticalImageCapabilities.CanStoreSessions | + OpticalImageCapabilities.CanStoreIsrc | + OpticalImageCapabilities.CanStoreCdText | + OpticalImageCapabilities.CanStoreMcn | + OpticalImageCapabilities.CanStoreRawData | + OpticalImageCapabilities.CanStoreCookedData | + OpticalImageCapabilities.CanStoreMultipleTracks; public ImageInfo Info => imageInfo; public string Name => "Aaru Format"; public Guid Id => new Guid("49360069-1784-4A2F-B723-0C844D610B0A"); diff --git a/Aaru.Images/Alcohol120/Properties.cs b/Aaru.Images/Alcohol120/Properties.cs index 327aad408..1a085bdd6 100644 --- a/Aaru.Images/Alcohol120/Properties.cs +++ b/Aaru.Images/Alcohol120/Properties.cs @@ -42,6 +42,16 @@ namespace Aaru.DiscImages { public partial class Alcohol120 { + public OpticalImageCapabilities OpticalCapabilities => OpticalImageCapabilities.CanStoreAudioTracks | + OpticalImageCapabilities.CanStoreDataTracks | + OpticalImageCapabilities.CanStoreSubchannelRw | + OpticalImageCapabilities.CanStoreSessions | + OpticalImageCapabilities.CanStoreIsrc | + OpticalImageCapabilities.CanStoreCdText | + OpticalImageCapabilities.CanStoreMcn | + OpticalImageCapabilities.CanStoreRawData | + OpticalImageCapabilities.CanStoreCookedData | + OpticalImageCapabilities.CanStoreMultipleTracks; public ImageInfo Info => imageInfo; public string Name => "Alcohol 120% Media Descriptor Structure"; public Guid Id => new Guid("A78FBEBA-0307-4915-BDE3-B8A3B57F843F"); diff --git a/Aaru.Images/CDRDAO/Properties.cs b/Aaru.Images/CDRDAO/Properties.cs index f523cf12f..9e078daa9 100644 --- a/Aaru.Images/CDRDAO/Properties.cs +++ b/Aaru.Images/CDRDAO/Properties.cs @@ -41,6 +41,16 @@ namespace Aaru.DiscImages { public partial class Cdrdao { + public OpticalImageCapabilities OpticalCapabilities => OpticalImageCapabilities.CanStoreAudioTracks | + OpticalImageCapabilities.CanStoreDataTracks | + OpticalImageCapabilities.CanStorePregaps | + OpticalImageCapabilities.CanStoreSubchannelRw | + OpticalImageCapabilities.CanStoreIsrc | + OpticalImageCapabilities.CanStoreCdText | + OpticalImageCapabilities.CanStoreMcn | + OpticalImageCapabilities.CanStoreRawData | + OpticalImageCapabilities.CanStoreCookedData | + OpticalImageCapabilities.CanStoreMultipleTracks; public ImageInfo Info => imageInfo; public string Name => "CDRDAO tocfile"; public Guid Id => new Guid("04D7BA12-1BE8-44D4-97A4-1B48A505463E"); diff --git a/Aaru.Images/CDRWin/Properties.cs b/Aaru.Images/CDRWin/Properties.cs index 05e3e537d..7944b1ad1 100644 --- a/Aaru.Images/CDRWin/Properties.cs +++ b/Aaru.Images/CDRWin/Properties.cs @@ -41,6 +41,16 @@ namespace Aaru.DiscImages { public partial class CdrWin { + public OpticalImageCapabilities OpticalCapabilities => OpticalImageCapabilities.CanStoreAudioTracks | + OpticalImageCapabilities.CanStoreDataTracks | + OpticalImageCapabilities.CanStorePregaps | + OpticalImageCapabilities.CanStoreSessions | + OpticalImageCapabilities.CanStoreIsrc | + OpticalImageCapabilities.CanStoreCdText | + OpticalImageCapabilities.CanStoreMcn | + OpticalImageCapabilities.CanStoreRawData | + OpticalImageCapabilities.CanStoreCookedData | + OpticalImageCapabilities.CanStoreMultipleTracks; public ImageInfo Info => _imageInfo; public string Name => "CDRWin cuesheet"; public Guid Id => new Guid("664568B2-15D4-4E64-8A7A-20BDA8B8386F"); @@ -54,9 +64,9 @@ namespace Aaru.DiscImages { List tracks = new List(); - ulong previousStartSector = 0; - ulong gdRomSession2Offset = 45000; - string previousTrackFile = ""; + ulong previousStartSector = 0; + ulong gdRomSession2Offset = 45000; + string previousTrackFile = ""; foreach(CdrWinTrack cdrTrack in _discImage.Tracks) { @@ -73,7 +83,8 @@ namespace Aaru.DiscImages TrackBytesPerSector = CdrWinTrackTypeToCookedBytesPerSector(cdrTrack.TrackType) }; - if (previousTrackFile == aaruTrack.TrackFile || previousTrackFile == "") + if(previousTrackFile == aaruTrack.TrackFile || + previousTrackFile == "") { if(!cdrTrack.Indexes.TryGetValue(0, out aaruTrack.TrackStartSector)) if(!cdrTrack.Indexes.TryGetValue(1, out aaruTrack.TrackStartSector)) @@ -81,7 +92,7 @@ namespace Aaru.DiscImages } else aaruTrack.TrackStartSector += previousStartSector; - + if(_discImage.IsRedumpGigadisc && cdrTrack.Session == 2 && previousStartSector < gdRomSession2Offset) diff --git a/Aaru.Images/CloneCD/Properties.cs b/Aaru.Images/CloneCD/Properties.cs index c44b696d2..046e21e73 100644 --- a/Aaru.Images/CloneCD/Properties.cs +++ b/Aaru.Images/CloneCD/Properties.cs @@ -41,6 +41,17 @@ namespace Aaru.DiscImages { public partial class CloneCd { + public OpticalImageCapabilities OpticalCapabilities => OpticalImageCapabilities.CanStoreAudioTracks | + OpticalImageCapabilities.CanStoreDataTracks | + OpticalImageCapabilities.CanStorePregaps | + OpticalImageCapabilities.CanStoreSubchannelRw | + OpticalImageCapabilities.CanStoreSessions | + OpticalImageCapabilities.CanStoreIsrc | + OpticalImageCapabilities.CanStoreCdText | + OpticalImageCapabilities.CanStoreMcn | + OpticalImageCapabilities.CanStoreRawData | + OpticalImageCapabilities.CanStoreCookedData | + OpticalImageCapabilities.CanStoreMultipleTracks; public ImageInfo Info => imageInfo; public string Name => "CloneCD"; public Guid Id => new Guid("EE9C2975-2E79-427A-8EE9-F86F19165784"); diff --git a/Aaru.Images/ZZZRawImage/Properties.cs b/Aaru.Images/ZZZRawImage/Properties.cs index b55a0a983..ca706f366 100644 --- a/Aaru.Images/ZZZRawImage/Properties.cs +++ b/Aaru.Images/ZZZRawImage/Properties.cs @@ -44,6 +44,10 @@ namespace Aaru.DiscImages { public partial class ZZZRawImage { + public OpticalImageCapabilities OpticalCapabilities => OpticalImageCapabilities.CanStoreAudioTracks | + OpticalImageCapabilities.CanStoreDataTracks | + OpticalImageCapabilities.CanStoreRawData | + OpticalImageCapabilities.CanStoreCookedData; public string Name => "Raw Disk Image"; // Non-random UUID to recognize this specific plugin