private static void ListItems(SDat sdat) { for (int seqIndex = 0; seqIndex < sdat.sequenceInfo.Count; ++seqIndex) { if (sdat.sequenceInfo[seqIndex] == null) { continue; } if (sdat.seqSymbols != null & sdat.seqSymbols[seqIndex] != null) { Console.WriteLine(sdat.seqSymbols[seqIndex]); } else { Console.WriteLine($"SSEQ #{seqIndex}"); } } for (int strmIndex = 0; strmIndex < sdat.streamInfo.Count; ++strmIndex) { if (sdat.streamInfo[strmIndex] == null) { continue; } if (sdat.streamSymbols != null & sdat.streamSymbols[strmIndex] != null) { Console.WriteLine(sdat.streamSymbols[strmIndex]); } else { Console.WriteLine($"STRM #{strmIndex}"); } } }
private static int Disasm(SDat sdat, string name) { if (Regex.IsMatch(name, @"^[0-9]+$")) { return(Disasm(sdat, int.Parse(name))); } try { var sseq = sdat.OpenSequence(name); var ser = new SequenceSerializer(); Console.Write(ser.Serialize(sseq.sequence)); return(ERR_OK); } catch (FileNotFoundException) { //just swallow this one } try { var strm = sdat.OpenStream(name); Console.WriteLine("Is stream."); return(ERR_IS_STREAM); } catch (FileNotFoundException) { //keep on ignoring missing files } return(ERR_SEQ_NOT_FOUND); }
private static void ScanFile(Stream fileStream) { NDS nds = null; try { nds = new NDS(fileStream); } catch (Exception) { Console.WriteLine("NDS parsing failed."); return; } var ser = new SequenceSerializer(); var sdatFiles = nds.FileSystem.RootDir.FindMatchingFiles("*.sdat"); foreach (var sdatFile in sdatFiles) { SDat sdat; try { sdat = SDat.Open(nds.FileSystem.OpenFile(sdatFile)); } catch (InvalidDataException) { Console.Out.WriteLine($"{sdatFile.AbsPath} Fail"); continue; //if this isn't even a valid sdat, no need to try the sequence parser on it } Console.Out.WriteLine($"{sdatFile.AbsPath} Loaded"); for (int sequenceIndex = 0; sequenceIndex < sdat.sequenceInfo.Count; ++sequenceIndex) { if (sdat.sequenceInfo[sequenceIndex] == null) { continue; } string seqName; if (sdat.seqSymbols != null && sdat.seqSymbols[sequenceIndex] != null) { seqName = $"# {sequenceIndex} {sdat.seqSymbols[sequenceIndex]}"; } else { seqName = $"# {sequenceIndex}"; } SSEQ sseq = null; try { sseq = sdat.OpenSequence(sequenceIndex); } catch (Exception) { Console.WriteLine($"Sequence {seqName} failed to parse."); } try { ser.Clear(); ser.Serialize(sseq.sequence); } catch (Exception) { Console.WriteLine($"Sequence {seqName} failed to serialize."); } } } }
private static int ListItems(NDS nds, List <FileSystem.File> sdats) { foreach (var sdatFile in sdats) { SDat sdat = SDat.Open(nds.FileSystem.OpenFile(sdatFile)); ListItems(sdat); } return(ERR_OK); }
private static int Disasm(SDat sdat, int index) { try { var sseq = sdat.OpenSequence(index); var ser = new SequenceSerializer(); Console.Write(ser.Serialize(sseq.sequence)); return(ERR_OK); } catch (FileNotFoundException) { return(ERR_SEQ_NOT_FOUND); } }
private static BasePlayer MakePlayer(string name, NDS nds, List <FileSystem.File> sdats) { foreach (var sdatFile in sdats) { SDat sdat = SDat.Open(nds.FileSystem.OpenFile(sdatFile)); BasePlayer player = MakePlayer(sdat, name); if (player != null) { return(player); } } throw new FileNotFoundException($"Failed to find a sequence by the name of \"{name}\""); }
private static int Disasm(string name, NDS nds, List <FileSystem.File> sdats) { foreach (var sdatFile in sdats) { SDat sdat = SDat.Open(nds.FileSystem.OpenFile(sdatFile)); int res = Disasm(sdat, name); if (res == ERR_SEQ_NOT_FOUND) { continue; } return(res); } Console.Error.WriteLine("Sequence not found"); return(ERR_SEQ_NOT_FOUND); }
private static BasePlayer MakePlayer(SDat sdat, string name) { if (Regex.IsMatch(name, @"^[0-9]+$")) { return(new SequencePlayer(sdat, int.Parse(name))); } try { return(new SequencePlayer(sdat, name)); } catch (FileNotFoundException) { //just swallow this one } try { var strm = sdat.OpenStream(name); Console.WriteLine("Is stream."); var player = new StreamPlayer(strm); player.SampleRate = strm.sampleRate; return(player); } catch (FileNotFoundException) { //keep on ignoring missing files } return(null); }
private void Load(SDat sdat, int streamIndex) { var strm = sdat.OpenStream(streamIndex); Load(strm); }
public StreamPlayer(SDat sdat, int streamIndex) { Load(sdat, streamIndex); }
public StreamPlayer(SDat sdat, string streamName) { var strm = sdat.OpenStream(streamName); Load(strm); }