Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
 public ParserContext(CUESheet cueSheet)
 {
     this.cueSheet = cueSheet;
 }