/// <summary> /// CUEシート各行の文字列からの解析 /// </summary> /// <param name="cueStringLines">CUEシートの行ごとの文字列</param> /// <returns>CUESheetオブジェクトまたはnull</returns> public static CUESheet FromString(string[] cueStringLines) { CUESheet cueSheet = new CUESheet(); var ctx = new ParserContext(cueSheet); foreach (string line in cueStringLines) { if (MatchProc_INDEX(line, ctx)) { continue; } if (MatchProc_TRACK(line, ctx)) { continue; } if (MatchProc_GeneralInfo(line, ctx)) { continue; } if (MatchProc_ReplayGainInfo(line, ctx)) { continue; } } if (cueSheet.Tracks.Count == 0) { return(null); } return(cueSheet); }
/// <summary> /// CUEファイルからの解析 /// </summary> /// <param name="filename">CUEファイル名</param> /// <returns>CUESheetオブジェクトまたはnull</returns> public static CUESheet FromFile(string filename) { string[] cueStringLines = File.ReadAllLines(filename, Encoding.Default); CUESheet cueSheet = FromString(cueStringLines); if (cueSheet == null) { return(null); } return(cueSheet); }
public ParserContext(CUESheet cueSheet) { this.cueSheet = cueSheet; }