2 Copyright (C) 2016 Paul Brossier <piem@aubio.org>
4 This file is part of aubio.
6 aubio is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
11 aubio is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with aubio. If not, see <http://www.gnu.org/licenses/>.
21 #ifndef AUBIO_IOUTILS_H
22 #define AUBIO_IOUTILS_H
26 Simple utility functions to validate input parameters.
34 /** validate samplerate
36 \param kind the object kind to report on
37 \param path the object properties to report on
38 \param samplerate the object properties to report on
39 \return 0 if ok, non-zero if validation failed
42 uint_t aubio_io_validate_samplerate(const char_t *kind, const char_t *path,
45 /** validate number of channels
47 \param kind the object kind to report on
48 \param path the object properties to report on
49 \param channels the object properties to report on
50 \return 0 if ok, non-zero if validation failed
53 uint_t aubio_io_validate_channels(const char_t *kind, const char_t *path,
56 /** validate length of source output
58 \param kind the object kind to report on
59 \param path the path to report on
60 \param hop_size number of frames to be read
61 \param read_data_length actual length of input
63 \return hop_size or the maximum number of frames that can be written
66 aubio_source_validate_input_length(const char_t *kind, const char_t *path,
67 uint_t hop_size, uint_t read_data_length);
69 /** validate height of source output
71 \param kind the object kind to report on
72 \param path the path to report on
73 \param source_channels maximum number of channels that can be written
74 \param read_data_height actual height of input
76 \return write_data_height or the maximum number of channels
79 aubio_source_validate_input_channels(const char_t *kind, const char_t *path,
80 uint_t source_channels, uint_t read_data_height);
82 /** validate length of sink input
84 \param kind the object kind to report on
85 \param path the path to report on
86 \param max_size maximum number of frames that can be written
87 \param write_data_length actual length of input
88 \param write number of samples asked
90 \return write or the maximum number of frames that can be written
93 aubio_sink_validate_input_length(const char_t *kind, const char_t *path,
94 uint_t max_size, uint_t write_data_length, uint_t write);
96 /** validate height of sink input
98 \param kind the object kind to report on
99 \param path the path to report on
100 \param sink_channels maximum number of channels that can be written
101 \param write_data_height actual height of input matrix
103 \return write_data_height or the maximum number of channels
106 aubio_sink_validate_input_channels(const char_t *kind, const char_t *path,
107 uint_t sink_channels, uint_t write_data_height);
113 #endif /* AUBIO_IOUTILS_H */