diff --git a/Aaru.Archives/Aaru.Archives.csproj b/Aaru.Archives/Aaru.Archives.csproj index d2f1b681b..6d4f044d3 100644 --- a/Aaru.Archives/Aaru.Archives.csproj +++ b/Aaru.Archives/Aaru.Archives.csproj @@ -58,6 +58,7 @@ + diff --git a/Aaru.Archives/Symbian/Files.cs b/Aaru.Archives/Symbian/Files.cs index 82ec4a209..9ef08777c 100644 --- a/Aaru.Archives/Symbian/Files.cs +++ b/Aaru.Archives/Symbian/Files.cs @@ -32,7 +32,9 @@ using System; using Aaru.CommonTypes.Enums; +using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Structs; +using Aaru.Filters; using FileAttributes = System.IO.FileAttributes; namespace Aaru.Archives; @@ -146,5 +148,31 @@ public sealed partial class Symbian return ErrorNumber.NoError; } + /// + public ErrorNumber GetEntry(int entryNumber, out IFilter filter) + { + filter = null; + if(!Opened) + return ErrorNumber.NotOpened; + + if(entryNumber < 0 || entryNumber >= _files.Count) + return ErrorNumber.OutOfRange; + + // TODO: Implement + if(_compressed) + return ErrorNumber.NotSupported; + + var offsetStream = new OffsetStream(_stream, _files[entryNumber].pointer, + _files[entryNumber].pointer + _files[entryNumber].length); + filter = new ZZZNoFilter(); + ErrorNumber errno = filter.Open(offsetStream); + + if(errno == ErrorNumber.NoError) + return ErrorNumber.NoError; + + offsetStream.Close(); + return errno; + } + #endregion } \ No newline at end of file diff --git a/Aaru.Archives/Symbian/Unsupported.cs b/Aaru.Archives/Symbian/Unsupported.cs deleted file mode 100644 index 0813a0e25..000000000 --- a/Aaru.Archives/Symbian/Unsupported.cs +++ /dev/null @@ -1,50 +0,0 @@ -// /*************************************************************************** -// Aaru Data Preservation Suite -// ---------------------------------------------------------------------------- -// -// Filename : Symbian.cs -// Author(s) : Natalia Portillo -// -// Component : Symbian plugin. -// -// --[ Description ] ---------------------------------------------------------- -// -// Identifies Symbian installer (.sis) packages and shows information. -// -// --[ License ] -------------------------------------------------------------- -// -// This library is free software; you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as -// published by the Free Software Foundation; either version 2.1 of the -// License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, see . -// -// ---------------------------------------------------------------------------- -// Copyright © 2011-2023 Natalia Portillo -// ****************************************************************************/ - -using System; -using System.Diagnostics.CodeAnalysis; -using Aaru.CommonTypes.Enums; -using Aaru.CommonTypes.Interfaces; - -namespace Aaru.Archives; - -[SuppressMessage("ReSharper", "UnusedType.Global")] -[SuppressMessage("ReSharper", "UnusedMember.Local")] -public sealed partial class Symbian -{ -#region IArchive Members - - /// - public ErrorNumber GetEntry(int entryNumber, out IFilter filter) => throw new NotImplementedException(); - -#endregion -} \ No newline at end of file