constructor TSoundHolder.Init(_Man: PSoundMan; const Parameters: TAudioParameters);
begin
end;

destructor TSoundHolder.Done;
begin
end;

procedure TAudio.OnInit;
begin
  if FReady then
    Exit;

  Log('TAudio: OpenSL initialized');
  FReady := True;
end;

procedure TAudio.OnDone;
begin
  if FReady then begin
    Log('TAudio: OpenAL finalized');
  end;
end;

procedure TAudio.PlayFile(const Filename: String);
var
  Id: TSound;
begin
  // FIXME is there a resource leak?
  Id := LoadSound(FileName);
  Play(Id);
end;

function TAudio.LoadSound(const Filename: String): TSound;
begin
  Move(Filename[1], Result, 0);
end;

procedure TAudio.FreeSound(Sound: TSound);
begin
end;

procedure TAudio.Play(Sound: TSound);
begin
end;

procedure TAudio.SetSoundVolume(Volume: Single);
begin
end;

function TAudio.IsPlaying(Sound: TSound): Boolean;
begin
  Result := False
end;

procedure TSound2.Play;
begin
end;

procedure TSound2.Stop;
begin
end;
