protected void SetCallbacks(SoundFontLoaderCallbacks callbacks) { callbacks_handle = GCHandle.Alloc(callbacks); SfLoader.fluid_sfloader_set_callbacks(handle, callbacks.Open, callbacks.Read, callbacks.Seek, callbacks.Tell, callbacks.Close); }
public virtual void Dispose() { if (callbacks_handle.IsAllocated) { callbacks_handle.Free(); } if (handle != IntPtr.Zero) { SfLoader.delete_fluid_sfloader(handle); } handle = IntPtr.Zero; }
IntPtr handle; // fluid_sfloader_t* public static SoundFontLoader NewDefaultSoundFontLoader(Settings settings) { return(new SoundFontLoader(SfLoader.new_fluid_defsfloader(settings.Handle))); }
public SoundFontLoader(SoundFontLoaderLoadDelegate load, SoundFontLoaderFreeDelegate free) : this(SfLoader.new_fluid_sfloader((loaderHandle, filename) => load(new SoundFontLoader(loaderHandle), filename).Handle, (loaderHandle) => free(new SoundFontLoader(loaderHandle)))) { }
public AndroidAssetSoundFontLoader(Settings settings, AssetManager assetManager) : base(SfLoader.new_fluid_defsfloader(settings.Handle)) { SetCallbacks(new AssetLoaderCallbacks(assetManager)); }