public static void DetectFile(string filePath, string projectFileName) { var builder = new ContainerBuilder(); builder.RegisterModule(new FrameworkModule()); builder.RegisterModule(new DataContractSerializerModule()); using (var container = builder.Build()) { string detectorPath = ConfigurationManager.AppSettings.Get("Defraser.DetectorPath") ?? AppDomain.CurrentDomain.BaseDirectory; IDetectorFactory detectorFactory = container.Resolve <IDetectorFactory>(); detectorFactory.Initialize(detectorPath); File.Delete(projectFileName); ProjectManager projectManager = container.Resolve <ProjectManager>(); IProject project = projectManager.CreateProject(projectFileName, "Console", DateTime.Now, "Batch process"); IInputFile inputFile = project.AddFile(filePath, detectorFactory.ContainerDetectors.Union(detectorFactory.CodecDetectors)); IFileScanner fileScanner = container.Resolve <IFileScanner>(); fileScanner.ContainerDetectors = detectorFactory.ContainerDetectors; fileScanner.CodecDetectors = detectorFactory.CodecDetectors; fileScanner.DataBlockDetected += (s, e) => project.AddDataBlock(e.DataBlock); fileScanner.Scan(inputFile, container.Resolve <IProgressReporter>()); projectManager.SaveProject(project); projectManager.CloseProject(project); } }
internal static IInputFile DetectData(IList <IDetector> containerDetectors, IList <IDetector> codecDetectors, IProject project, string fileName) { IFileScanner fileScanner = _container.Resolve <IFileScanner>(); fileScanner.ContainerDetectors = containerDetectors; fileScanner.CodecDetectors = codecDetectors; fileScanner.DataBlockDetected += (s, e) => project.AddDataBlock(e.DataBlock); List <IDetector> detectors = new List <IDetector>(); detectors.AddRange(containerDetectors); detectors.AddRange(codecDetectors); IInputFile inputFile = project.AddFile(fileName, detectors); fileScanner.Scan(inputFile, new NullProgressReporter()); return(inputFile); }
public async Task AddIcon(IProject project, IProjectIcon icon, string name) { // download icon var data = await icon.Get(); // save file var root = project.GetRootDirectory(); var filename = $"{name}@{icon.Density}.png".Replace("@1x", ""); var filepath = Path.Combine(root, RESOURCES_FOLDER, filename); FileUtils.WriteAllBytes(data, filepath); // add to project project.AddFile(filepath, "BundleResource"); // save project.Save(); }
public async Task AddIcon(IProject project, IProjectIcon icon, string name) { // download icon var data = await icon.Get(); // save file var root = project.GetRootDirectory(); var filename = $"{name}.png"; var filepath = Path.Combine(root, filename); FileUtils.WriteAllBytes(data, filepath); // add to project project.AddFile(filepath, "Content"); // save project.Save(); }
public async Task AddIcon(IProject project, IProjectIcon icon, string name) { // download icon var data = await icon.Get(); // TEMP solution to https://github.com/interisti/vs-material-icons-generator/issues/17 if (data == null) { return; } // save file var filepath = this.GetFilePath(project, icon, name); FileUtils.WriteAllBytes(data, filepath); // add to project project.AddFile(filepath, "AndroidResource"); // save project.Save(); }
public void ProjectChangedSetVisibleColumns() { With.Mocks(_mockRepository).Expecting(delegate { var e = new ProjectChangedEventArgs(ProjectChangedType.VisibleColumnsChanged, _detector1); _projectChangedEventHandler.Expect(x => x(_project, e)); }).Verify(delegate { _project.AddFile(FileName1, OneDetector); _project.ProjectChanged += _projectChangedEventHandler; _project.SetVisibleColumns(_detector1, TwoColumns); }); }
public void CreateEmptyScene(string name, IProject project) { CreateEmptyScene(name, (fileName, stream) => project.AddFile(fileName, stream)); }
public void Initialize(IProject project, DesignContext context) { SubprogramsDontDriveSignals sdds = new SubprogramsDontDriveSignals(); sdds.ApplyTo(context); foreach (VHDLib lib in _stdLibraries) { foreach (VHDPkg pkg in lib.Packages) { if (pkg.FileContent == null) continue; string fname = MakeVHDSourceFileName(pkg.Name); string path = project.AddFile(fname); FileStream fs = new FileStream(path, FileMode.Create); fs.Write(pkg.FileContent, 0, pkg.FileContent.Length); fs.Close(); } } }
public void GeneratePackage(IProject project, PackageDescriptor pd) { string name = MakeIDName(pd.PackageName, pd); string fname = MakeVHDSourceFileName(name); string path = project.AddFile(fname); project.AddFileAttribute(fname, pd); if (pd.Library != null) project.SetFileLibrary(fname, pd.Library); MemoryStream ms = new MemoryStream(); StreamWriter sw = new StreamWriter(ms); IndentedTextWriter tw = new IndentedTextWriter(sw, " "); ClearDependencies(); tw.WriteLine("package " + name + " is"); tw.Indent++; GenerateTypeDecls(pd, tw); foreach (MethodDescriptor md in pd.GetActiveMethods()) { GenerateMethodDecl(md, tw); } foreach (FieldDescriptor fd in pd.GetConstants()) { DeclareField(fd, tw); } tw.Indent--; tw.WriteLine("end;"); tw.WriteLine(); tw.WriteLine("package body " + name + " is"); tw.Indent++; foreach (MethodDescriptor md in pd.GetActiveMethods()) { GenerateMethodImpl(md, tw); tw.WriteLine(); } tw.Indent--; tw.WriteLine("end package body;"); tw.Flush(); sw = new StreamWriter(path); tw = new IndentedTextWriter(sw, " "); CreateFileHeader(new GeneratorInfo(name), tw); GenerateDependencies(pd, tw); tw.Flush(); ms.Seek(0, SeekOrigin.Begin); ms.CopyTo(sw.BaseStream); ms.Close(); tw.Close(); sw.Close(); }
public void GenerateComponent(IProject project, IComponentDescriptor cd) { string name = GetComponentName(cd); string fname = MakeVHDSourceFileName(name); string path = project.AddFile(fname); project.AddFileAttribute(fname, cd); if (cd.Library != null) project.SetFileLibrary(fname, cd.Library); _sim.PushScope(); MemoryStream ms = new MemoryStream(); StreamWriter sw = new StreamWriter(ms); IndentedTextWriter tw = new IndentedTextWriter(sw, " "); _curComponent = cd; ClearDependencies(); DeclareEntity(cd, tw); tw.WriteLine(); GenerateArchitecture(cd, tw); tw.Flush(); sw = new StreamWriter(path); tw = new IndentedTextWriter(sw, " "); CreateFileHeader(new GeneratorInfo(name), tw); GenerateDependencies((IPackageOrComponentDescriptor)cd, tw); tw.Flush(); ms.Seek(0, SeekOrigin.Begin); ms.CopyTo(sw.BaseStream); ms.Close(); tw.Close(); sw.Close(); _curComponent = null; _sim.PopScope(); InstanceDescriptor icd = cd as InstanceDescriptor; if (icd != null) { object[] attrs = icd.Instance.GetType().GetCustomAttributes(typeof(ComponentPurpose), true); if (attrs.Length > 0) { ComponentPurpose purpose = (ComponentPurpose)attrs.First(); project.AddFileAttribute(fname, purpose.Purpose); } } var gi = new VHDLGenInfo(name, "inst_" + name, "behavioral", fname); var d = (DescriptorBase)cd; d.AddAttribute(gi); }
public void SerializeProject() { IProject project = TestFramework.ProjectManager.CreateProject(ProjectPath, ProjectInvestigator, DateTime.Now, ProjectDescription); IDetector systemDetector = TestFramework.DetectorFactory.ContainerDetectors.Single(x => x.Name == "MPEG-1/2 Systems"); IDetector videoDetector = TestFramework.DetectorFactory.CodecDetectors.Single(x => x.Name == Mpeg2VideoDetector.DetectorName); IInputFile inputFile1 = project.AddFile(FileName1, new[] { systemDetector, videoDetector }); IInputFile inputFile2 = project.AddFile(FileName2, new[] { videoDetector }); IDataBlockBuilder dataBlockBuilder1 = TestFramework.CreateDataBlockBuilder(); dataBlockBuilder1.DataFormat = CodecID.Mpeg2System; dataBlockBuilder1.Detectors = new[] { systemDetector }; dataBlockBuilder1.InputFile = inputFile1; dataBlockBuilder1.StartOffset = 0L; dataBlockBuilder1.EndOffset = 20480L; dataBlockBuilder1.IsFullFile = true; ICodecStreamBuilder codecStreamBuilder = dataBlockBuilder1.AddCodecStream(); codecStreamBuilder.Name = "Video Stream #1"; codecStreamBuilder.DataFormat = CodecID.Mpeg2Video; codecStreamBuilder.Detector = videoDetector; codecStreamBuilder.Data = TestFramework.CreateDataPacket(inputFile1, 0L, 3033L); IDataBlock dataBlock1 = dataBlockBuilder1.Build(); IDataBlockBuilder dataBlockBuilder2 = TestFramework.CreateDataBlockBuilder(); dataBlockBuilder2.DataFormat = CodecID.Mpeg2Video; dataBlockBuilder2.Detectors = new[] { videoDetector }; dataBlockBuilder2.InputFile = inputFile1; dataBlockBuilder2.StartOffset = 130303L; dataBlockBuilder2.EndOffset = 130327L; dataBlockBuilder2.IsFullFile = false; IDataBlock dataBlock2 = dataBlockBuilder2.Build(); IDataBlockBuilder dataBlockBuilder3 = TestFramework.CreateDataBlockBuilder(); dataBlockBuilder3.DataFormat = CodecID.Mpeg2Video; dataBlockBuilder3.Detectors = new[] { videoDetector }; dataBlockBuilder3.InputFile = inputFile2; dataBlockBuilder3.StartOffset = 0L; dataBlockBuilder3.EndOffset = FileLength2; dataBlockBuilder3.IsFullFile = true; IDataBlock dataBlock3 = dataBlockBuilder3.Build(); project.AddDataBlock(dataBlock1); project.AddDataBlock(dataBlock2); project.AddDataBlock(dataBlock3); project.SetMetadata(_fullMetadata); // project.SetVisibleColumns(systemDetector, TwoColumns); IProject deserializedProject; using (FileStream fileStream = new FileStream(_project.FileName, FileMode.Create)) { TestFramework.CreateXmlObjectSerializer().WriteObject(fileStream, project); } using (FileStream fileStream = new FileStream(ProjectPath, FileMode.Open)) { deserializedProject = TestFramework.CreateXmlObjectSerializer().ReadObject(fileStream) as IProject; } IList <IInputFile> inputFiles = deserializedProject.GetInputFiles(); Assert.AreEqual(2, inputFiles.Count, "Serialization, input files (2 files)"); AreEqual(inputFile1, inputFiles[0], "1"); AreEqual(inputFile2, inputFiles[1], "2"); IList <IDataBlock> dataBlocks = deserializedProject.GetDataBlocks(inputFiles[0]); Assert.AreEqual(2, dataBlocks.Count, "Serialization, data blocks (file 1, 2 blocks)"); AreEqual(dataBlock1, dataBlocks[0], "1", "1"); AreEqual(dataBlock2, dataBlocks[1], "1", "2"); dataBlocks = deserializedProject.GetDataBlocks(inputFiles[1]); Assert.AreEqual(1, dataBlocks.Count, "Serialization, data blocks (file 2, 1 block)"); AreEqual(dataBlock3, dataBlocks[0], "2", "1"); IDictionary <ProjectMetadataKey, string> metadata = deserializedProject.GetMetadata(); Assert.AreEqual(5, metadata.Count, "Serialization, metadata (5 entries)"); Assert.IsTrue(metadata.ContainsKey(ProjectMetadataKey.FileVersion), "Serialization, metadata (FileVersion)"); Assert.AreEqual("1.0.0.4", metadata[ProjectMetadataKey.FileVersion], "Serialization, metadata (FileVersion)"); Assert.IsTrue(metadata.ContainsKey(ProjectMetadataKey.ProjectDescription), "Serialization, metadata (ProjectDescription)"); Assert.AreEqual(ProjectDescription, metadata[ProjectMetadataKey.ProjectDescription], "Serialization, metadata (ProjectDescription)"); Assert.IsTrue(metadata.ContainsKey(ProjectMetadataKey.InvestigatorName), "Serialization, metadata (InvestigatorName)"); Assert.AreEqual(ProjectInvestigator, metadata[ProjectMetadataKey.InvestigatorName], "Serialization, metadata (InvestigatorName)"); Assert.IsTrue(metadata.ContainsKey(ProjectMetadataKey.DateCreated), "Serialization, metadata (DateCreated)"); Assert.AreEqual(ProjectCreationDate, metadata[ProjectMetadataKey.DateCreated], "Serialization, metadata (DateCreated)"); Assert.IsTrue(metadata.ContainsKey(ProjectMetadataKey.DateLastModified), "Serialization, metadata (DateLastModified)"); Assert.AreEqual(ProjectModificationDate, metadata[ProjectMetadataKey.DateLastModified], "Serialization, metadata (DateLastModified)"); //IList<IColumnInfo> visibleColumns = deserializedProject.GetVisibleColumns(systemDetector); //Assert.AreEqual(2, visibleColumns.Count, "Serialization, visible columns (2 columns)"); //Assert.IsTrue(visibleColumns.Contains(_columnInfo1), "Serialization, visible columns (column 1)"); //Assert.IsTrue(visibleColumns.Contains(_columnInfo2), "Serialization, visible columns (column 2)"); TestFramework.ProjectManager.CloseProject(project); }
// ADDED private void GenerateMainFile(IProject project, IComponentDescriptor cd) { string fname = MakeSysCSourceFileName("main"); string path = project.AddFile(fname); StreamWriter sw = new StreamWriter(path); IndentedTextWriter tw = new IndentedTextWriter(sw, " "); string SimTimeUnit; CreateFileHeader(new GeneratorInfo(fname), tw); GenerateDependencies(null, tw, GetComponentName(cd)); // Get Simulation Time switch (SimTime.Unit) { case ETimeUnit.fs: SimTimeUnit = "SC_FS"; break; case ETimeUnit.ps: SimTimeUnit = "SC_PS"; break; case ETimeUnit.ns: SimTimeUnit = "SC_NS"; break; case ETimeUnit.us: SimTimeUnit = "SC_US"; break; case ETimeUnit.ms: SimTimeUnit = "SC_MS"; break; case ETimeUnit.sec: SimTimeUnit = "SC_SEC"; break; default: throw new NotImplementedException(); } tw.WriteLine(); tw.WriteLine("int sc_main(int argc, char* argv[])"); tw.WriteLine("{"); tw.Indent++; tw.WriteLine("sc_report_handler::set_actions (SC_WARNING, SC_DO_NOTHING);"); tw.WriteLine(); tw.WriteLine(GetComponentName(cd) + " " + GetComponentName(((ComponentDescriptor)cd).Instance.Representant.Descriptor) + "(\"" + GetComponentName(cd) + "\");"); tw.WriteLine(); tw.WriteLine("sc_start(" + SimTime.Value + ", " + SimTimeUnit + ");"); tw.WriteLine(); tw.WriteLine("return 0;"); tw.Indent--; tw.WriteLine("}"); tw.Flush(); tw.Close(); sw.Close(); }
// TODO public void GeneratePackage(IProject project, PackageDescriptor pd) { string name = MakeIDName(pd.PackageName, pd); string fname = MakeSysCHeaderFileName(name); string path = project.AddFile(fname); project.AddFileAttribute(fname, pd); if (pd.Library != null) project.SetFileLibrary(fname, pd.Library); MemoryStream ms = new MemoryStream(); StreamWriter sw = new StreamWriter(ms); IndentedTextWriter tw = new IndentedTextWriter(sw, " "); string cfname = MakeSysCSourceFileName(name); string path1 = project.AddFile(cfname); project.AddFileAttribute(cfname, pd); if (pd.Library != null) project.SetFileLibrary(cfname, pd.Library); MemoryStream ms1 = new MemoryStream(); StreamWriter sw1 = new StreamWriter(ms1); IndentedTextWriter tw1 = new IndentedTextWriter(sw1, " "); ClearDependencies(); //tw.Indent++; tw1.WriteLine("#include \"" + fname + "\""); tw1.WriteLine(); GenerateTypeDecls(pd, tw); foreach (MethodDescriptor md in pd.GetMethods()) { GenerateMethodDecl(md, tw); tw.WriteLine(); GenerateMethodImpl(md, tw1); tw1.WriteLine(); } foreach (FieldDescriptor fd in pd.GetConstants()) { DeclareField(fd, tw); } tw.Indent--; //tw.Indent++; tw.WriteLine("#endif"); tw.Flush(); sw = new StreamWriter(path); tw = new IndentedTextWriter(sw, " "); tw1.Flush(); sw1 = new StreamWriter(path1); tw1 = new IndentedTextWriter(sw1, " "); CreateFileHeader(new GeneratorInfo(fname), tw); CreateFileHeader(new GeneratorInfo(cfname), tw1); GeneratePreProcDir(pd, tw); GenerateDependencies(pd, tw); //_extraLibraries.Add(new SysCLib(fname)); tw.Flush(); ms.Seek(0, SeekOrigin.Begin); ms.CopyTo(sw.BaseStream); ms.Close(); tw.Close(); sw.Close(); tw1.Flush(); ms1.Seek(0, SeekOrigin.Begin); ms1.CopyTo(sw1.BaseStream); ms1.Close(); tw1.Close(); sw1.Close(); }
// ALTERADA public void GenerateComponent(IProject project, IComponentDescriptor cd) { string name = GetComponentName(cd); string fname = MakeSysCHeaderFileName(name); string path = project.AddFile(fname); bool IsTopComponent = (name == "top0") ? true : false; project.AddFileAttribute(fname, cd); if (cd.Library != null) project.SetFileLibrary(fname, cd.Library); _sim.PushScope(); MemoryStream ms = new MemoryStream(); StreamWriter sw = new StreamWriter(ms); IndentedTextWriter tw = new IndentedTextWriter(sw, " "); _curComponent = cd; ClearDependencies(); DeclareAndGenerateModule(cd, tw); tw.Flush(); sw = new StreamWriter(path); tw = new IndentedTextWriter(sw, " "); CreateFileHeader(new GeneratorInfo(fname), tw); GeneratePreProcDir(cd, tw); GenerateDependencies(cd, tw, null); tw.Flush(); ms.Seek(0, SeekOrigin.Begin); ms.CopyTo(sw.BaseStream); ms.Close(); tw.Close(); sw.Close(); _curComponent = null; _sim.PopScope(); InstanceDescriptor icd = cd as InstanceDescriptor; if (icd != null) { object[] attrs = icd.Instance.GetType().GetCustomAttributes(typeof(ComponentPurpose), true); if (attrs.Length > 0) { ComponentPurpose purpose = (ComponentPurpose)attrs.First(); project.AddFileAttribute(fname, purpose.Purpose); } } if (IsTopComponent) { GenerateMainFile(project, cd); } }
/// <summary> /// Adds the given <paramref name="filePath"/> to the <see cref="project"/> /// on the GUI thread. /// This will set the <see cref="CurrentFile"/> property to the <see cref="IInputFile"/> /// that was created by and added to the <paramref name="project"/>. /// </summary> /// <param name="project">The <see cref="IProject"/> to add the file to</param> /// <param name="filePath">The path of the file to add</param> /// <param name="detectors">The detectors used for scanning <see cref="filePath"/></param> private void AddFileToProject(IProject project, string filePath, IEnumerable <IDetector> detectors) { _synchronizeInvoke.Invoke(new Action(() => CurrentFile = project.AddFile(filePath, detectors)), null); }