]>
Commit | Line | Data |
---|---|---|
48e2f01c | 1 | /* |
2 | * Copyright (C) 2013 nu774 | |
3 | * For conditions of distribution and use, see copyright notice in COPYING | |
4 | */ | |
5 | #ifndef WAV_READER_H | |
6 | #define WAV_READER_H | |
7 | ||
8 | #include "lpcm.h" | |
2d744bd5 | 9 | #include "pcm_reader.h" |
48e2f01c | 10 | |
11 | enum wav_error_code { | |
12 | WAV_IO_ERROR = 1, | |
13 | WAV_NO_MEMORY, | |
14 | WAV_INVALID_FORMAT, | |
15 | WAV_UNSUPPORTED_FORMAT | |
16 | }; | |
17 | ||
18 | typedef int (*wav_read_callback)(void *cookie, void *data, uint32_t size); | |
19 | typedef int (*wav_seek_callback)(void *cookie, int64_t off, int whence); | |
68543176 | 20 | typedef int64_t (*wav_tell_callback)(void *cookie); |
48e2f01c | 21 | |
22 | typedef struct wav_io_context_t { | |
23 | wav_read_callback read; | |
24 | wav_seek_callback seek; | |
68543176 | 25 | wav_tell_callback tell; |
48e2f01c | 26 | } wav_io_context_t; |
27 | ||
28 | typedef struct wav_reader_t wav_reader_t; | |
29 | ||
2d744bd5 | 30 | pcm_reader_t *wav_open(wav_io_context_t *io_ctx, void *io_cookie, |
48e2f01c | 31 | int ignore_length); |
2d744bd5 | 32 | pcm_reader_t *raw_open(wav_io_context_t *io_ctx, void *io_cookie, |
68543176 | 33 | const pcm_sample_description_t *desc); |
48e2f01c | 34 | |
35 | #endif |