diff --git a/DiscImageChef.Helpers/Extents/ExtentsByte.cs b/DiscImageChef.Helpers/Extents/ExtentsByte.cs index 2e6717a9..a4ac1914 100644 --- a/DiscImageChef.Helpers/Extents/ExtentsByte.cs +++ b/DiscImageChef.Helpers/Extents/ExtentsByte.cs @@ -201,5 +201,19 @@ namespace Extents { return backend.ToArray(); } + + public bool GetStart(byte item, out byte start) + { + start = 0; + foreach(Tuple extent in backend) + { + if(item >= extent.Item1 && item <= extent.Item2) + { + start = extent.Item1; + return true; + } + } + return false; + } } } diff --git a/DiscImageChef.Helpers/Extents/ExtentsInt.cs b/DiscImageChef.Helpers/Extents/ExtentsInt.cs index 91604f11..2b9d46fb 100644 --- a/DiscImageChef.Helpers/Extents/ExtentsInt.cs +++ b/DiscImageChef.Helpers/Extents/ExtentsInt.cs @@ -201,5 +201,19 @@ namespace Extents { return backend.ToArray(); } + + public bool GetStart(int item, out int start) + { + start = 0; + foreach(Tuple extent in backend) + { + if(item >= extent.Item1 && item <= extent.Item2) + { + start = extent.Item1; + return true; + } + } + return false; + } } } diff --git a/DiscImageChef.Helpers/Extents/ExtentsLong.cs b/DiscImageChef.Helpers/Extents/ExtentsLong.cs index 11e1c7f0..eae4ca61 100644 --- a/DiscImageChef.Helpers/Extents/ExtentsLong.cs +++ b/DiscImageChef.Helpers/Extents/ExtentsLong.cs @@ -201,5 +201,19 @@ namespace Extents { return backend.ToArray(); } + + public bool GetStart(long item, out long start) + { + start = 0; + foreach(Tuple extent in backend) + { + if(item >= extent.Item1 && item <= extent.Item2) + { + start = extent.Item1; + return true; + } + } + return false; + } } } diff --git a/DiscImageChef.Helpers/Extents/ExtentsSByte.cs b/DiscImageChef.Helpers/Extents/ExtentsSByte.cs index bfc07ac9..25af736e 100644 --- a/DiscImageChef.Helpers/Extents/ExtentsSByte.cs +++ b/DiscImageChef.Helpers/Extents/ExtentsSByte.cs @@ -201,5 +201,19 @@ namespace Extents { return backend.ToArray(); } + + public bool GetStart(sbyte item, out sbyte start) + { + start = 0; + foreach(Tuple extent in backend) + { + if(item >= extent.Item1 && item <= extent.Item2) + { + start = extent.Item1; + return true; + } + } + return false; + } } } diff --git a/DiscImageChef.Helpers/Extents/ExtentsShort.cs b/DiscImageChef.Helpers/Extents/ExtentsShort.cs index f508ace8..079c3464 100644 --- a/DiscImageChef.Helpers/Extents/ExtentsShort.cs +++ b/DiscImageChef.Helpers/Extents/ExtentsShort.cs @@ -201,5 +201,19 @@ namespace Extents { return backend.ToArray(); } + + public bool GetStart(short item, out short start) + { + start = 0; + foreach(Tuple extent in backend) + { + if(item >= extent.Item1 && item <= extent.Item2) + { + start = extent.Item1; + return true; + } + } + return false; + } } } diff --git a/DiscImageChef.Helpers/Extents/ExtentsUInt.cs b/DiscImageChef.Helpers/Extents/ExtentsUInt.cs index 3d0988da..bd24b6db 100644 --- a/DiscImageChef.Helpers/Extents/ExtentsUInt.cs +++ b/DiscImageChef.Helpers/Extents/ExtentsUInt.cs @@ -201,5 +201,19 @@ namespace Extents { return backend.ToArray(); } + + public bool GetStart(uint item, out uint start) + { + start = 0; + foreach(Tuple extent in backend) + { + if(item >= extent.Item1 && item <= extent.Item2) + { + start = extent.Item1; + return true; + } + } + return false; + } } } diff --git a/DiscImageChef.Helpers/Extents/ExtentsULong.cs b/DiscImageChef.Helpers/Extents/ExtentsULong.cs index c9f45706..fcb7a40b 100644 --- a/DiscImageChef.Helpers/Extents/ExtentsULong.cs +++ b/DiscImageChef.Helpers/Extents/ExtentsULong.cs @@ -201,5 +201,19 @@ namespace Extents { return backend.ToArray(); } + + public bool GetStart(ulong item, out ulong start) + { + start = 0; + foreach(Tuple extent in backend) + { + if(item >= extent.Item1 && item <= extent.Item2) + { + start = extent.Item1; + return true; + } + } + return false; + } } } diff --git a/DiscImageChef.Helpers/Extents/ExtentsUShort.cs b/DiscImageChef.Helpers/Extents/ExtentsUShort.cs index 9f7da19b..3e019e2a 100644 --- a/DiscImageChef.Helpers/Extents/ExtentsUShort.cs +++ b/DiscImageChef.Helpers/Extents/ExtentsUShort.cs @@ -201,5 +201,19 @@ namespace Extents { return backend.ToArray(); } + + public bool GetStart(ushort item, out ushort start) + { + start = 0; + foreach(Tuple extent in backend) + { + if(item >= extent.Item1 && item <= extent.Item2) + { + start = extent.Item1; + return true; + } + } + return false; + } } }