summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Kost <ensonic@users.sf.net>2010-01-31 22:14:04 +0200
committerStefan Kost <ensonic@users.sf.net>2010-01-31 22:25:51 +0200
commitb3ac421b96eacbd13c74c64f446247a3d553f4b5 (patch)
tree6c0b2ca06d7daaa6ae28fe5caa14004666edb549
parent792c181edc1eebb4b452c776fd176d6a4a6983b7 (diff)
ladspa: simplify property registration
Don't do checking cast for each parameter. Use a running index.
-rw-r--r--ext/ladspa/gstladspa.c23
1 files changed, 9 insertions, 14 deletions
diff --git a/ext/ladspa/gstladspa.c b/ext/ladspa/gstladspa.c
index d9bea1830..e6dd148b5 100644
--- a/ext/ladspa/gstladspa.c
+++ b/ext/ladspa/gstladspa.c
@@ -436,7 +436,8 @@ gst_ladspa_class_init (GstLADSPAClass * klass, LADSPA_Descriptor * desc)
436{ 436{
437 GObjectClass *gobject_class; 437 GObjectClass *gobject_class;
438 GstSignalProcessorClass *gsp_class; 438 GstSignalProcessorClass *gsp_class;
439 gint i; 439 GParamSpec *p;
440 gint i, ix;
440 441
441 GST_DEBUG ("class_init %p", klass); 442 GST_DEBUG ("class_init %p", klass);
442 443
@@ -451,25 +452,19 @@ gst_ladspa_class_init (GstLADSPAClass * klass, LADSPA_Descriptor * desc)
451 gsp_class->cleanup = gst_ladspa_cleanup; 452 gsp_class->cleanup = gst_ladspa_cleanup;
452 gsp_class->process = gst_ladspa_process; 453 gsp_class->process = gst_ladspa_process;
453 454
454 /* register properties */ 455 /* properties have an offset of 1 */
456 ix = 1;
455 457
456 for (i = 0; i < gsp_class->num_control_in; i++) { 458 /* register properties */
457 GParamSpec *p;
458 459
460 for (i = 0; i < gsp_class->num_control_in; i++, ix++) {
459 p = gst_ladspa_class_get_param_spec (klass, klass->control_in_portnums[i]); 461 p = gst_ladspa_class_get_param_spec (klass, klass->control_in_portnums[i]);
460 462 g_object_class_install_property (gobject_class, ix, p);
461 /* properties have an offset of 1 */
462 g_object_class_install_property (G_OBJECT_CLASS (klass), i + 1, p);
463 } 463 }
464 464
465 for (i = 0; i < gsp_class->num_control_out; i++) { 465 for (i = 0; i < gsp_class->num_control_out; i++, ix++) {
466 GParamSpec *p;
467
468 p = gst_ladspa_class_get_param_spec (klass, klass->control_out_portnums[i]); 466 p = gst_ladspa_class_get_param_spec (klass, klass->control_out_portnums[i]);
469 467 g_object_class_install_property (gobject_class, ix, p);
470 /* properties have an offset of 1, and we already added num_control_in */
471 g_object_class_install_property (G_OBJECT_CLASS (klass),
472 gsp_class->num_control_in + i + 1, p);
473 } 468 }
474} 469}
475 470