summaryrefslogtreecommitdiff
path: root/dumb/dumb-kode54/include/dumb.h.ex
blob: ebaefcd7369a831454b7d1346a7bc2220a228901 (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
37
/* dumb.h: the user header file for DUMB. Include this in any of your files
 * where you wish to use the DUMB functions and variables.
 */

#ifndef DUMB_H
#define DUMB_H


#define DAT_DUH DAT_ID('D','U','H',' ')


typedef struct DUH DUH;


int install_dumb(int *errno_ptr, int (*atexit_ptr)(void (*func)(void)));
void remove_dumb(void);

DUH *load_duh(const char *filename);
void unload_duh(DUH *duh);

void register_dat_duh(void);

typedef void *(*DUH_LOAD_SIGNAL)(DUH *duh, PACKFILE *file);
typedef float *(*DUH_RENDER_SAMPLES)(DUH *duh, void *data);
typedef void (*DUH_FREE_SAMPLES)(float *samples);
typedef void (*DUH_UNLOAD_SIGNAL)(void *data);

void register_signal_type(
	long type,
	DUH_LOAD_SIGNAL    load_signal,
	DUH_RENDER_SAMPLES render_samples,
	DUH_FREE_SAMPLES   free_samples,
	DUH_UNLOAD_SIGNAL  unload_signal
);


#endif /* DUMB_H */