diff --git a/Aaru.Images/AaruFormat/Tape.cs b/Aaru.Images/AaruFormat/Tape.cs
index 04f0d1247..c10b32acb 100644
--- a/Aaru.Images/AaruFormat/Tape.cs
+++ b/Aaru.Images/AaruFormat/Tape.cs
@@ -19,6 +19,16 @@ public sealed partial class AaruFormat
return res == Status.Ok;
}
+ ///
+ public bool AddPartition(TapePartition partition)
+ {
+ Status res = aaruf_set_tape_partition(_context, partition.Number, partition.FirstBlock, partition.LastBlock);
+
+ ErrorMessage = StatusToErrorMessage(res);
+
+ return res == Status.Ok;
+ }
+
#endregion
// AARU_EXPORT int32_t AARU_CALL aaruf_set_tape_file(void *context, const uint8_t partition, const uint32_t file,
@@ -27,4 +37,10 @@ public sealed partial class AaruFormat
[UnmanagedCallConv(CallConvs = [typeof(CallConvStdcall)])]
private static partial Status aaruf_set_tape_file(IntPtr context, byte partition, uint file, ulong startingBlock,
ulong endingBlock);
+ // AARU_EXPORT int32_t AARU_CALL aaruf_set_tape_partition(void *context, const uint8_t partition,
+ // const uint64_t starting_block, const uint64_t ending_block)
+ [LibraryImport("libaaruformat", EntryPoint = "aaruf_set_tape_partition", SetLastError = true)]
+ [UnmanagedCallConv(CallConvs = [typeof(CallConvStdcall)])]
+ private static partial Status aaruf_set_tape_partition(IntPtr context, byte partition, ulong startingBlock,
+ ulong endingBlock);
}
\ No newline at end of file
diff --git a/Aaru.Images/AaruFormat/Unimplemented.cs b/Aaru.Images/AaruFormat/Unimplemented.cs
index 1e6a8979a..7814d74bb 100644
--- a/Aaru.Images/AaruFormat/Unimplemented.cs
+++ b/Aaru.Images/AaruFormat/Unimplemented.cs
@@ -37,10 +37,6 @@ public sealed partial class AaruFormat
///
public bool IsTape { get; }
-
- ///
- public bool AddPartition(TapePartition partition) => throw new NotImplementedException();
-
///
public bool SetTape() => throw new NotImplementedException();