with Interfaces.C.Strings; package body Sf.Audio.SoundBuffer is use Interfaces.C.Strings; --////////////////////////////////////////////////////////// --/ Create a new sound buffer and load it from a file --/ --/ @param Filename Path of the music file to open --/ --/ @return A new sfSoundBuffer object (NULL if failed) --/ --////////////////////////////////////////////////////////// function CreateFromFile (Filename : String) return sfSoundBuffer_Ptr is function Internal (Filename : chars_ptr) return sfSoundBuffer_Ptr; pragma Import (C, Internal, "sfSoundBuffer_createFromFile"); Temp : chars_ptr := New_String (Filename); R : constant sfSoundBuffer_Ptr := Internal (Temp); begin Free (Temp); return R; end CreateFromFile; --////////////////////////////////////////////////////////// --/ Save a sound buffer to a file --/ --/ @param SoundBuffer Sound buffer to save --/ @param Filename Path of the sound file to write --/ --/ @return sfTrue if saving has been successful --/ --////////////////////////////////////////////////////////// function SaveToFile (SoundBuffer : sfSoundBuffer_Ptr; Filename : String) return sfBool is function Internal (SoundBuffer : sfSoundBuffer_Ptr; Filename : chars_ptr) return sfBool; pragma Import (C, Internal, "sfSoundBuffer_saveToFile"); Temp : chars_ptr := New_String (Filename); R : constant sfBool := Internal (SoundBuffer, Temp); begin Free (Temp); return R; end SaveToFile; end Sf.Audio.SoundBuffer;