snd_add(var handle, var offset, void* Sample, var length)

Fügt neue Sound-Daten in den Buffer eines gerade spielenden oder geloopten Sounds hinein. Läßt sich dazu benutzen, eigene Sound-Daten durch den Sound-Abspieler der Engine laufen zu lassen, beispielsweise für eine VolP-Implementation. A7.82  LC 

Parameter:

handle - Ziel-Sound-Handle, das von der Play-Funktion zurückgeliefert wurde.
offset - Startadresse zum Schreiben in den Ziel-Sound-Buffer in Bytes.
Sample - Pointer auf den Sounddaten-Buffer; muß dasselbe Format und dieselbe Datenrate haben wie der Zielsound.
length - Größe der Quell-Sounddaten in Bytes. offset+length kann über das Ende des Ziel-Soundbuffers hinausgehen. In diesem Fall werden die Sounddaten zyklisch vom Beginn des Zielbuffers an wiederholt.

Rückgabewerte:

Adresse des Endes der Sounddateien im Ziel-Soundbuffer in Bytes. Kann, wenn die Daten zyklisch wiederholt wurden, kleiner sein als offset+length

Geschwindigkeit:

Mittel

Bemerkungen:

Beispiel (lite-C):

#include <acknex.h>
#include <default.c>
#include <d3d9.h>
function main() { while (!key_space) wait(1); // wait until key pressed SOUND* sine_snd = snd_create("#4"); // 4 seconds sine wave SOUND* whamm_snd = snd_create("bumm.ogg"); // test sound (16 bits PCM 44.1 kHz sample rate) // retrieve buffer and length from the test sound DSBUFFERDESC *dsBufferDesc; byte** pSampleBuffer; snd_buffer(whamm_smd,(void**)&dsBufferDesc,(void***)&pSampleBuffer); var length = dsBufferDesc->dwBufferBytes; var h = snd_loop(sine_snd,100,0); // add the test sound twice into the playing sine wave buffer snd_add(h,0,*pSampleBuffer,length); snd_add(h,length,*pSampleBuffer,length); }

Siehe auch:

SOUND, snd_create, snd_buffer, snd_play, snd_playing

► Aktuelle Version Online