summaryrefslogtreecommitdiff
path: root/src/libultra/audio/sl.c
blob: ad9949d1142733cf2783c9be8042fa5be303c870 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include "libaudio.h"
#include "stddef.h"

ALGlobals* alGlobals = NULL;

void alInit(ALGlobals* g, ALSynConfig* c) {
    if (alGlobals == NULL) {
        alGlobals = g;
        alSynNew(&alGlobals->drvr, c);
    }
}

void alClose(ALGlobals* glob) {
    if (alGlobals != NULL) {
        alSynDelete(&glob->drvr);
        alGlobals = NULL;
    }
}

void alLink(ALLink* ln, ALLink* to) {
    ln->next = to->next;
    ln->prev = to;
    if (to->next != NULL) {
        to->next->prev = ln;
    }
    to->next = ln;
}

void alUnlink(ALLink* ln) {
    if (ln->next != NULL) {
        ln->next->prev = ln->prev;
    }
    if (ln->prev != NULL) {
        ln->prev->next = ln->next;
    }
}