This file is indexed.

/usr/include/aubio/io/sink.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
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 */