src/types.h: add some documentation, use HAVE_AUBIO_DOUBLE, not AUBIO_SINGLE_PRECISION
[aubio.git] / src / types.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 AUBIO_TYPES_H
21 #define AUBIO_TYPES_H
22
23 /** \file
24  
25   Definition of data types used in aubio
26  
27 */
28
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32
33 #include "config.h"
34
35 #ifndef HAVE_AUBIO_DOUBLE
36 /** defined to 1 if aubio is compiled in double precision */
37 #define HAVE_AUBIO_DOUBLE 0
38 #endif
39
40 /** short sample format (32 or 64 bits) */
41 #if !HAVE_AUBIO_DOUBLE
42 typedef float        smpl_t;
43 /** print format for sample in single precision */
44 #define AUBIO_SMPL_FMT "%f"
45 #else
46 typedef double       smpl_t;
47 /** print format for double in single precision */
48 #define AUBIO_SMPL_FMT "%lf"
49 #endif
50 /** long sample format (64 bits or more) */
51 #if !HAVE_AUBIO_DOUBLE
52 typedef double       lsmp_t;
53 /** print format for sample in double precision */
54 #define AUBIO_LSMP_FMT "%lf"
55 #else
56 typedef long double  lsmp_t;
57 /** print format for double in double precision */
58 #define AUBIO_LSMP_FMT "%Lf"
59 #endif
60 /** unsigned integer */
61 typedef unsigned int uint_t;
62 /** signed integer */
63 typedef int          sint_t;
64 /** files */
65 //typedef FILE         audio_file_t;
66
67 #ifdef __cplusplus
68 }
69 #endif
70
71 #endif/*AUBIO_TYPES_H*/