Beispiel #1
0
        //private void WriteLog(LogLevel arg1, string arg2)
        //{
        //disp?.Invoke(arg2);
        //}

        public void InitDriver(
            string fileName
            , List <Action <ChipDatum> > oPNAWrite
            , List <Action <byte[], int, int> > WritePCMData
            , Action <long, int> oPNAWaitSend
            , bool notSoundBoard2
            , musicDriverInterface.MmlDatum[] mubBuf
            , bool isLoadADPCM
            , bool loadADPCMOnly)
        {
            List <ChipAction> lca = new List <ChipAction>();
            mucomChipAction   ca;

            ca = new mucomChipAction(oPNAWrite[0], null, oPNAWaitSend); lca.Add(ca);
            ca = new mucomChipAction(oPNAWrite[1], null, null); lca.Add(ca);
            ca = new mucomChipAction(oPNAWrite[2], WritePCMData[2], null); lca.Add(ca);
            ca = new mucomChipAction(oPNAWrite[3], WritePCMData[3], null); lca.Add(ca);
            ca = new mucomChipAction(oPNAWrite[4], null, null); lca.Add(ca);

            driver.Init(
                lca
                //fileName
                //, oPNAWrite
                //, WritePCMData
                //, oPNAWaitSend
                , mubBuf
                , null
                , new object[] {
                notSoundBoard2
                , isLoadADPCM
                , loadADPCMOnly
                , fileName
            });
        }
Beispiel #2
0
        public void InitDriver(
            string fileName
            , Action <ChipDatum> OPL4Write
            , Action <long, int> OPL4WaitSend
            , musicDriverInterface.MmlDatum[] mdrBuf
            , ChipRegister chipRegister
            )
        {
            musicDriverInterface.Log.writeMethod = disp;
            musicDriverInterface.Log.off         = 0;
            setting           = Audio.setting;
            this.chipRegister = chipRegister;

            int jumpIndex = -1;

            if (compiler != null)
            {
                CompilerInfo ci = compiler.GetCompilerInfo();
                if (ci.jumpClock != -1)
                {
                    jumpIndex = ci.jumpClock;
                }
            }

            object addtionalMoonDriverDotNETOption = new object[] {
                fileName,//string srcFile;
                (Func <string, Stream>)appendFileReaderCallback,
                Common.SampleRate,
                jumpIndex
            };

            object[] addOp = new object[] {
                fileName,
                //(Func<string, Stream>)appendFileReaderCallback,
                (double)Common.SampleRate,
                jumpIndex
            };

            List <ChipAction>    lca = new List <ChipAction>();
            MoonDriverChipAction ca  = new MoonDriverChipAction(OPL4Write); lca.Add(ca);

            driver.Init(
                //fileName
                //, OPL4Write
                lca
                , mdrBuf
                , appendFileReaderCallback
                //,OPL4WaitSend
                , addOp
                );
        }
Beispiel #3
0
        //private void WriteLog(LogLevel arg1, string arg2)
        //{
        //disp?.Invoke(arg2);
        //}

        public void InitDriver(
            string fileName
            , Action <ChipDatum> oPNAWrite
            , Action <long, int> oPNAWaitSend
            , bool notSoundBoard2
            , musicDriverInterface.MmlDatum[] mubBuf
            , bool isLoadADPCM
            , bool loadADPCMOnly)
        {
            driver.Init(
                fileName
                , oPNAWrite
                , oPNAWaitSend
                , mubBuf
                , new object[] {
                notSoundBoard2
                , isLoadADPCM
                , loadADPCMOnly
            });
        }
Beispiel #4
0
        public void InitDriver(
            string fileName
            , Action <ChipDatum> oPNAWrite
            , Action <long, int> oPNAWaitSend
            , Func <ChipDatum, int> ppz8Write
            , Func <ChipDatum, int> ppsdrvWrite
            , Func <ChipDatum, int> p86Write
            , bool dummy_NotSoundBoard2 //参照しません
            , musicDriverInterface.MmlDatum[] mBuf
            , bool isLoadADPCM
            , bool loadADPCMOnly
            , ChipRegister chipRegister
            , bool isGIMICOPNA)
        {
            musicDriverInterface.Log.writeMethod = disp;
            musicDriverInterface.Log.off         = 0;
            setting           = Audio.setting;
            this.chipRegister = chipRegister;

            isNRM            = setting.pmdDotNET.soundBoard == 0;
            isSPB            = setting.pmdDotNET.soundBoard == 1;
            isVA             = false;
            usePPS           = setting.pmdDotNET.usePPSDRV;
            usePPZ           = setting.pmdDotNET.usePPZ8;
            this.isGIMICOPNA = isGIMICOPNA;

            int jumpIndex = -1;

            if (compiler != null)
            {
                CompilerInfo ci = compiler.GetCompilerInfo();
                if (ci.jumpClock != -1)
                {
                    jumpIndex = ci.jumpClock;
                }
            }

            object[] addtionalPMDDotNETOption = new object[] {
                isLoadADPCM,              //bool
                loadADPCMOnly,            //bool
                setting.pmdDotNET.isAuto, //bool isAUTO;
                isVA,                     //bool
                isNRM,                    //bool
                usePPS,                   //bool
                usePPZ,                   //bool
                isSPB,                    //bool
                envPmd,                   //string[] 環境変数PMD
                envPmdOpt,                //string[] 環境変数PMDOpt
                fileName,                 //string srcFile;
                "",                       //string PPCFileHeader無視されます(設定不要)
                (Func <string, Stream>)appendFileReaderCallback,
                jumpIndex
            };

            string[]          addtionalPMDOption = GetPMDOption();
            List <ChipAction> lca = new List <ChipAction>();
            PMDChipAction     ca  = new PMDChipAction(oPNAWrite, oPNAWaitSend);

            lca.Add(ca);

            driver.Init(
                lca
                //fileName
                //, oPNAWrite
                //, oPNAWaitSend
                , mBuf
                , null                   //ここのコールバックは未使用
                , new object[] {
                addtionalPMDDotNETOption //PMDDotNET option
                , addtionalPMDOption     // PMD option
                , ppz8Write
                , ppsdrvWrite
                , p86Write
            });

            //AUTO指定の場合に構成が変わるので、構成情報を受け取ってから音量設定を行う
            isNRM  = (bool)addtionalPMDDotNETOption[4]; //4 = isNrm
            isSPB  = (bool)addtionalPMDDotNETOption[7]; //7 = isSPB
            isVA   = (bool)addtionalPMDDotNETOption[3]; //3 = isVA
            usePPS = (bool)addtionalPMDDotNETOption[5]; //5 = usePPS
            usePPZ = (bool)addtionalPMDDotNETOption[6]; //6 = usePPZ
            string[] pmdOptionVol = SetVolume();

            ////ユーザーがコマンドラインでDオプションを指定していない場合はpmdVolを適用させる
            //if (!pmdvolFound && pmdOptionVol != null && pmdOptionVol.Length > 0)
            //{
            //    ((PMDDotNET.Driver)driver).resetOption(pmdOptionVol);//
            //}
        }