/* GStreamer * Copyright (C) <1999> Erik Walthinsen * <2004> Wim Taymans * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * 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. */ #ifndef __GST_TASK_H__ #define __GST_TASK_H__ #include G_BEGIN_DECLS typedef gboolean (*GstTaskFunction) (void *data); /* --- standard type macros --- */ #define GST_TYPE_TASK (gst_task_get_type ()) #define GST_TASK(task) (G_TYPE_CHECK_INSTANCE_CAST ((task), GST_TYPE_TASK, GstTask)) #define GST_IS_TASK(task) (G_TYPE_CHECK_INSTANCE_TYPE ((task), GST_TYPE_TASK)) #define GST_TASK_CLASS(tclass) (G_TYPE_CHECK_CLASS_CAST ((tclass), GST_TYPE_TASK, GstTaskClass)) #define GST_IS_TASK_CLASS(tclass) (G_TYPE_CHECK_CLASS_TYPE ((tclass), GST_TYPE_TASK)) #define GST_TASK_GET_CLASS(task) (G_TYPE_INSTANCE_GET_CLASS ((task), GST_TYPE_TASK, GstTaskClass)) typedef struct _GstTask GstTask; typedef struct _GstTaskClass GstTaskClass; struct _GstTask { GstObject object; gpointer _gst_reserved[GST_PADDING]; }; struct _GstTaskClass { GstObjectClass parent_class; gboolean (*start) (GstTask *task); gboolean (*stop) (GstTask *task); gboolean (*pause) (GstTask *task); gpointer _gst_reserved[GST_PADDING]; }; GType gst_task_get_type (void); gboolean gst_task_start (GstTask *task); gboolean gst_task_stop (GstTask *task); gboolean gst_task_pause (GstTask *task); G_END_DECLS #endif /* __GST_TASK_H__ */