4 typedef struct pcm_reader_t pcm_reader_t
;
6 typedef struct pcm_reader_vtbl_t
{
7 const pcm_sample_description_t
*(*get_format
)(pcm_reader_t
*);
8 int64_t (*get_length
)(pcm_reader_t
*);
9 int64_t (*get_position
)(pcm_reader_t
*);
10 int (*read_frames
)(pcm_reader_t
*, void *, unsigned);
11 void (*teardown
)(pcm_reader_t
**);
15 pcm_reader_vtbl_t
*vtbl
;
19 const pcm_sample_description_t
*pcm_get_format(pcm_reader_t
*r
)
21 return r
->vtbl
->get_format(r
);
25 int64_t pcm_get_length(pcm_reader_t
*r
)
27 return r
->vtbl
->get_length(r
);
31 int64_t pcm_get_position(pcm_reader_t
*r
)
33 return r
->vtbl
->get_position(r
);
37 int64_t pcm_read_frames(pcm_reader_t
*r
, void *data
, unsigned nframes
)
39 return r
->vtbl
->read_frames(r
, data
, nframes
);
43 void pcm_teardown(pcm_reader_t
**r
)
45 (*r
)->vtbl
->teardown(r
);