Exemple #1
0
 public DataSender(
     Enq EmuEnq
     , Enq RealEnq
     , Deq ProcessingData
     , Deq SetMMLParameter
     , PackData[] startData
     , PackData[] stopData
     , DataSeqFrqEventHandler DataSeqFrqCallBack
     , Action WaitSync
     , long EmuDelay
     , long RealDelay
     , int BufferSize = DATA_SEQUENCE_FREQUENCE
     , int Frq        = DATA_SEQUENCE_FREQUENCE
     )
 {
     action                = Main;
     this.Frq              = Frq;
     ringBuffer            = new RingBuffer(BufferSize);
     ringBuffer.AutoExtend = false;
     this.ringBufferSize   = BufferSize;
     SeqCounter            = Def_SeqCounter;
     this.EmuEnq           = EmuEnq;
     this.RealEnq          = RealEnq;
     this.startData        = startData;
     this.stopData         = stopData;
     this.ProcessingData   = ProcessingData;
     this.SetMMLParameter  = SetMMLParameter;
     OnDataSeqFrq         += DataSeqFrqCallBack;
     this.WaitSync         = WaitSync;
     this.EmuDelay         = EmuDelay;
     this.RealDelay        = RealDelay;
 }
Exemple #2
0
        /// <summary>
        /// セットアップ
        /// </summary>
        /// <param name="DriverAction">ミュージックドライバーの1フレームあたりの処理を指定してください</param>
        /// <param name="RealChipAction">実チップ向けデータ送信処理を指定してください</param>
        /// <param name="startData">DataSenderが初期化を行うときに出力するデータを指定してください</param>
        public void Setup(
            DriverAction DriverAction
            , Snd RealChipAction
            , Deq ProcessingData
            , Deq SetMMLParameter
            , DataSeqFrqEventHandler DataSeqFrqCallBack
            , Action WaitSync
            , PackData[] startData
            , long EmuDelay
            , long RealDelay
            )
        {
            dataMaker      = new DataMaker(DriverAction);
            emuChipSender  = new EmuChipSender(DATA_SEQUENCE_FREQUENCE);
            realChipSender = new RealChipSender(RealChipAction, DATA_SEQUENCE_FREQUENCE);
            dataSender     = new DataSender(
                emuChipSender.Enq
                , realChipSender.Enq
                , ProcessingData
                , SetMMLParameter
                , startData
                , null
                , DataSeqFrqCallBack
                , WaitSync
                , EmuDelay
                , RealDelay
                //, mml2vgmIDE.Common.SampleRate
                //, mml2vgmIDE.Common.SampleRate
                );

            dataMaker.parent      = this;
            emuChipSender.parent  = this;
            realChipSender.parent = this;
            dataSender.parent     = this;

            dataMaker.Mount();
            dataSender.Mount();
            emuChipSender.Mount();
            realChipSender.Mount();
        }