public static CdjData TestMakeCDJData() { CdjData t = CdjXmlData.Read("c:/cdj.xml"); CdjXmlData cdjXML; cdjXML = new CdjXmlData(120, "test", 5); cdjXML.SOUND = "Crackin'DJ_02.mp3"; cdjXML.AddQue(1, 0, 0); cdjXML.AddScratch(192 + 24, new List <int> { 12, -12, 12, -12 }); cdjXML.AddScratch(192 + 96, new List <int> { 24, 12, -12 }); cdjXML.AddQue(2, 0, 0); cdjXML.AddQue(2, 24, 0); cdjXML.AddQue(2, 48, 0); cdjXML.AddQue(3, 0, 180); cdjXML.AddQue(4, 0, 360); cdjXML.DataFinalize(); cdjXML.Write("c:/cdj.cd"); CdjData cdj = cdjXML.MakeCdjData(); return(cdj); }
public static CdjData Read(string filename) { CdjXmlData cdjXML; Object o = new CdjXmlData(); MyUtil.XML.Read(filename, ref o); cdjXML = (CdjXmlData)o; CdjData t = cdjXML.MakeCdjData(); cdjXML.quedata = new List <RECORD>(); cdjXML.scratchdata = new List <RECORD>(); foreach (RECORD r in cdjXML.DATALIST) { if (r.datatype == 0) { cdjXML.quedata.Add(r); } else { cdjXML.scratchdata.Add(r); } } cdjXML.DataFinalize(); return(cdjXML.MakeCdjData()); }
/// <summary> /// XMLからゲーム用クラスに変換 /// </summary> public CdjData(CdjXmlData data) { BPM = data.BPM; TITLE = data.TITLE; LEVEL = data.LEVEL; SOUND = data.SOUND; GAP = data.GAP; JACKET = data.JACKET; LABEL = data.LABEL; lstquedata = new List <DiscQueCutData>(); DiscQueCutData preque = new DiscQueCutData { startstep = 0 }; bool bfirst = true; foreach (OneData o in data.quedata) { DiscQueCutData q = new DiscQueCutData(); if (bfirst) { q.ActiveState = EnumActiveState.NEXT; } else { q.ActiveState = EnumActiveState.INACTIVE; } q.startstep = o.startstep; q.endstep = o.endstep; q.lr = o.lr; q.quecount = o.data[0]; if (q.quecount < 360) { if (preque.endstep - preque.startstep > datacalc.resolution) { q.activemillis = datacalc.step2millis(BPM, preque.endstep - datacalc.resolution); } else { q.activemillis = datacalc.step2millis(BPM, preque.startstep); } } else { q.activemillis = datacalc.step2millis(BPM, preque.startstep); } q.judge = EnumJudge.NOTYET; lstquedata.Add(q); preque = q; bfirst = false; } lstscratchunit = new List <ScratchUnit>(); foreach (OneData o in data.scratchdata) { ScratchUnit scunit = new ScratchUnit(o); lstscratchunit.Add(scunit); } }
/// <summary> /// 曲データをファイルから読み込み(パス区切りを/で書かないとエラーが出る) /// </summary> /// <param name="fileName"></param> public void XmlDeserialize(string fileName) { //XMLファイルから復元 XmlSerializer serializer = new XmlSerializer(typeof(CdjXmlData)); StreamReader sr = new StreamReader(fileName, new UTF8Encoding(false)); CdjXmlData obj = (CdjXmlData)serializer.Deserialize(sr); sr.Close(); //Dictionaryに戻す this.BPM = obj.BPM; this.LEVEL = obj.LEVEL; this.TITLE = obj.TITLE; this.quedata = obj.quedata; this.scratchdata = obj.scratchdata; this.DataFinalize(); }