Ejemplo n.º 1
0
 private void SongTrackImportWaveForm_Load(object sender, EventArgs e)
 {
     PatchUtil.Cache_m4a_hq_mixer m4a_hq_mixer = PatchUtil.Search_m4a_hq_mixer();
     if (m4a_hq_mixer == PatchUtil.Cache_m4a_hq_mixer.NO)
     {
         this.NO_DPCM_PATCH.Show();
         UseDPCMCompress.Hide();
     }
     else
     {
         this.NO_DPCM_PATCH.Hide();
         UseDPCMCompress.Show();
     }
 }
Ejemplo n.º 2
0
        void RunSox()
        {
            if (File.Exists(this.TempFilename))
            {
                File.Delete(this.TempFilename);
            }
            bool   r;
            string output;

            this.TempFilename = U.mktemp(".wav");
            if (Chunnel.SelectedIndex == 0 &&
                HZ.SelectedIndex == 0 &&
                Strip.SelectedIndex == 0 &&
                Volume.SelectedIndex == 0
                )
            {
                U.CopyFile(this.FromFilename, this.TempFilename);
            }
            else
            {
                //soxでwavファイルを変換
                r = MainFormUtil.ConvertWaveBySOX(this.TempFilename,
                                                  this.FromFilename,
                                                  U.atoi(Chunnel.Text),
                                                  U.atoi(HZ.Text),
                                                  U.atoi(Strip.Text),
                                                  U.atoi(Volume.Text),
                                                  out output)
                ;
                if (r == false)
                {
                    R.ShowStopError(output);
                    return;
                }
                if (!File.Exists(this.FromFilename))
                {
                    return;
                }
                if (!File.Exists(this.TempFilename))
                {
                    return;
                }
            }


            if (this.UseDPCMCompress.SelectedIndex == 0)
            {//圧縮を使わない場合は、ここで終了
                return;
            }

            //圧縮する場合
            PatchUtil.Cache_m4a_hq_mixer m4a_hq_mixer = PatchUtil.Search_m4a_hq_mixer();
            if (m4a_hq_mixer == PatchUtil.Cache_m4a_hq_mixer.NO)
            {
                return;
            }

            /*
             *          string sfile = U.mktemp(".s");
             *          r = MainFormUtil.ConvertWav2agb(sfile
             *              , this.TempFilename
             *              , U.atoi(this.DPCMLookahead.Text)
             *              , out output);
             *          if (r == false)
             *          {
             *              File.Delete(this.TempFilename);
             *              this.TempFilename = "";
             *              R.ShowStopError(output);
             *              return;
             *          }
             */
            //自前encode
            string sfile = U.mktemp(".dpcm");

            byte[] waveBin = File.ReadAllBytes(this.TempFilename);
            byte[] dpcmBin = SongUtilDPCM.wavToDPCMByte(waveBin, U.atoi(this.DPCMLookahead.Text));
            File.WriteAllBytes(sfile, dpcmBin);
            if (!File.Exists(sfile))
            {
                File.Delete(this.TempFilename);
                this.TempFilename = "";
                return;
            }
            this.UncompressWavBIN = File.ReadAllBytes(this.TempFilename);
            File.Delete(this.TempFilename);
            this.TempFilename = sfile;

            return;
        }