2 * Copyright (C) 2013 nu774
3 * For conditions of distribution and use, see copyright notice in COPYING
14 WAV_UNSUPPORTED_FORMAT
17 typedef int (*wav_read_callback
)(void *cookie
, void *data
, uint32_t size
);
18 typedef int (*wav_seek_callback
)(void *cookie
, int64_t off
, int whence
);
19 typedef int64_t (*wav_tell_callback
)(void *cookie
);
21 typedef struct wav_io_context_t
{
22 wav_read_callback read
;
23 wav_seek_callback seek
;
24 wav_tell_callback tell
;
27 typedef struct wav_reader_t wav_reader_t
;
29 wav_reader_t
*wav_open(wav_io_context_t
*io_ctx
, void *io_cookie
,
31 wav_reader_t
*raw_open(wav_io_context_t
*io_ctx
, void *io_cookie
,
32 const pcm_sample_description_t
*desc
);
33 const pcm_sample_description_t
*wav_get_format(wav_reader_t
*reader
);
34 int wav_read_frames(wav_reader_t
*reader
, void *buffer
, unsigned nframes
);
35 int64_t wav_get_length(wav_reader_t
*reader
);
36 int64_t wav_get_position(wav_reader_t
*reader
);
37 void wav_teardown(wav_reader_t
**reader
);