static gboolean jack_handle_transport_change (GstJackAudioClient * client, GstState state) { GstObject *obj = GST_OBJECT_PARENT (client->user_data); guint mode; g_object_get (obj, "transport", &mode, NULL); if ((mode & GST_JACK_TRANSPORT_SLAVE) && (GST_STATE (obj) != state)) { GST_INFO_OBJECT (obj, "requesting state change: %s", gst_element_state_get_name (state)); gst_element_post_message (GST_ELEMENT (obj), gst_message_new_request_state (obj, state)); return TRUE; } return FALSE; }
static void gst_navseek_toggle_play_pause (GstNavSeek * navseek) { GstStateChangeReturn sret; GstState current, pending, state; sret = gst_element_get_state (GST_ELEMENT (navseek), ¤t, &pending, 0); if (sret == GST_STATE_CHANGE_FAILURE) return; state = (pending != GST_STATE_VOID_PENDING) ? pending : current; gst_element_post_message (GST_ELEMENT (navseek), gst_message_new_request_state (GST_OBJECT (navseek), (state == GST_STATE_PLAYING) ? GST_STATE_PAUSED : GST_STATE_PLAYING)); }
RequestStateMessagePtr RequestStateMessage::create(const ObjectPtr & source, State state) { GstMessage *m = gst_message_new_request_state(source, static_cast<GstState>(state)); return RequestStateMessagePtr::wrap(m, false); }