/* Method: get_state(timeout=nil) */ static VALUE rg_get_state(int argc, VALUE *argv, VALUE self) { VALUE result, timeout; ThreadData thread_data; GetStateData *get_state_data; rb_scan_args(argc, argv, "01", &timeout); thread_data.element = SELF(self); thread_data.context = "get_state"; get_state_data = &(thread_data.data.get_state_data); if (NIL_P(timeout)) get_state_data->timeout = GST_CLOCK_TIME_NONE; else get_state_data->timeout = NUM2ULL(timeout); do_in_thread(get_state_thread_pool, &thread_data); result = rb_ary_new3(3, GST_STATE_CHANGE_RETURN2RVAL(get_state_data->result), GST_STATE2RVAL(get_state_data->state), GST_STATE2RVAL(get_state_data->pending)); return result; }
static VALUE state_changed_parse(VALUE self) { GstState old_state, new_state, pending_state; gst_message_parse_state_changed(SELF(self), &old_state, &new_state, &pending_state); return rb_ary_new3(3, GST_STATE2RVAL(old_state), GST_STATE2RVAL(new_state), GST_STATE2RVAL(pending_state)); }