alGetBuffer

Aus DGL Wiki
(Weitergeleitet von alGetBufferiv)
Wechseln zu: Navigation, Suche

alGetBuffer

Name

alGetBuffer - Liefert Eigenschaften eines Puffers der OpenAL.


Delphi-Spezifikation

procedure alGetBuffer3f(buffer: TALunit; param: TALenum; v1: PALfloat; v2: PALfloat; v3: PALfloat);
procedure alGetBufferf(buffer: TALunit; param: TALenum; value: PALfloat);
procedure alGetBufferfv(buffer: TALunit; param: TALenum; values: PALfloat);
procedure alGetBuffer3i(buffer: TALunit; param: TALenum; v1: PALint; v2: PALint; v3: PALint);
procedure alGetBufferi(buffer: TALunit; param: TALenum; value: PALint);
procedure alGetBufferfi(buffer: TALunit; param: TALenum; values: PALint);


Parameter

buffer Name des Puffers, dessen Eigenschaften bestimmt werden sollen.
param Symbolische Konstante, welche die zurückzugebende Eigenschaft festlegt
value Zeiger auf eine TALfloat- bzw. TALint-Variable, in welcher der zurückgegebene Wert abgelegt wird (nur bei alGetBufferf bzw. alGetBufferi)
values Zeiger auf einen Array von TALfloat- bzw. TALint-Werten, in welchen die zurückgegebenen Werte gespeichert werden (nur bei alGetBufferfv bzw. alGetBufferiv)
v1, v2, v3 Zeiger auf TALfloat- bzw. TALint-Variablen, in denen die zurückgegebenen Werte gespeichert werden (nur bei alGetBuffer3f bzw. algetBuffer3i)


Beschreibung

Die Funktion alGetBuffer bzw. ihre Varianten für verschiedene Wertargumente liefern Attribute eines Puffers der AL zurück. Welches Attribut genau zurückgeliefert wird, hängt vom Parameter param ab.

Folgende Werte sind für den Parameter param zulässig:

AL_BITS

Gibt die Anzahl der Bits pro Sample für die Daten im Puffer buffer zurück. Dieser Wert kann nur durch einen Aufruf von alBufferData gesetzt werden, typische Werte sind 8 oder 16. AL_BITS ist nur für die Funktionsvarianten alGetBufferi und alGetBufferiv als Parameter zulässig.

AL_CHANNELS

Gibt die Anzahl der Audiokanäle der im Puffer gespeicherten Daten zurück. Der Wert kann über alBufferData gesetzt werden. AL_CHANNELS ist nur für die Funktionsvarianten alGetBufferi und alGetBufferiv als Parameter zulässig.

AL_FREQUENCY

Gibt die Frequenz der Audiodaten in Hertz (Hz) bzw. in Samples pro Sekunde zurück. Der Wert kann über alBufferData gesetzt werden. AL_FREQUENCY ist nur für die Funktionsvarianten alGetBufferi und alGetBufferiv als Parameter zulässig.

AL_SIZE

Gibt die Größe der Pufferdaten in Bytes zurück. Dieser Wert kann nur durch einen Aufruf von alBufferData gesetzt werden. AL_SIZE ist nur für die Funktionsvarianten alGetBufferi und alGetBufferiv als Parameter zulässig.


Hinweise

Für die Funktionsvarianten alGetBuffer3f, alGetBufferf, alGetBufferfv und alGetBuffer3i sind in der Spezifikation für OpenAL 1.1 keine relevanten Puffereigenschaften festgelegt, welche mit diesen Funktionen ermittelt werden können. Jedoch könnte eine OpenAL-Erweiterung diese Funktionen benutzen.

Wer sich alBufferData anschaut, wird feststellen, dass dort auch das Format der Audiodaten im Puffer festgelegt wird, aber alGetBuffer keinen Parameter hat, der diese Angabe direkt zurückliefert. Jedoch lässt sich das Format mit Hilfe von alGetBuffer durch zwei kombinierte Aufrufe mit den Parameter AL_BITS und AL_CHANNELS bestimmen.

Falls bei der Abarbeitung ein Fehler auftritt, kann dieser mit alGetError abgefragt werden.


Änderungen

Folgende Erweiterungen hat die Funktion erfahren:

Ab OpenAL-Version 1.1

In der OpenAL-Version 1.1 wurden die Funktionsvarianten für drei Wertargumente und für Vektorwerte, also alGetBuffer3f, alGetBufferfv, alGetBuffer3i und alGetBufferiv, eingeführt.


Fehlermeldungen

AL_INVALID_ENUM wird generiert, wenn der angegebene Parameter param unzulässig ist.

AL_INVALID_NAME wird generiert, sofern der angegebene Puffer buffer keine Eigenschaften hat (d.h. der Nullpuffer ist) oder nicht existiert. (Siehe auch alIsBuffer.)

AL_INVALID_VALUE wird generiert, falls die Wertezeiger ungültig sind. Im Fall von alGetBufferf und alGetBufferi betrifft dies value, für den Fall der Funktionsvarianten für Vektoren (alGetBufferfv bzw. alGetBufferiv) betrifft dies den Parameter values und im Fall der Funktionsvarianten mit drei Wertargumenten, alGetBuffer3f und alGetBuffer3i ist mindestens einer der Zeiger v1, v2 oder v3 unzulässig.


Siehe auch

alBuffer, alBufferData