aboutsummaryrefslogtreecommitdiff
path: root/wave.h
blob: a28ff4ed1206e2dc02ba6369b282cb05840bf59b (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
// wave.h

#ifndef __WAVE_H__
#define __WAVE_H__ 1

#define WAVE_ERR_NONE						0
#define WAVE_ERR_UNKNOWN_ERROR				-1
#define WAVE_ERR_RESOURCE_UNAVAILABLE		-2
#define WAVE_ERR_BAD_DEVICE_ID				-3
#define WAVE_ERR_DEVICE_DRIVER_UNAVAILABLE	-4
#define WAVE_ERR_OUT_OF_MEMORY				-5
#define WAVE_ERR_INVALID_WAVE				-6
#define WAVE_ERR_CANNOT_PLAY				-7
#define WAVE_ERR_INVALID_HANDLE				-8
#define WAVE_ERR_STILL_PLAYING				-9

typedef struct __wave
{
	int channels;				// audio channels, mono, stereo, etc...
	int samples_per_sec;		// sample output frequency
	int bits_per_sample;		// 8 or 16
	unsigned int frame_size;	// ((bps + 7) / 8) * channels
	unsigned int frame_count;	// wave duration = (1 / frequency) * frame_count
	const void *frame_data;		// pointer to the buffer containing sample frames
}wave_t;

int wave_out(wave_t *wave);

const char *wave_err_to_str(int err);

#endif