summaryrefslogtreecommitdiffstats
path: root/Alc/evtqueue.h
blob: 95702d793a6213d06af013204e5d930953a825b6 (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
#ifndef AL_EVTQUEUE_H
#define AL_EVTQUEUE_H

#include "AL/al.h"

#include "alMain.h"

typedef struct MidiEvent {
    ALuint64 time;
    ALuint event;
    union {
        ALuint val[2];
        struct {
            ALvoid *data;
            ALsizei size;
        } sysex;
    } param;
} MidiEvent;

typedef struct EvtQueue {
    MidiEvent *events;
    ALsizei pos;
    ALsizei size;
    ALsizei maxsize;
} EvtQueue;

void InitEvtQueue(EvtQueue *queue);
void ResetEvtQueue(EvtQueue *queue);
ALenum InsertEvtQueue(EvtQueue *queue, const MidiEvent *evt);

#endif /* AL_EVTQUEUE_H */