示例#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);
    }
示例#2
0
    private void onBinaryFileLoaded()
    {
        var music = SunVox.sv_load_from_memory(0, sunvox_song, sunvox_song_size);

        if (music >= 0)
        {
            log("Loaded.");
        }
        else
        {
            log("Load error.");
        }

        SunVox.sv_volume(0, 256);

        var songName = Marshal.PtrToStringAnsi(SunVox.sv_get_song_name(0));

        log("song_name: " + songName);

        SunVox.sv_play_from_beginning(0);
    }