alGetSource: Unterschied zwischen den Versionen
K (Formatierungfehler behoben) |
(AL_SOURCE_STATE ergänzt) |
||
Zeile 96: | Zeile 96: | ||
=== AL_SOURCE_STATE === | === AL_SOURCE_STATE === | ||
− | : | + | : Gibt den aktuellen Zustand des Source-Objektes zurück. Ein Source-Objekt kann folgende Zustände haben: '''AL_INITIAL''', '''AL_PLAYING''', '''AL_PAUSED''' oder '''AL_STOPPED'''. Um den Zustand zu ändern, können die Funktionen [[alSourcePlay]], [[alSourcePause]], [[alSourceStop]] und [[alSourceRewind]] genutzt werden. '''AL_SOURCE_STATE''' ist als Parameter nur für die Funktionsvariante '''alGetSourcei''' zulässig. |
=== AL_SOURCE_TYPE === | === AL_SOURCE_TYPE === |
Version vom 8. April 2008, 14:59 Uhr
(Mehr Informationen/weitere Artikel) {{{1}}} |
Inhaltsverzeichnis
- 1 alGetSource
- 1.1 Name
- 1.2 Delphi-Spezifikation
- 1.3 Parameter
- 1.4 Beschreibung
- 1.4.1 AL_BUFFER
- 1.4.2 AL_BUFFERS_PROCESSED
- 1.4.3 AL_BUFFERS_QUEUED
- 1.4.4 AL_CONE_INNER_ANGLE
- 1.4.5 AL_CONE_OUTER_ANGLE
- 1.4.6 AL_CONE_OUTER_GAIN
- 1.4.7 AL_DIRECTION
- 1.4.8 AL_GAIN
- 1.4.9 AL_LOOPING
- 1.4.10 AL_MAX_GAIN
- 1.4.11 AL_MAX_DISTANCE
- 1.4.12 AL_MIN_GAIN
- 1.4.13 AL_PITCH
- 1.4.14 AL_POSITION
- 1.4.15 AL_REFERENCE_DISTANCE
- 1.4.16 AL_ROLLOFF_FACTOR
- 1.4.17 AL_SOURCE_RELATIVE
- 1.4.18 AL_SOURCE_STATE
- 1.4.19 AL_SOURCE_TYPE
- 1.4.20 AL_VELOCITY
- 1.5 Hinweise
- 1.6 Änderungen
- 1.7 Fehlermeldungen
- 1.8 Siehe auch
alGetSource
Name
alGetSource - Liefert Eigenschaften eines Source-Objektes von OpenAL.
Delphi-Spezifikation
procedure alGetSource3f(source: TALuint; param: TALenum; v1: PALfloat; v2: PALfloat; v3: PALfloat); procedure alGetSourcef(source: TALuint; param: TALenum; value: PALfloat); procedure alGetSourcefv(source: TALuint; param: TALenum; values: PALfloat); procedure alGetSource3i(source: TALunit; param: TALenum; v1: PALint; v2: PALint; v3: PALint); procedure alGetSourcei(source: TALunit; param: TALenum; value: PALint); procedure alGetSourceiv(source: TALuint; param: TALenum; values: PALint);
Parameter
source | Source-Objekt, dessen Eigenschaft bestimmt werden soll |
---|---|
param | Symbolische Konstante, welche die zurückzugebende Eigenschaft bestimmt |
value | Zeiger auf den TALfloat-/TALint-Wert, der zurückgegeben wird (nur bei alGetSourcef und alGetSourcei) |
values | Zeiger auf einen TALfloat-/TALint-Vektor, in welchem die zurückgegebenen Werte abgelegt werden (nur bei alGetSourcefv und alGetSourceiv) |
v1, v2, v3 | Zeiger auf TALfloat-/TALint-Werte, in welchen die zurückgegebenen Werte abgespeichert werden (nur bei alGetSource3f und alGetSource3i) |
Beschreibung
Die Funktion alGetSource bzw. ihre Varianten für verschiedene Wertargumente liefern Attribute eines Source-Objektes der AL zurück. Welches Attribut genau zurückgeliefert wird, hängt vom Wert param ab.
Folgende Werte sind für den Parameter param zulässig:
AL_BUFFER
- Gibt den Namen des aktuellen Pufferobjektes an. AL_BUFFER ist nur für die Funktionsvarianten alGetSourcei und alGetSourceiv zulässig.
AL_BUFFERS_PROCESSED
- Gibt die Anzahl der schon durch das Source-Objekt source abgespielten Puffer zurück. Bei einem Source-Objekt im Zustand AL_STOPPED sind alle Puffer verarbeitet, bei einem Source-Objekt mit dem Zustand AL_INITIAL ist noch kein Puffer verarbeitet. Der Rückgabewert ist 0, wenn der gegenwärtige und einzige Puffer der Nullpuffer ist. AL_BUFFERS_PROCESSED ist nur für die Funktionsvarianten alGetSourcei und alGetSourceiv zulässig.
AL_BUFFERS_QUEUED
- Gibt die Anzahl der an source angehängten Puffer zurück. Diese Zahl beinhaltet sowohl die Puffer, welche noch nicht abgespielt wurden, als auch den gegenwärtig abgespielten Puffer und die schon abgespielten Puffer. Der Rückgabewert ist 0, wenn der gegenwärtige und einzige Puffer der Nullpuffer ist. AL_BUFFERS_QUEUED ist nur für die Funktionsvarianten alGetSourcei und alGetSourceiv zulässig.
AL_CONE_INNER_ANGLE
- (unvollständig)
AL_CONE_OUTER_ANGLE
- (unvollständig)
AL_CONE_OUTER_GAIN
- (unvollständig)
AL_DIRECTION
- (unvollständig)
AL_GAIN
- (unvollständig)
AL_LOOPING
- Gibt an, ob das Source-Objekt nicht in den Status AL_STOPPED wechselt, sobald es alle angehängten Puffer abgespielt hat. In diesem Fall ist der Rückgabewert AL_TRUE, andernfalls AL_FALSE. Ein Source-Objekt im Zustand AL_LOOPING wechselt, sobald es alle mit ihm verbundenen Puffer abgearbeitet hat, in den Zustand AL_INITIAL und danach in den Zustand AL_PLAYING, um dann die Pufferdaten wieder von vorn abzuspielen. Vorgabewert für AL_LOOPING ist AL_FALSE. AL_LOOPING ist nur für Aufrufe mit alGetSourcei und alGetSourceiv zulässig.
AL_MAX_GAIN
- (unvollständig)
AL_MAX_DISTANCE
- (unvollständig)
AL_MIN_GAIN
- (unvollständig)
AL_PITCH
- (unvollständig)
AL_POSITION
- Gibt die aktuelle Position des Source-Objektes zurück. Der Standardwert ist (0.0, 0.0, 0.0). AL_POSITION darf nicht in alSourcei oder alSourcef benutzt werden sondern nur in den Funktionsvarianten für mehrere Wertargumente, also alSource3f, alSource3i, alSourcefv oder alSourceiv.
AL_REFERENCE_DISTANCE
- (unvollständig)
AL_ROLLOFF_FACTOR
- (unvollständig)
AL_SOURCE_RELATIVE
- Gibt zurück, ob die Position, Geschwindigkeit und Richtung eines Source-Objektes relativ zur Position des Listener-Objektes interpretiert werden oder nicht. Falls dem so ist, wird AL_TRUE zurückgegeben, andernfalls AL_FALSE. Der Standardwert hierfür ist AL_FALSE. AL_SOURCE_RELATIVE ist nur für alSourcei und alSourceiv zulässig.
AL_SOURCE_STATE
- Gibt den aktuellen Zustand des Source-Objektes zurück. Ein Source-Objekt kann folgende Zustände haben: AL_INITIAL, AL_PLAYING, AL_PAUSED oder AL_STOPPED. Um den Zustand zu ändern, können die Funktionen alSourcePlay, alSourcePause, alSourceStop und alSourceRewind genutzt werden. AL_SOURCE_STATE ist als Parameter nur für die Funktionsvariante alGetSourcei zulässig.
AL_SOURCE_TYPE
- Gibt den Typ des Source-Objektes zurück. Mögliche Rückgabewerte sind AL_UNDETERMINED, AL_STATIC und AL_STREAMING. Der Standardwert hierfür ist AL_UNDETERMINED und alle Source-Objekte befinden sich direkt nach Erzeugung mit alGenSources in diesem Zustand.
- Wenn ein Puffer mit dem Funktionsaufruf alSourcei(sourceID, AL_BUFFER, bufferID) an ein Source-Objekt angehängt wird, so ändert dieses Objekt seinen Typ zu AL_STATIC. Wird der erste Puffer hingegen durch alSourceQueueBuffers an ein Source-Objekt angehängt, so wechselt dieses seinen Typ zu AL_STREAMING. Der Versuch, den "Nullpuffer" durch den Aufruf alSourcei(source, AL_BUFFER, nil) an ein Source-Objekt anzuhängen, setzt den Typ des Source-Objektes auf AL_UNDETERMINED zurück, egal in welchem Zustand es vorher war; das Anhängen irgendeines anderen Puffers (außer dem Nullpuffer) versetzt das Source-Objekt in den Zustand AL_STATIC.
- AL_SOURCE_TYPE ist nur für Aufrufe mit alGetSourcei und alGetSourceiv zulässig.
AL_VELOCITY
- Gibt die Geschwindigkeit (Schnelligkeit und Richtung) des Source-Objektes im Koordinatensystem zurück. Die Geschwindigkeit beeinflußt jedoch nicht die Position des Objektes. OpenAL berechnet die Geschwindigkeit nicht aus aufeinanderfolgenden Änderungen mit AL_POSITION, ebenso wenig wird die Position des Objektes über die Zeit anhand der angegebenen Geschwindigkeit angepasst. Alle diese Berechnungen muss die jeweilige Anwendung selbst übernehmen. Für die Belange der Soundverarbeitung sind Position und Geschwindigkeit unabhängige Parameter, die verschiedene Aspekte des Klangs auswirken. Die Geschwindigkeit spielt z.B. bei der Berechnung des Dopplereffektes eine Rolle. AL_VELOCITY ist nur für alGetSourcefv, alGetSource3f, alGetSourceiv und alGetSource3i als Parameter zulässig.
Hinweise
Tritt bei der Ausführung ein Fehler auf, so lässt sich dieser mit alGetError abfragen.
Änderungen
Folgende Erweiterungen hat die Funktion erfahren:
Ab OpenAL-Version 1.1
Seit OpenAL 1.1 existiert die Funktion auch in den Ausprägungen für drei Fließkomma- bzw. Ganzzahlwerte, alGetSource3f bzw. alGetSource3i. Ebenso ist alGetSourceiv neu hinzugekommen.
Fehlermeldungen
AL_INVALID_ENUM wird generiert, wenn der Wert für param unzulässig ist.
AL_INVALID_NAME wird generiert, sofern source kein gültiges Source-Objekt ist. (Siehe auch alIsSource.)
AL_INVALID_OPERATION wird generiert, falls es keinen aktuellen Kontext gibt. (Siehe dazu auch alcMakeContextCurrent.)
AL_INVALID_VALUE wird generiert, wenn die Wertezeiger unzulässig sind. Im Fall von alGetSourcei und alGetSourcef betrifft das den Zeiger value, im Fall der Funktionsvarianten für Vektorwerte (alGetSourcefv und alGetSourceiv) betrifft dies values und im Fall der Funktionsvarianten für drei Wertargumente, alGetSource3f und alGetSource3i, ist mindestens einer der Zeiger v1, v2 oder v3 betroffen.