Exemplo n.º 1
0
        public static void ExportOgg(GpkExport export, string oggfile)
        {
            if (export.Payload == null)
            {
                logger.Info("No data. The file cannot be exported to ogg.");
                return;
            }

            if (!(export.Payload is Soundwave))
            {
                logger.Info("Wrong payload data. The file cannot be exported to ogg.");
                return;
            }

            Soundwave wave = (Soundwave)export.Payload;

            if (wave.oggdata == null)
            {
                logger.Info("Empty Oggdata. The file cannot be exported to ogg.");
                return;
            }


            StreamWriter writer = new StreamWriter(File.OpenWrite(oggfile));

            writer.BaseStream.Write(wave.oggdata, 0, wave.oggdata.Length);
            writer.Close();
            writer.Dispose();

            logger.Info(String.Format("Data was saved to {0}!", Path.GetFileName(oggfile)));
        }
Exemplo n.º 2
0
    private void EquipBell(int bellIndex)
    {
        if (loadedBells == null)
        {
            loadedBells = new Dictionary <int, Soundwave>();
        }

        if (loadedBells.ContainsKey(bellIndex))
        {
            equippedBell = loadedBells[bellIndex];
        }
        else
        {
            GameObject soundWave = Instantiate(bells[bellIndex].bellSoundwave);
            equippedBell = soundWave.GetComponent <Soundwave>();
            loadedBells.Add(bellIndex, equippedBell);
        }

        equippedBell.ResetSoundwave(transform.position);
        hasEquippedBell = true;
    }
Exemplo n.º 3
0
 private void btnOggPreview_Click(object sender, EventArgs e)
 {
     try
     {
         if (selectedExport != null && selectedExport.Payload is Soundwave && waveOut.PlaybackState == PlaybackState.Stopped)
         {
             Soundwave wave = (Soundwave)selectedExport.Payload;
             waveReader = new VorbisWaveReader(new MemoryStream(wave.oggdata));
             waveOut.Init(waveReader);
             waveOut.Play();
             btnOggPreview.Text = "Stop Preview";
         }
         else if (waveOut != null && waveOut.PlaybackState == PlaybackState.Playing)
         {
             ResetOggPreview();
         }
     }
     catch (Exception ex)
     {
         logger.Info("Playback Error. " + ex);
     }
 }
Exemplo n.º 4
0
        public static void ImportOgg(GpkExport export, string oggfile)
        {
            Soundwave wave = new Soundwave();

            wave.oggfile = oggfile;

            if (oggfile != "fake")
            {
                wave.oggdata = File.ReadAllBytes(oggfile);
            }
            else
            {
                wave.oggdata = new byte[1];
            }

            export.Payload = wave;

            //Refill data buffer with normal soundwave
            export.Data = new byte[wave.GetSize()];
            BinaryWriter writer = new BinaryWriter(new MemoryStream(export.Data));

            wave.WriteData(writer, null, export);
            writer.Close();
            writer.Dispose();

            export.GetDataSize();

            if (oggfile == "fake")
            {
                logger.Info(String.Format("Fake soundfile was imported to {0}!", export.UID));
                return;
            }

            //manipulate the sound duration
            VorbisReader vorbis = null;

            vorbis = new VorbisReader(new MemoryStream(wave.oggdata), true);

            /*
             * ObjectName: Duration Type: FloatProperty Value: 0,4694785
             * ObjectName: NumChannels Type: IntProperty Value: 1
             * ObjectName: SampleRate Type: IntProperty Value: 22050
             * ObjectName: SampleDataSize Type: IntProperty Value: 20704
             */

            foreach (IProperty prop in export.Properties)
            {
                if (prop is GpkFloatProperty)
                {
                    GpkFloatProperty floatProperty = (GpkFloatProperty)prop;
                    if (floatProperty.name == "Duration")
                    {
                        floatProperty.value = (float)vorbis.TotalTime.TotalSeconds;
                    }
                }
                else if (prop is GpkIntProperty)
                {
                    GpkIntProperty intProperty = (GpkIntProperty)prop;
                    if (intProperty.name == "NumChannels")
                    {
                        intProperty.value = vorbis.Channels;
                    }
                    if (intProperty.name == "SampleRate")
                    {
                        intProperty.value = vorbis.SampleRate;
                    }
                    if (intProperty.name == "SampleDataSize")
                    {
                        intProperty.value = wave.oggdata.Length;
                    }
                }
            }

            logger.Info(String.Format("Soundfile was imported to {0}!", export.UID));
        }