tizen 2.0 init
[framework/multimedia/gst-plugins-base0.10.git] / gst-libs / gst / fft / gstffts32.h
1 /* GStreamer
2  * Copyright (C) <2007> Sebastian Dröge <slomo@circular-chaos.org>
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Library General Public
6  * License as published by the Free Software Foundation; either
7  * version 2 of the License, or (at your option) any later version.
8  *
9  * This library 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 GNU
12  * Library General Public License for more details.
13  *
14  * You should have received a copy of the GNU Library General Public
15  * License along with this library; if not, write to the
16  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17  * Boston, MA 02111-1307, USA.
18  */
19
20 #ifndef __GST_FFT_S32_H__
21 #define __GST_FFT_S32_H__
22
23 #include <glib.h>
24 #include <gst/gst.h>
25
26 #include "gstfft.h"
27
28 G_BEGIN_DECLS
29
30 typedef struct _GstFFTS32 GstFFTS32;
31 typedef struct _GstFFTS32Complex GstFFTS32Complex;
32
33 /* FIXME 0.11: Move the struct definition to the sources,
34  *             there's no reason to have it public.
35  */
36 /**
37  * GstFFTS32:
38  *
39  * Instance structure for #GstFFTS32.
40  *
41  */
42 struct _GstFFTS32 {
43   /* <private> */
44   void * cfg;
45   gboolean inverse;
46   gint len;
47   gpointer _padding[GST_PADDING];
48 };
49
50 /* Copy of kiss_fft_s32_cpx for documentation reasons,
51  * do NOT change! */
52
53 /**
54  * GstFFTS32Complex:
55  * @r: Real part
56  * @i: Imaginary part
57  *
58  * Data type for complex numbers composed of
59  * signed 32 bit integers.
60  *
61  */
62 struct _GstFFTS32Complex
63 {
64   gint32 r;
65   gint32 i;
66 };
67
68 /* Functions */
69
70 GstFFTS32 * gst_fft_s32_new (gint len, gboolean inverse);
71 void gst_fft_s32_fft (GstFFTS32 *self, const gint32 *timedata, GstFFTS32Complex *freqdata);
72 void gst_fft_s32_inverse_fft (GstFFTS32 *self, const GstFFTS32Complex *freqdata, gint32 *timedata);
73 void gst_fft_s32_free (GstFFTS32 *self);
74
75 void gst_fft_s32_window (GstFFTS32 *self, gint32 *timedata, GstFFTWindow window);
76
77 G_END_DECLS
78
79 #endif /* __GST_FFT_S32_H__ */