Merge branch 'master' of github.com:alcexhim/UniversalEditor

This commit is contained in:
Michael Becker 2015-10-16 12:44:22 -04:00
commit 3ed7eaa572
3 changed files with 4 additions and 101 deletions

View File

@ -4,6 +4,7 @@ using System.Linq;
using System.Text;
using UniversalEditor.IO;
using UniversalEditor.ObjectModels.FileSystem;
using UniversalEditor.ObjectModels.FileSystem.FileSources;
namespace UniversalEditor.DataFormats.FileSystem.TerminalReality.POD
{
@ -85,10 +86,7 @@ namespace UniversalEditor.DataFormats.FileSystem.TerminalReality.POD
File file = fsom.AddFile(fileName);
file.Size = length;
file.Properties.Add("reader", reader);
file.Properties.Add("length", length);
file.Properties.Add("offset", offset);
file.DataRequest += file_DataRequest;
file.Source = new EmbeddedFileSource(reader, offset, length);
}
break;
}
@ -112,10 +110,7 @@ namespace UniversalEditor.DataFormats.FileSystem.TerminalReality.POD
File file = fsom.AddFile(fileName);
file.Size = lengths[i];
file.Properties.Add("reader", reader);
file.Properties.Add("length", lengths[i]);
file.Properties.Add("offset", offsets[i]);
file.DataRequest += file_DataRequest;
file.Source = new EmbeddedFileSource(reader, offsets[i], lengths[i]);
}
break;
}
@ -149,10 +144,7 @@ namespace UniversalEditor.DataFormats.FileSystem.TerminalReality.POD
File file = fsom.AddFile(filename);
file.Size = lengths[i];
file.Properties.Add("reader", reader);
file.Properties.Add("length", lengths[i]);
file.Properties.Add("offset", offsets[i]);
file.DataRequest += file_DataRequest;
file.Source = new EmbeddedFileSource(reader, offsets[i], lengths[i]);
}
// russellm directory
@ -170,18 +162,6 @@ namespace UniversalEditor.DataFormats.FileSystem.TerminalReality.POD
}
}
private void file_DataRequest(object sender, DataRequestEventArgs e)
{
File file = (sender as File);
Reader reader = (Reader)file.Properties["reader"];
uint length = (uint)file.Properties["length"];
uint offset = (uint)file.Properties["offset"];
reader.Accessor.Seek(offset, SeekOrigin.Begin);
byte[] data = reader.ReadBytes(length);
e.Data = data;
}
protected override void SaveInternal(ObjectModel objectModel)
{
FileSystemObjectModel fsom = (objectModel as FileSystemObjectModel);

View File

@ -1,76 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UniversalEditor.IO;
using UniversalEditor.ObjectModels.FileSystem;
using UniversalEditor.ObjectModels.FileSystem.FileSources;
namespace UniversalEditor.DataFormats.FileSystem.Microsoft.POD
{
public class PODDataFormat : DataFormat
{
private static DataFormatReference _dfr = null;
protected override DataFormatReference MakeReferenceInternal()
{
if (_dfr == null)
{
_dfr = base.MakeReferenceInternal();
_dfr.Capabilities.Add(typeof(FileSystemObjectModel), DataFormatCapabilities.All);
}
return _dfr;
}
private string mvarComment = String.Empty;
public string Comment { get { return mvarComment; } set { mvarComment = value; } }
protected override void LoadInternal(ref ObjectModel objectModel)
{
FileSystemObjectModel fsom = (objectModel as FileSystemObjectModel);
if (fsom == null) throw new ObjectModelNotSupportedException();
Reader reader = base.Accessor.Reader;
int fileCount = reader.ReadInt32();
mvarComment = reader.ReadFixedLengthString(80).TrimNull();
for (int i = 0; i < fileCount; i++)
{
string fileName = reader.ReadFixedLengthString(32).TrimNull();
int length = reader.ReadInt32();
int offset = reader.ReadInt32();
File file = fsom.AddFile(fileName);
file.Size = length;
file.Source = new EmbeddedFileSource(reader, offset, length);
}
}
protected override void SaveInternal(ObjectModel objectModel)
{
FileSystemObjectModel fsom = (objectModel as FileSystemObjectModel);
if (fsom == null) throw new ObjectModelNotSupportedException();
Writer writer = base.Accessor.Writer;
File[] files = fsom.GetAllFiles();
writer.WriteInt32(files.Length);
writer.WriteFixedLengthString(mvarComment, 80);
int offset = 84 + (40 * files.Length);
foreach (File file in files)
{
writer.WriteFixedLengthString(file.Name, 32);
int length = (int)file.Source.GetLength();
writer.WriteInt32(length);
writer.WriteInt32(offset);
offset += length;
}
}
}
}

View File

@ -51,7 +51,6 @@
<Compile Include="DataFormats\FileSystem\Microsoft\MSCompressed\MSCompressedDataFormat.cs" />
<Compile Include="DataFormats\FileSystem\Microsoft\MSCompressed\MSCompressedKWAJCompressionMethod.cs" />
<Compile Include="DataFormats\FileSystem\Microsoft\MSCompressed\MSCompressedKWAJHeaderFlags.cs" />
<Compile Include="DataFormats\FileSystem\Microsoft\POD\PODDataFormat.cs" />
<Compile Include="DataFormats\FileSystem\Microsoft\WindowsImage\WIMArchiveFlags.cs" />
<Compile Include="DataFormats\FileSystem\Microsoft\WindowsImage\WIMArchiveHeader.cs" />
<Compile Include="DataFormats\FileSystem\Microsoft\WindowsImage\WIMDataFormat.cs" />