diff --git a/ChangeLog b/ChangeLog index 4469309bb2..2453b7f400 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2005-10-07 Andy Wingo + * docs/gst/gstreamer-sections.txt: Update. + + * gst/gstmessage.c (gst_message_new_application): Made into a + function like honest API calls. + (gst_message_new_element): New message type. + + * gst/gstmessage.h (enum): Add GST_MESSAGE_ELEMENT type. + * check/elements/fakesrc.c (test_no_preroll): New check, checks that setting a live fakesrc to PAUSED returns NO_PREROLL both times. diff --git a/docs/gst/gstreamer-sections.txt b/docs/gst/gstreamer-sections.txt index 68bc10b7da..646ef1f86b 100644 --- a/docs/gst/gstreamer-sections.txt +++ b/docs/gst/gstreamer-sections.txt @@ -621,6 +621,8 @@ GST_EVDIR_BOTH GST_EVDIR_DS GST_EVDIR_US +gst_event_type_get_name +gst_event_type_to_quark gst_event_ref gst_event_unref gst_event_copy @@ -980,6 +982,7 @@ gst_message_copy gst_message_get_structure gst_message_make_writable gst_message_new_application +gst_message_new_element gst_message_new_custom gst_message_new_eos gst_message_new_error diff --git a/gst/gstmessage.c b/gst/gstmessage.c index ae4b97d617..6448292a42 100644 --- a/gst/gstmessage.c +++ b/gst/gstmessage.c @@ -438,6 +438,42 @@ gst_message_new_segment_done (GstObject * src, GstClockTime timestamp) return message; } +/** + * gst_message_new_application: + * @src: The object originating the message. + * @structure: The structure for the message. The message will take ownership of + * the structure. + * + * Create a new application-typed message. GStreamer will never create these + * messages; they are a gift from us to you. Enjoy. + * + * MT safe. + */ +GstMessage * +gst_message_new_application (GstObject * src, GstStructure * structure) +{ + return gst_message_new_custom (GST_MESSAGE_APPLICATION, src, structure); +} + +/** + * gst_message_new_element: + * @src: The object originating the message. + * @structure: The structure for the message. The message will take ownership of + * the structure. + * + * Create a new element-specific message. This is meant as a generic way of + * allowing one-way communication from an element to an application, for example + * "the firewire cable was unplugged". The format of the message should be + * documented in the element's documentation. The structure field can be NULL. + * + * MT safe. + */ +GstMessage * +gst_message_new_element (GstObject * src, GstStructure * structure) +{ + return gst_message_new_custom (GST_MESSAGE_ELEMENT, src, structure); +} + /** * gst_message_new_custom: * @type: The #GstMessageType to distinguish messages diff --git a/gst/gstmessage.h b/gst/gstmessage.h index 0eef07951b..f2be6a9ecf 100644 --- a/gst/gstmessage.h +++ b/gst/gstmessage.h @@ -44,6 +44,8 @@ typedef struct _GstMessageClass GstMessageClass; * stops, errors, etc.. * @GST_MESSAGE_APPLICATION: message posted by the application, possibly * via an application-specific element. + * @GST_MESSAGE_ELEMENT: element-specific message, see the specific element's + * documentation * @GST_MESSAGE_SEGMENT_START: pipeline started playback of a segment. * @GST_MESSAGE_SEGMENT_DONE: pipeline completed playback of a segment. * @GST_MESSAGE_ANY: mask for all of the above messages. @@ -63,8 +65,9 @@ typedef enum GST_MESSAGE_STRUCTURE_CHANGE = (1 << 9), GST_MESSAGE_STREAM_STATUS = (1 << 10), GST_MESSAGE_APPLICATION = (1 << 11), - GST_MESSAGE_SEGMENT_START = (1 << 12), - GST_MESSAGE_SEGMENT_DONE = (1 << 13), + GST_MESSAGE_ELEMENT = (1 << 12), + GST_MESSAGE_SEGMENT_START = (1 << 13), + GST_MESSAGE_SEGMENT_DONE = (1 << 14), GST_MESSAGE_ANY = 0xffffffff } GstMessageType; @@ -145,25 +148,12 @@ GstMessage * gst_message_new_state_changed (GstObject * src, GstState old_state GstState new_state); GstMessage * gst_message_new_segment_start (GstObject * src, GstClockTime timestamp); GstMessage * gst_message_new_segment_done (GstObject * src, GstClockTime timestamp); +GstMessage * gst_message_new_application (GstObject * src, GstStructure * structure); +GstMessage * gst_message_new_element (GstObject * src, GstStructure * structure); GstMessage * gst_message_new_custom (GstMessageType type, GstObject * src, GstStructure * structure); -/** - * gst_message_new_application: - * @src: The object originating the message. - * @str: The structure for the message. The message will take ownership of - * the structure. - * - * Create a new application-typed message. This can be used for anything not - * handled by other message-specific functions to pass a message to the - * app. The structure field can be NULL. - * - * MT safe. - */ -#define gst_message_new_application(src, str) \ - gst_message_new_custom (GST_MESSAGE_APPLICATION, src, str) - void gst_message_parse_error (GstMessage *message, GError **gerror, gchar **debug); void gst_message_parse_warning (GstMessage *message, GError **gerror, gchar **debug); void gst_message_parse_tag (GstMessage *message, GstTagList **tag_list);