source: src/io/ioutils.h @ b5de3a9

feature/autosinkfeature/constantqfeature/pitchshiftfeature/timestretch
Last change on this file since b5de3a9 was b5de3a9, checked in by Paul Brossier <piem@piem.org>, 12 months ago

[io] add helpers to validate input

  • Property mode set to 100644
File size: 2.5 KB
Line 
1/*
2  Copyright (C) 2016 Paul Brossier <piem@aubio.org>
3
4  This file is part of aubio.
5
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.
10
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.
15
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/>.
18
19*/
20
21#ifndef AUBIO_IOUTILS_H
22#define AUBIO_IOUTILS_H
23
24/** \file
25
26  Simple utility functions to validate input parameters.
27
28*/
29
30#ifdef __cplusplus
31extern "C" {
32#endif
33
34/** validate samplerate
35
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
40
41 */
42uint_t aubio_io_validate_samplerate(const char_t *kind, const char_t *path,
43    uint_t samplerate);
44
45/** validate number of channels
46
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
51
52 */
53uint_t aubio_io_validate_channels(const char_t *kind, const char_t *path,
54    uint_t channels);
55
56/** validate length of input
57
58  \param kind       the object kind to report on
59  \param path       the path to report on
60  \param max_size   maximum number of frames that can be written
61  \param write_data_length actual length of input vector/matrix
62  \param write number of samples asked
63
64  \return write or the maximum number of frames that can be written
65*/
66uint_t
67aubio_sink_validate_input_length(const char_t *kind, const char_t *path,
68    uint_t max_size, uint_t write_data_length, uint_t write);
69
70/** validate height of input
71
72  \param kind       the object kind to report on
73  \param path       the path to report on
74  \param max_size   maximum number of channels that can be written
75  \param write_data_height actual height of input matrix
76
77  \return write_data_height or the maximum number of channels
78*/
79uint_t
80aubio_sink_validate_input_channels(const char_t *kind, const char_t *path,
81    uint_t sink_channels, uint_t write_data_height);
82
83#ifdef __cplusplus
84}
85#endif
86
87#endif /* AUBIO_IOUTILS_H */
Note: See TracBrowser for help on using the repository browser.