GStreamer

 view release on metacpan or  search on metacpan

xs/GstMiniObject.xs  view on Meta::CPAN

	return INT2PTR (GstMiniObject *, SvIV (SvRV (sv)));

}

/* ------------------------------------------------------------------------- */

static GPerlValueWrapperClass gst2perl_mini_object_wrapper_class;

static SV *
gst2perl_mini_object_wrap (const GValue *value)
{
	/* The object's refcount didn't get incremented, so we must not use
	 * _noinc. */
	return newSVGstMiniObject (gst_value_get_mini_object (value));
}

static void
gst2perl_mini_object_unwrap (GValue *value, SV *sv)
{
	gst_value_set_mini_object (value, SvGstMiniObject (sv));
}

static void
gst2perl_mini_object_initialize (void)
{
	gst2perl_mini_object_wrapper_class.wrap = gst2perl_mini_object_wrap;
	gst2perl_mini_object_wrapper_class.unwrap = gst2perl_mini_object_unwrap;

	gperl_register_fundamental_full (GST_TYPE_MINI_OBJECT,
	                                 "GStreamer::MiniObject",
	                                 &gst2perl_mini_object_wrapper_class);
}

/* ------------------------------------------------------------------------- */

MODULE = GStreamer::MiniObject	PACKAGE = GStreamer::MiniObject	PREFIX = gst_mini_object_

=for object GStreamer::MiniObject Lightweight base class for the GStreamer object hierarchy

=cut

BOOT:
	gst2perl_mini_object_initialize ();

void
DESTROY (GstMiniObject *object)
    CODE:
	gst_mini_object_unref (object);

# FIXME: Needed?
# GstMiniObject * gst_mini_object_new (GType type);
# GstMiniObject * gst_mini_object_copy (const GstMiniObject *mini_object);

gboolean gst_mini_object_is_writable (const GstMiniObject *mini_object);

# GstMiniObject * gst_mini_object_make_writable (GstMiniObject *mini_object);
GstMiniObject_noinc *
gst_mini_object_make_writable (GstMiniObject *mini_object)
    C_ARGS:
	/* gst_mini_object_make_writable unref's mini_object, so we need to
	 * keep it alive. */
	gst_mini_object_ref (mini_object)

# FIXME: Needed?
# void gst_mini_object_replace (GstMiniObject **olddata, GstMiniObject *newdata);
# GParamSpec * gst_param_spec_mini_object (const char *name, const char *nick, const char *blurb, GType object_type, GParamFlags flags);
# void gst_value_set_mini_object (GValue *value, GstMiniObject *mini_object);
# void gst_value_take_mini_object (GValue *value, GstMiniObject *mini_object);
# GstMiniObject * gst_value_get_mini_object (const GValue *value);



( run in 1.892 second using v1.01-cache-2.11-cpan-39bf76dae61 )