/usr/include/aubio/io/sink_sndfile.h is in libaubio-dev 0.4.5-1build1.
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 | /*
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_SNDFILE_H
#define AUBIO_SINK_SNDFILE_H
/** \file
Write to file using [libsndfile](http://www.mega-nerd.com/libsndfile/)
Avoid including this file directly! Prefer using ::aubio_sink_t instead to
make your code portable.
To read from file, use ::aubio_source_t.
\example io/test-sink_sndfile.c
*/
#ifdef __cplusplus
extern "C" {
#endif
/** sink_sndfile object */
typedef struct _aubio_sink_sndfile_t aubio_sink_sndfile_t;
/**
create new ::aubio_sink_sndfile_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_sndfile_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_sndfile_t * new_aubio_sink_sndfile(const char_t * uri, uint_t samplerate);
/**
preset sink samplerate
\param s sink, created with ::new_aubio_sink_sndfile
\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_sndfile_preset_samplerate(aubio_sink_sndfile_t *s, uint_t samplerate);
/**
preset sink channels
\param s sink, created with ::new_aubio_sink_sndfile
\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_sndfile_preset_channels(aubio_sink_sndfile_t *s, uint_t channels);
/**
get samplerate of sink object
\param s sink object, created with ::new_aubio_sink_sndfile
\return samplerate, in Hz
*/
uint_t aubio_sink_sndfile_get_samplerate(const aubio_sink_sndfile_t *s);
/**
get channels of sink object
\param s sink object, created with ::new_aubio_sink_sndfile
\return number of channels
*/
uint_t aubio_sink_sndfile_get_channels(const aubio_sink_sndfile_t *s);
/**
write monophonic vector of length hop_size to sink
\param s sink, created with ::new_aubio_sink_sndfile
\param write_data ::fvec_t samples to write to sink
\param write number of frames to write
*/
void aubio_sink_sndfile_do(aubio_sink_sndfile_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_sndfile
\param write_data ::fmat_t samples to write to sink
\param write number of frames to write
*/
void aubio_sink_sndfile_do_multi(aubio_sink_sndfile_t * s, fmat_t * write_data, uint_t write);
/**
close sink
\param s sink_sndfile object, created with ::new_aubio_sink_sndfile
\return 0 on success, non-zero on failure
*/
uint_t aubio_sink_sndfile_close(aubio_sink_sndfile_t * s);
/**
close sink and cleanup memory
\param s sink, created with ::new_aubio_sink_sndfile
*/
void del_aubio_sink_sndfile(aubio_sink_sndfile_t * s);
#ifdef __cplusplus
}
#endif
#endif /* AUBIO_SINK_SNDFILE_H */
|