/usr/include/aubio/io/source_wavread.h is in libaubio-dev 0.4.3-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 | /*
Copyright (C) 2014 Paul Brossier <piem@aubio.org>
This file is part of aubio.
aubio is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
aubio is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with aubio. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef AUBIO_SOURCE_WAVREAD_H
#define AUBIO_SOURCE_WAVREAD_H
/** \file
Read from file using custom wav reading routines.
Avoid including this file directly! Prefer using ::aubio_source_t instead to
make your code portable.
To write to file, use ::aubio_sink_t.
References:
- http://netghost.narod.ru/gff/graphics/summary/micriff.htm
- https://ccrma.stanford.edu/courses/422/projects/WaveFormat/
\example io/test-source_wavread.c
*/
#ifdef __cplusplus
extern "C" {
#endif
/** wavread media source object */
typedef struct _aubio_source_wavread_t aubio_source_wavread_t;
/**
create new ::aubio_source_wavread_t
\param uri the file path or uri to read from
\param samplerate sampling rate to view the fie at
\param hop_size the size of the blocks to read from
Creates a new source object. If `0` is passed as `samplerate`, the sample
rate of the original file is used.
The samplerate of newly created source can be obtained using
::aubio_source_wavread_get_samplerate.
*/
aubio_source_wavread_t * new_aubio_source_wavread(const char_t * uri, uint_t samplerate, uint_t hop_size);
/**
read monophonic vector of length hop_size from source object
\param s source object, created with ::new_aubio_source_wavread
\param read_to ::fvec_t of data to read to
\param[out] read upon returns, equals to number of frames actually read
Upon returns, `read` contains the number of frames actually read from the
source. `hop_size` if enough frames could be read, less otherwise.
*/
void aubio_source_wavread_do(aubio_source_wavread_t * s, fvec_t * read_to, uint_t * read);
/**
read polyphonic vector of length hop_size from source object
\param s source object, created with ::new_aubio_source_wavread
\param read_to ::fmat_t of data to read to
\param read upon returns, equals to number of frames actually read
Upon returns, `read` contains the number of frames actually read from the
source. `hop_size` if enough frames could be read, less otherwise.
*/
void aubio_source_wavread_do_multi(aubio_source_wavread_t * s, fmat_t * read_to, uint_t * read);
/**
get samplerate of source object
\param s source object, created with ::new_aubio_source_wavread
\return samplerate, in Hz
*/
uint_t aubio_source_wavread_get_samplerate(aubio_source_wavread_t * s);
/**
get number of channels of source object
\param s source object, created with ::new_aubio_source_wavread
\return number of channels
*/
uint_t aubio_source_wavread_get_channels (aubio_source_wavread_t * s);
/**
seek source object
\param s source object, created with ::new_aubio_source_wavread
\param pos position to seek to, in frames
\return 0 if sucessful, non-zero on failure
*/
uint_t aubio_source_wavread_seek (aubio_source_wavread_t *s, uint_t pos);
/**
get the duration of source object, in frames
\param s source object, created with ::new_aubio_source_sndfile
\return number of frames in file
*/
uint_t aubio_source_wavread_get_duration (const aubio_source_wavread_t *s);
/**
close source
\param s source object, created with ::new_aubio_source_wavread
\return 0 if sucessful, non-zero on failure
*/
uint_t aubio_source_wavread_close (aubio_source_wavread_t *s);
/**
close source and cleanup memory
\param s source object, created with ::new_aubio_source_wavread
*/
void del_aubio_source_wavread(aubio_source_wavread_t * s);
#ifdef __cplusplus
}
#endif
#endif /* AUBIO_SOURCE_WAVREAD_H */
|