wasn't sure where to post this since not many topics regarding the wrapper, anyways i implemented it into my engine and find a small memory leak, thought i'd share the small fix

in openal.pas

at
Code:
function LoadWavStream(Stream: Tstream; var format: TALenum; var data: TALvoid; var size: TALsizei; var freq: TALsizei; var loop: TALint): Boolean;
add below line
Code:
name := readname[0]+readname[1]+readname[2]+readname[3];
Code:
freemem(readname, 4);
anyways i also wrote an improved alutLoadWAVFile

Code:
procedure alutLoadWAVFile(fname: string; var format: TALenum; var data: TALvoid; var size: TALsizei; var freq: TALsizei; var loop: TALint);
//////
/// Colin Stewart (colin[at]overhertz.com)
/// 22.01.2011
//////
var
  wavFile: File;
  fPos: Integer;
  wavHeader: TWavHeader;
  name: array[0..3] of AnsiChar;
begin
  //assign file
  AssignFile(wavFile, fname);
  //open in readonly mode
  FileMode := fmOpenRead;
  Reset(wavFile, 1);
  //read wav header
  BlockRead(wavFile, wavHeader, SizeOf(TWavHeader));
  //set samplerate
  freq := WavHeader.SampleRate;
  //set format
  format := (AL_FORMAT_MONO8-1)+WavHeader.ChannelNumber+(WavHeader.BitsPerSample div 8);
  //AL_FORMAT_MONO8 = 4352
  format := 4349 + (WavHeader.ChannelNumber*2)+(WavHeader.BitsPerSample div 8);
  //Seek(wavFile
  Seek(wavFile, WavHeader.FormatHeaderSize-16);

  fPos := FilePos(wavFile);
  //run through wav file
  while not Eof(wavFile) do begin
    //read chunk name
    BlockRead(wavFile, name, 4);
    Inc(fPos, 4);
    if name = 'data' then begin
      //get size of wave data
      BlockRead(wavFile, size, 4);
      //read wave data
      GetMem(data, size);
      BlockRead(wavFile, Data^, size);
      Inc(fPos, size+4);

      //decode if needed/possible
      case WavHeader.FormatCode of
        WAV_IMA_ADPCM: ; //TODO
        WAV_MP3: ; //TODO
      end;
    end else begin
      //Skip unknown chunk(s)
      Inc(fPos, 4);
      Seek(wavFile, fPos);
    end;
  end;
end;
-Colin