*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#ifndef __GST_DTMF_SRC_H__
#include <gst/gst.h>
#include <gst/gstbuffer.h>
+#include <gst/base/gstbasesrc.h>
G_BEGIN_DECLS
-
#define GST_TYPE_DTMF_SRC (gst_dtmf_src_get_type())
#define GST_DTMF_SRC(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_DTMF_SRC,GstDTMFSrc))
#define GST_DTMF_SRC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_DTMF_SRC,GstDTMFSrcClass))
#define GST_IS_DTMF_SRC(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_DTMF_SRC))
#define GST_IS_DTMF_SRC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_DTMF_SRC))
#define GST_DTMF_SRC_CAST(obj) ((GstDTMFSrc *)(obj))
-
typedef struct _GstDTMFSrc GstDTMFSrc;
typedef struct _GstDTMFSrcClass GstDTMFSrcClass;
-/**
- * GstDTMFSrc:
- * @element: the parent element.
- *
- * The opaque #GstDTMFSrc data structure.
- */
-
-enum _GstDTMFEventType {
+enum _GstDTMFEventType
+{
DTMF_EVENT_TYPE_START,
DTMF_EVENT_TYPE_STOP,
DTMF_EVENT_TYPE_PAUSE_TASK
typedef enum _GstDTMFEventType GstDTMFEventType;
-struct _GstDTMFSrcEvent {
- GstDTMFEventType event_type;
- double sample;
- guint16 event_number;
- guint16 volume;
- guint32 packet_count;
+struct _GstDTMFSrcEvent
+{
+ GstDTMFEventType event_type;
+ double sample;
+ guint16 event_number;
+ guint16 volume;
+ guint32 packet_count;
};
typedef struct _GstDTMFSrcEvent GstDTMFSrcEvent;
-struct _GstDTMFSrc {
- GstElement element;
- GstPad *srcpad;
- GstSegment segment;
- GAsyncQueue* event_queue;
- GstDTMFSrcEvent* last_event;
- GstClockID clock_id;
- gboolean task_paused;
-
- guint16 interval;
- GstClockTime timestamp;
+/**
+ * GstDTMFSrc:
+ * @element: the parent element.
+ *
+ * The opaque #GstDTMFSrc data structure.
+ */
+struct _GstDTMFSrc
+{
+ /*< private >*/
+ GstBaseSrc parent;
+ GAsyncQueue *event_queue;
+ GstDTMFSrcEvent *last_event;
+ gboolean last_event_was_start;
+
+ guint16 interval;
+ GstClockTime timestamp;
+
+ gboolean paused;
+ GstClockID clockid;
+
+ GstClockTime last_stop;
+
+ gint sample_rate;
};
-struct _GstDTMFSrcClass {
- GstElementClass parent_class;
+struct _GstDTMFSrcClass
+{
+ GstBaseSrcClass parent_class;
};
GType gst_dtmf_src_get_type (void);
gboolean gst_dtmf_src_plugin_init (GstPlugin * plugin);
G_END_DECLS
-
#endif /* __GST_DTMF_SRC_H__ */