void gst_goo_util_post_message (GstElement* self, gchar* structure_name, GTimeVal* gotten_time) { GstMessage *msg = NULL; GstStructure *stru = NULL; GTimeVal current_time; if (gotten_time == NULL) /* Get the current time */ g_get_current_time (¤t_time); else current_time = *(gotten_time); if(structure_name) { stru = gst_structure_new(structure_name, "nData1", G_TYPE_ULONG, current_time.tv_sec, "nData2", G_TYPE_ULONG, current_time.tv_usec, NULL); } /* Create the message and send it to the bus */ msg = gst_message_new_custom (GST_MESSAGE_ELEMENT, GST_OBJECT (self), stru); g_assert ( gst_element_post_message (GST_ELEMENT(self), msg)); return; }
static VALUE initialize(VALUE self, VALUE type, VALUE src, VALUE structure) { GstMessage *message; message = gst_message_new_custom(RVAL2GST_MSG_TYPE(type), RVAL2GST_OBJ(src), RVAL2GST_STRUCT(structure)); G_INITIALIZE(self, message); return Qnil; }
/** * gst_navigation_message_new_commands_changed: * @src: A #GstObject to set as source of the new message. * * Creates a new #GstNavigation message with type * #GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED * * Returns: The new #GstMessage. * Since: 0.10.23 */ GstMessage * gst_navigation_message_new_commands_changed (GstObject * src) { GstStructure *s; GstMessage *m; s = gst_structure_new (GST_NAVIGATION_MESSAGE_NAME, "type", G_TYPE_STRING, "commands-changed", NULL); m = gst_message_new_custom (GST_MESSAGE_ELEMENT, src, s); return m; }
/** * gst_navigation_message_new_mouse_over: * @src: A #GstObject to set as source of the new message. * @active: %TRUE if the mouse has entered a clickable area of the display. * %FALSE if it over a non-clickable area. * * Creates a new #GstNavigation message with type * #GST_NAVIGATION_MESSAGE_MOUSE_OVER. * * Returns: The new #GstMessage. * Since: 0.10.23 */ GstMessage * gst_navigation_message_new_mouse_over (GstObject * src, gboolean active) { GstStructure *s; GstMessage *m; s = gst_structure_new (GST_NAVIGATION_MESSAGE_NAME, "type", G_TYPE_STRING, "mouse-over", "active", G_TYPE_BOOLEAN, active, NULL); m = gst_message_new_custom (GST_MESSAGE_ELEMENT, src, s); return m; }
/** * gst_navigation_message_new_angles_changed: * @src: A #GstObject to set as source of the new message. * @cur_angle: The currently selected angle. * @n_angles: The number of viewing angles now available. * * Creates a new #GstNavigation message with type * #GST_NAVIGATION_MESSAGE_ANGLES_CHANGED for notifying an application * that the current angle, or current number of angles available in a * multiangle video has changed. * * Returns: The new #GstMessage. * Since: 0.10.23 */ GstMessage * gst_navigation_message_new_angles_changed (GstObject * src, guint cur_angle, guint n_angles) { GstStructure *s; GstMessage *m; s = gst_structure_new (GST_NAVIGATION_MESSAGE_NAME, "type", G_TYPE_STRING, "angles-changed", "angle", G_TYPE_UINT, cur_angle, "angles", G_TYPE_UINT, n_angles, NULL); m = gst_message_new_custom (GST_MESSAGE_ELEMENT, src, s); return m; }
static void pocketvox_recognizer_process_result(GstElement* sphinx, gchar *hyp, gchar* uttid, gpointer data) { GstStructure *stt = gst_structure_empty_new("result"); GValue hypv = G_VALUE_INIT, uttidv = G_VALUE_INIT; GstMessage *msg; g_value_init(&hypv, G_TYPE_STRING); g_value_init(&uttidv, G_TYPE_STRING); g_value_set_string(&hypv, g_strdup(hyp)); g_value_set_string(&uttidv, g_strdup(uttid)); gst_structure_set_value(stt,"hyp", &hypv); gst_structure_set_value(stt,"uttid",&uttidv); msg = gst_message_new_custom( GST_MESSAGE_APPLICATION, GST_OBJECT(sphinx), stt); gst_element_post_message(sphinx, msg); }
static gboolean send_messages (gpointer data) { GstMessage *m; GstStructure *s; gint i; for (i = 0; i < 10; i++) { s = gst_structure_new ("test_message", "msg_id", G_TYPE_INT, i, NULL); m = gst_message_new_application (NULL, s); gst_bus_post (test_bus, m); s = gst_structure_new ("test_message", "msg_id", G_TYPE_INT, i, NULL); m = gst_message_new_custom (GST_MESSAGE_EOS, NULL, s); gst_bus_post (test_bus, m); } return FALSE; }
static void gst_imx_v4l2src_af_check_status(GstImxV4l2VideoSrc *v4l2src) { int status; gboolean send_message; GstPhotographyFocusStatus message_status; gboolean schedule_recheck; if (v4l2_g_ctrl(v4l2src, V4L2_CID_AUTO_FOCUS_STATUS, &status) < 0) goto none; switch (status) { case V4L2_AUTO_FOCUS_STATUS_IDLE: default: none: send_message = TRUE; message_status = GST_PHOTOGRAPHY_FOCUS_STATUS_NONE; schedule_recheck = FALSE; break; case V4L2_AUTO_FOCUS_STATUS_BUSY: send_message = FALSE; schedule_recheck = TRUE; break; case V4L2_AUTO_FOCUS_STATUS_REACHED: send_message = TRUE; message_status = GST_PHOTOGRAPHY_FOCUS_STATUS_SUCCESS; schedule_recheck = FALSE; break; case V4L2_AUTO_FOCUS_STATUS_FAILED: send_message = TRUE; message_status = GST_PHOTOGRAPHY_FOCUS_STATUS_FAIL; schedule_recheck = FALSE; break; } if (send_message) { GstStructure *s; GstMessage *m; s = gst_structure_new(GST_PHOTOGRAPHY_AUTOFOCUS_DONE, "status", G_TYPE_INT, message_status, NULL); m = gst_message_new_custom(GST_MESSAGE_ELEMENT, GST_OBJECT(v4l2src), s); if (!gst_element_post_message(GST_ELEMENT(v4l2src), m)) GST_ERROR_OBJECT(v4l2src, "failed to post message"); } if (schedule_recheck) { GstClock *c; GstClockTime t; c = gst_system_clock_obtain(); t = gst_clock_get_time(c) + 50 * GST_MSECOND; v4l2src->af_clock_id = gst_clock_new_single_shot_id(c, t); gst_object_unref(c); if (gst_clock_id_wait_async(v4l2src->af_clock_id, gst_imx_v4l2src_af_status_cb, v4l2src, NULL) != GST_CLOCK_OK) GST_ERROR_OBJECT(v4l2src, "failed to schedule recheck"); } }