Einführung in DirectSound Teil 3
Datum: 31.8.00
Autor: Tim-Oliver Husser
DSoundInit ()
Die Funktion DSoundInit erstellt das DirectSound-Objekt und setzt den Cooperative
Level, also die Rechte des Objektes. Dies geschieht eigentlich genauso wie bei
DirectDraw:
bool DSoundInit (HWND hwnd)
{
if(DirectSoundCreate (NULL, &lpDirectSound, NULL) != DS_OK)
{
return (false);
}
if(lpDirectSound->SetCooperativeLevel (hwnd, DSSCL_NORMAL) != DS_OK)
{
return (false);
}
return (true);
}
Es gibt eigentlich nur zwei Änderungen gegenüber DirectDraw: Die
Konstanten heißen anders (eben DS anstatt DD) und man brauch solche Dinge
wie Bildschirmauflösung nicht einstellen. Logisch, oder ? *g*
Hier taucht eine neue Variable auf (lpDirectSound). Diese müssen wir natürlich
vorher korrekt deklarieren:
LPDIRECTSOUND lpDirectSound;
ReleaseDSound ()
Wie bei DirectDraw müssen auch bei DirectSound alle Objekte vor Programmende
zerstört werden:
void ReleaseDSound ()
{
if (dsbSound != NULL)
{
dsbSound->Release();
dsbSound = NULL;
}
if (lpDirectSound != NULL)
{
lpDirectSound->Release();
lpDirectSound = NULL;
}
}
Ich greife hier schon einmal auf den nächsten Teil vor und führe
die Variable dsbSound ein. Diese soll später den Sound beinhalten. Natürlich
muß auch sie deklariert werden:
LPDIRECTSOUNDBUFFER dsbSound;