diff --git a/Enums/Images.cs b/Enums/Images.cs index 8625cdb..f6cabb6 100644 --- a/Enums/Images.cs +++ b/Enums/Images.cs @@ -329,4 +329,19 @@ namespace Aaru.CommonTypes.Enums /// Extended density coercitivity (about 750Oe as found in 3.5" ED disks). Extended } + + [Flags] + public enum OpticalImageCapabilities : ulong + { + CanStoreAudioTracks = 0x01, CanStoreVideoTracks = 0x02, CanStoreDataTracks = 0x03, + CanStorePregaps = 0x04, + + // TODO: Implement + CanStoreIndexes = 0x08, CanStoreSubchannelPq = 0x10, CanStoreSubchannelRw = 0x20, + CanStoreSessions = 0x40, CanStoreIsrc = 0x80, CanStoreCdText = 0x100, + CanStoreMcn = 0x200, CanStoreRawData = 0x400, + + // TODO: Implement + CanStoreScrambledData = 0x800, CanStoreCookedData = 0x1000, CanStoreMultipleTracks = 0x2000 + } } \ No newline at end of file diff --git a/Interfaces/IWritableOpticalImage.cs b/Interfaces/IWritableOpticalImage.cs index fbf7d6b..a847625 100644 --- a/Interfaces/IWritableOpticalImage.cs +++ b/Interfaces/IWritableOpticalImage.cs @@ -37,12 +37,15 @@ // ****************************************************************************/ using System.Collections.Generic; +using Aaru.CommonTypes.Enums; using Aaru.CommonTypes.Structs; namespace Aaru.CommonTypes.Interfaces { public interface IWritableOpticalImage : IWritableImage, IOpticalMediaImage { + OpticalImageCapabilities OpticalCapabilities { get; } + /// Sets tracks for optical media /// List of tracks /// true if operating completed successfully, false otherwise