X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gst%2Fgstbus.h;h=1f14246a690ecc79d91bba8e4c048da664c085f9;hb=cc6342d853f4252c5d5cf09fff9d3379ad467fbc;hp=2dbf0cef52bd95ef5b54910375a7efce26042826;hpb=91e13d4970a8860325bab361c7144bfa7c649c71;p=platform%2Fupstream%2Fgstreamer.git diff --git a/gst/gstbus.h b/gst/gstbus.h index 2dbf0ce..1f14246 100644 --- a/gst/gstbus.h +++ b/gst/gstbus.h @@ -15,8 +15,8 @@ * * 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_BUS_H__ @@ -72,7 +72,7 @@ typedef enum * GstBusSyncHandler: * @bus: the #GstBus that sent the message * @message: the #GstMessage - * @data: user data that has been given, when registering the handler + * @user_data: user data that has been given, when registering the handler * * Handler will be invoked synchronously, when a new message has been injected * into the bus. This function is mostly used internally. Only one sync handler @@ -83,13 +83,13 @@ typedef enum * * Returns: #GstBusSyncReply stating what to do with the message */ -typedef GstBusSyncReply (*GstBusSyncHandler) (GstBus * bus, GstMessage * message, gpointer data); +typedef GstBusSyncReply (*GstBusSyncHandler) (GstBus * bus, GstMessage * message, gpointer user_data); /** * GstBusFunc: * @bus: the #GstBus that sent the message * @message: the #GstMessage - * @data: user data that has been given, when registering the handler + * @user_data: user data that has been given, when registering the handler * * Specifies the type of function passed to gst_bus_add_watch() or * gst_bus_add_watch_full(), which is called from the mainloop when a message @@ -99,11 +99,11 @@ typedef GstBusSyncReply (*GstBusSyncHandler) (GstBus * bus, GstMessage * mess * function so it should not be freed in the function. * * Note that this function is used as a GSourceFunc which means that returning - * FALSE will remove the GSource from the mainloop. + * %FALSE will remove the GSource from the mainloop. * * Returns: %FALSE if the event source should be removed. */ -typedef gboolean (*GstBusFunc) (GstBus * bus, GstMessage * message, gpointer data); +typedef gboolean (*GstBusFunc) (GstBus * bus, GstMessage * message, gpointer user_data); /** * GstBus: @@ -132,52 +132,101 @@ struct _GstBusClass gpointer _gst_reserved[GST_PADDING]; }; +GST_API GType gst_bus_get_type (void); +GST_API GstBus* gst_bus_new (void); +GST_API gboolean gst_bus_post (GstBus * bus, GstMessage * message); +GST_API gboolean gst_bus_have_pending (GstBus * bus); + +GST_API GstMessage * gst_bus_peek (GstBus * bus); + +GST_API GstMessage * gst_bus_pop (GstBus * bus); + +GST_API GstMessage * gst_bus_pop_filtered (GstBus * bus, GstMessageType types); + +GST_API GstMessage * gst_bus_timed_pop (GstBus * bus, GstClockTime timeout); + +GST_API GstMessage * gst_bus_timed_pop_filtered (GstBus * bus, GstClockTime timeout, GstMessageType types); + +GST_API void gst_bus_set_flushing (GstBus * bus, gboolean flushing); /* synchronous dispatching */ + +GST_API void gst_bus_set_sync_handler (GstBus * bus, GstBusSyncHandler func, - gpointer data); + gpointer user_data, GDestroyNotify notify); + +/* asynchronous message notifications */ + +GST_API +void gst_bus_get_pollfd (GstBus * bus, GPollFD *fd); + /* GSource based dispatching */ + +GST_API GSource * gst_bus_create_watch (GstBus * bus); + +GST_API guint gst_bus_add_watch_full (GstBus * bus, gint priority, GstBusFunc func, gpointer user_data, GDestroyNotify notify); +GST_API guint gst_bus_add_watch (GstBus * bus, GstBusFunc func, gpointer user_data); +GST_API +gboolean gst_bus_remove_watch (GstBus * bus); /* polling the bus */ + +GST_API GstMessage* gst_bus_poll (GstBus *bus, GstMessageType events, GstClockTime timeout); /* signal based dispatching helper functions. */ + +GST_API gboolean gst_bus_async_signal_func (GstBus *bus, GstMessage *message, gpointer data); +GST_API GstBusSyncReply gst_bus_sync_signal_handler (GstBus *bus, GstMessage *message, gpointer data); /* convenience api to add/remove a gsource that emits the async signals */ + +GST_API void gst_bus_add_signal_watch (GstBus * bus); + +GST_API void gst_bus_add_signal_watch_full (GstBus * bus, gint priority); + +GST_API void gst_bus_remove_signal_watch (GstBus * bus); +GST_API void gst_bus_enable_sync_message_emission (GstBus * bus); + +GST_API void gst_bus_disable_sync_message_emission (GstBus * bus); +#ifdef G_DEFINE_AUTOPTR_CLEANUP_FUNC +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GstBus, gst_object_unref) +#endif + G_END_DECLS #endif /* __GST_BUS_H__ */