import 0.1.7.1
[aubio.git] / src / resample.h
1 /*
2          Copyright (C) 2003 Paul Brossier
3
4          This program is free software; you can redistribute it and/or modify
5          it under the terms of the GNU General Public License as published by
6          the Free Software Foundation; either version 2 of the License, or
7          (at your option) any later version.
8
9          This program is distributed in the hope that it will be useful,
10          but WITHOUT ANY WARRANTY; without even the implied warranty of
11          MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12          GNU General Public License for more details.
13
14          You should have received a copy of the GNU General Public License
15          along with this program; if not, write to the Free Software
16          Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17          
18 */
19
20 #ifndef _RESAMPLE_H
21 #define _RESAMPLE_H
22
23 /** @file
24  * Libsamplerate resampling
25  */
26
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30
31 /** 
32  * resampler object
33  */
34 typedef struct _aubio_resampler_t aubio_resampler_t;
35 /**  
36  * create resampler object 
37  * \param ratio output_sample_rate / input_sample_rate 
38  * \param type libsamplerate resampling type
39  */
40 aubio_resampler_t * new_aubio_resampler(float ratio, uint_t type);
41 /** delete resampler object */
42 void del_aubio_resampler(aubio_resampler_t *s);
43 /** 
44  * resample input in output
45  * \param input input buffer of size N
46  * \param output output buffer of size N*ratio
47  */
48 uint_t aubio_resampler_process(aubio_resampler_t *s, fvec_t * input,  fvec_t * output);
49
50 #ifdef __cplusplus
51 }
52 #endif
53
54 #endif /* _RESAMPLE_H */