static bloScreen loadScreen(string input, bloFormat format) { bloScreen screen = null; using (Stream stream = File.OpenRead(input)) { switch (format) { case bloFormat.Compact: screen = bloScreen.loadCompact(stream); break; case bloFormat.Blo1: screen = bloScreen.loadBlo1(stream); break; case bloFormat.Xml: screen = bloScreen.loadXml(stream); break; } } return(screen); }
internal void load(bloPane parentPane, object source, bloFormat format) { mParent = parentPane; if (mParent != null) { mParent.mChildren.Add(this); } mCullMode = gxCullMode.None; mConnectParent = false; switch (format) { case bloFormat.Compact: loadCompact(source as aBinaryReader); break; case bloFormat.Blo1: loadBlo1(source as aBinaryReader); break; case bloFormat.Xml: loadXml(source as xElement); break; default: throw new NotImplementedException("Format is not implemented."); } }
static void doCommandLine(aCommandLine cmd) { bool inputSet = false; string input = null; bloFormat format = bloFormat.Blo1; var searchPaths = new List <string>(5); bool sizeSet = false; int width = 0, height = 0; foreach (var param in cmd) { switch (param.Name.ToLowerInvariant()) { case "-input": { if (param.Count < 1) { break; } inputSet = true; input = param[0]; format = (param.Count >= 2 ? parseFormat(param[1]) : bloFormat.Blo1); break; } case "-search-paths": { foreach (var arg in param) { searchPaths.Add(arg); } break; } case "-display-size": { if (param.Count != 2) { break; } if (Int32.TryParse(param[0], out width) && Int32.TryParse(param[1], out height)) { sizeSet = true; } break; } } } if (!inputSet) { doUsage(); return; } if (!File.Exists(input)) { Console.WriteLine("Could not find input file '{0}'", input); return; } var path = Path.GetDirectoryName(Path.GetFullPath(input)); var file = Path.GetFileName(input); createFinder(path, searchPaths); var screen = loadScreen(input, format); if (screen == null) { Console.WriteLine("Failed to load input file '{0}'", input); return; } if (sizeSet) { openViewer(screen, file, width, height); } else { openViewer(screen, file); } }
static int doCommandLine(aCommandLine cmd) { bool inputSet = false; string input = null; bloFormat inputFormat = bloFormat.Blo1; bool outputSet = false; string output = null; bloFormat outputFormat = bloFormat.Blo1; var searchPaths = new List <string>(5); foreach (var param in cmd) { switch (param.Name.ToLowerInvariant()) { case "-input": { if (param.Count < 1) { break; } inputSet = true; input = param[0]; inputFormat = (param.Count >= 2 ? parseFormat(param[1]) : bloFormat.Blo1); break; } case "-output": { if (param.Count < 1) { break; } outputSet = true; output = param[0]; outputFormat = (param.Count >= 2 ? parseFormat(param[1]) : bloFormat.Blo1); break; } case "-search-paths": { foreach (var arg in param) { searchPaths.Add(arg); } break; } } } if (!inputSet || !outputSet) { return(doUsage()); } var inputFile = Path.GetFullPath(input); var outputFile = Path.GetFullPath(output); var inputPath = Path.GetDirectoryName(inputFile); var outputPath = Path.GetDirectoryName(outputFile); var finder = new bloResourceFinder(inputPath); foreach (var searchPath in searchPaths) { finder.addGlobalPath(searchPath); } bloResourceFinder.setFinder(finder); if (!File.Exists(inputFile)) { Console.WriteLine("Could not find input file '{0}'", inputFile); return(1); } if (inputFile == outputFile) { Console.WriteLine("Input and output files cannot be the same."); return(1); } if (inputFormat == outputFormat) { File.Copy(inputFile, outputFile); return(0); } bloScreen screen = null; using (var stream = File.OpenRead(inputFile)) { switch (inputFormat) { case bloFormat.Compact: screen = bloScreen.loadCompact(stream); break; case bloFormat.Blo1: screen = bloScreen.loadBlo1(stream); break; case bloFormat.Xml: screen = bloScreen.loadXml(stream); break; default: { Console.WriteLine("Unimplemented input format {0}", inputFormat); return(1); } } } if (screen == null) { Console.WriteLine("Failed to input file '{0}'", inputFile); return(1); } using (var stream = File.Create(outputFile)) { switch (outputFormat) { case bloFormat.Compact: screen.saveCompact(stream); break; case bloFormat.Blo1: screen.saveBlo1(stream); break; case bloFormat.Xml: screen.saveXml(stream); break; default: { Console.WriteLine("Unimplemented output format {0}", outputFormat); return(1); } } } return(0); }