Example #1
0
    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);
    }
Example #2
0
    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());
    }
Example #3
0
    /// <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);
        }
    }
Example #4
0
    /// <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();
    }