static void gst_ladspa_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec) { GstSignalProcessor *gsp; GstSignalProcessorClass *gsp_class; gsp = GST_SIGNAL_PROCESSOR (object); gsp_class = GST_SIGNAL_PROCESSOR_GET_CLASS (object); /* remember, properties have an offset of 1 */ prop_id--; /* only input ports */ g_return_if_fail (prop_id < gsp_class->num_control_in); /* now see what type it is */ switch (pspec->value_type) { case G_TYPE_BOOLEAN: gsp->control_in[prop_id] = g_value_get_boolean (value) ? 1.f : 0.f; break; case G_TYPE_INT: gsp->control_in[prop_id] = g_value_get_int (value); break; case G_TYPE_FLOAT: gsp->control_in[prop_id] = g_value_get_float (value); break; default: g_assert_not_reached (); } }
static void gst_lv2_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec) { #if 0 GstSignalProcessor *gsp; GstSignalProcessorClass *gsp_class; gfloat *controls; gsp = GST_SIGNAL_PROCESSOR (object); gsp_class = GST_SIGNAL_PROCESSOR_GET_CLASS (object); /* remember, properties have an offset of 1 */ prop_id--; if (prop_id < gsp_class->num_control_in) { controls = gsp->control_in; } else if (prop_id < gsp_class->num_control_in + gsp_class->num_control_out) { controls = gsp->control_out; prop_id -= gsp_class->num_control_in; } else { g_return_if_reached (); } /* now see what type it is */ switch (pspec->value_type) { case G_TYPE_BOOLEAN: g_value_set_boolean (value, controls[prop_id] > 0.5); break; case G_TYPE_INT: g_value_set_int (value, CLAMP (controls[prop_id], G_MININT, G_MAXINT)); break; case G_TYPE_FLOAT: g_value_set_float (value, controls[prop_id]); break; default: g_return_if_reached (); } #endif }