Esempio n. 1
0
    public void ReadStream(Stream stream)
    {
        byte[] bytes = new byte[stream.Length];
        stream.Read(bytes, 0, bytes.Length);

        string name   = null;
        int    slot   = SunVoxUtils.OpenUnusedSlot();
        int    result = SunVox.sv_load_from_memory(slot, bytes, bytes.Length);

        if (result == 0)
        {
            name = System.Runtime.InteropServices.Marshal.PtrToStringAuto(SunVox.sv_get_song_name(slot));
        }
        SunVoxUtils.CloseSlot(slot);
        if (name != null)
        {
            name = name.Trim();
        }
        if (name != null && name.Length > 32)
        {
            name = name.Substring(0, 32);
        }
        if (name == null || name == "")
        {
            name = "imported";
        }

        data = new EmbeddedData(name, bytes, EmbeddedDataType.SunVox);
    }
Esempio n. 2
0
 public void OnDestroy()
 {
     if (slot >= 0)
     {
         SunVoxUtils.CloseSlot(slot);
     }
 }
Esempio n. 3
0
 public void Stop()
 {
     SunVoxUtils.CloseSlot(slot);
 }