aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Alc/midi/base.c9
-rw-r--r--OpenAL32/Include/alMidi.h2
2 files changed, 11 insertions, 0 deletions
diff --git a/Alc/midi/base.c b/Alc/midi/base.c
index dfa6d1ec..cd6293d2 100644
--- a/Alc/midi/base.c
+++ b/Alc/midi/base.c
@@ -368,15 +368,24 @@ void ALsfpreset_Construct(ALsfpreset *self)
self->Preset = 0;
self->Bank = 0;
+ self->Sounds = NULL;
+ self->NumSounds = 0;
self->id = 0;
}
void ALsfpreset_Destruct(ALsfpreset *self)
{
+ ALsizei i;
+
FreeThunkEntry(self->id);
self->id = 0;
+ for(i = 0;i < self->NumSounds;i++)
+ DecrementRef(&self->Sounds[i]->ref);
+ free(self->Sounds);
+ self->Sounds = NULL;
+ self->NumSounds = 0;
}
diff --git a/OpenAL32/Include/alMidi.h b/OpenAL32/Include/alMidi.h
index 38042693..cd5249a2 100644
--- a/OpenAL32/Include/alMidi.h
+++ b/OpenAL32/Include/alMidi.h
@@ -69,6 +69,8 @@ typedef struct ALsfpreset {
ALint Preset; /* a.k.a. MIDI program number */
ALint Bank; /* MIDI bank 0...127, or percussion (bank 128) */
+ ALfontsound **Sounds;
+ ALsizei NumSounds;
ALuint id;
} ALsfpreset;