2 * Copyright (C) 2005 Stefan Kost <ensonic@users.sf.net>
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.
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.
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.
20 #ifndef __GST_TONE_SRC_H__
21 #define __GST_TONE_SRC_H__
25 #include <gst/base/gstbasesrc.h>
28 #define GST_TYPE_TONE_SRC \
29 (gst_tone_src_get_type())
30 #define GST_TONE_SRC(obj) \
31 (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_TONE_SRC,GstToneSrc))
32 #define GST_TONE_SRC_CLASS(klass) \
33 (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_TONE_SRC,GstToneSrcClass))
34 #define GST_IS_TONE_SRC(obj) \
35 (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_TONE_SRC))
36 #define GST_IS_TONE_SRC_CLASS(klass) \
37 (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_TONE_SRC))
40 GST_TONE_SRC_FORMAT_NONE = -1,
41 GST_TONE_SRC_FORMAT_S16 = 0,
42 GST_TONE_SRC_FORMAT_S32,
43 GST_TONE_SRC_FORMAT_F32,
44 GST_TONE_SRC_FORMAT_F64
47 typedef struct _GstToneSrc GstToneSrc;
48 typedef struct _GstToneSrcClass GstToneSrcClass;
50 typedef void (*ProcessFunc) (GstToneSrc *, guint8 *);
55 * audiotestsrc object structure.
67 /* audio parameters */
69 gint samples_per_buffer;
70 GstToneSrcFormat format;
73 gboolean tags_pushed; /* send tags just once ? */
75 GstClockTimeDiff timestamp_offset; /* base offset */
76 GstClockTime running_time; /* total running time */
77 gint64 n_samples; /* total samples sent */
78 gint64 n_samples_stop;
81 gint generate_samples_per_buffer; /* used to generate a partial buffer */
83 /* waveform specific context data */
84 gdouble accumulator; /* phase angle */
87 struct _GstToneSrcClass
89 GstBaseSrcClass parent_class;
92 GType gst_tone_src_get_type (void);
95 #endif /* __GST_TONE_SRC_H__ */