/usr/include/aubio/io/sink.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 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 | /*
Copyright (C) 2012-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_SINK_H
#define AUBIO_SINK_H
/** \file
Media sink to write blocks of consecutive audio samples to file.
To read from file, use ::aubio_source_t.
Depending on how aubio was compiled, the following sinks will be available.
When creating a new sink using ::new_aubio_sink, the new function of each of
the compiled-in sinks will be attempted, in the following order, until one of
them gets successfully created. If all sinks returned NULL, ::new_aubio_sink
will return NULL.
\b \p sink_apple_audio : ExtAudioFileRef
This sink uses CoreAudio [Extended Audio File Services]
(https://developer.apple.com/library/mac/documentation/MusicAudio/Reference/ExtendedAudioFileServicesReference/Reference/reference.html)
to write 16-bits encoded WAV files.
\b \p sink_sndfile : libsndfile
This sink uses [libsndfile](http://www.mega-nerd.com/libsndfile/) to write
16-bits encoded WAV files.
\b \p sink_wavwrite : native WAV write
A simple sink to write 16-bits PCM RIFF encoded WAV files.
\example io/test-sink.c
*/
#ifdef __cplusplus
extern "C" {
#endif
/** media sink object */
typedef struct _aubio_sink_t aubio_sink_t;
/**
create new ::aubio_sink_t
\param uri the file path or uri to write to
\param samplerate sample rate to write the file at
\return newly created ::aubio_sink_t
Creates a new sink object.
If samplerate is set to 0, the creation of the file will be delayed until
both ::aubio_sink_preset_samplerate and ::aubio_sink_preset_channels have
been called.
*/
aubio_sink_t * new_aubio_sink(const char_t * uri, uint_t samplerate);
/**
preset sink samplerate
\param s sink, created with ::new_aubio_sink
\param samplerate samplerate to preset the sink to, in Hz
\return 0 on success, 1 on error
Preset the samplerate of the sink. The file should have been created using a
samplerate of 0.
The file will be opened only when both samplerate and channels have been set.
*/
uint_t aubio_sink_preset_samplerate(aubio_sink_t *s, uint_t samplerate);
/**
preset sink channels
\param s sink, created with ::new_aubio_sink
\param channels number of channels to preset the sink to
\return 0 on success, 1 on error
Preset the samplerate of the sink. The file should have been created using a
samplerate of 0.
The file will be opened only when both samplerate and channels have been set.
*/
uint_t aubio_sink_preset_channels(aubio_sink_t *s, uint_t channels);
/**
get samplerate of sink object
\param s sink object, created with ::new_aubio_sink
\return samplerate, in Hz
*/
uint_t aubio_sink_get_samplerate(const aubio_sink_t *s);
/**
get channels of sink object
\param s sink object, created with ::new_aubio_sink
\return number of channels
*/
uint_t aubio_sink_get_channels(const aubio_sink_t *s);
/**
write monophonic vector of length hop_size to sink
\param s sink, created with ::new_aubio_sink
\param write_data ::fvec_t samples to write to sink
\param write number of frames to write
*/
void aubio_sink_do(aubio_sink_t * s, fvec_t * write_data, uint_t write);
/**
write polyphonic vector of length hop_size to sink
\param s sink, created with ::new_aubio_sink
\param write_data ::fmat_t samples to write to sink
\param write number of frames to write
*/
void aubio_sink_do_multi(aubio_sink_t * s, fmat_t * write_data, uint_t write);
/**
close sink
\param s sink object, created with ::new_aubio_sink
\return 0 on success, non-zero on failure
*/
uint_t aubio_sink_close(aubio_sink_t * s);
/**
close sink and cleanup memory
\param s sink object, created with ::new_aubio_sink
*/
void del_aubio_sink(aubio_sink_t * s);
#ifdef __cplusplus
}
#endif
#endif /* AUBIO_SINK_H */
|