After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 459717 - [Controller] Add GstLFOControlSource that provides values from different waveforms
[Controller] Add GstLFOControlSource that provides values from different wave...
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
0.10.14
Other Linux
: Normal normal
: 0.10.15
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2007-07-23 21:13 UTC by Sebastian Dröge (slomo)
Modified: 2007-08-03 15:53 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
lfo.diff (69.45 KB, patch)
2007-07-23 21:14 UTC, Sebastian Dröge (slomo)
none Details | Review
lfo.diff (70.82 KB, patch)
2007-07-24 03:38 UTC, Sebastian Dröge (slomo)
none Details | Review
lfo.diff (66.19 KB, patch)
2007-07-31 05:34 UTC, Sebastian Dröge (slomo)
committed Details | Review

Description Sebastian Dröge (slomo) 2007-07-23 21:13:53 UTC
Hi,
the attached patch adds a GstLFOControlSource that gives values from several different waveforms. Supported are sine, square, saw, reverse saw and triangle with configurable frequency, timeshift, amplitude and offset.

The only thing that IMHO needs discussion is whether one should go with setting the parameters via GObject properties, several (or the one we have) functions or both as it is now. IMHO GObject properties only would be the best, what do other's think?

Someone please review :)

Bye
Comment 1 Sebastian Dröge (slomo) 2007-07-23 21:14:50 UTC
Created attachment 92228 [details] [review]
lfo.diff
Comment 2 Sebastian Dröge (slomo) 2007-07-23 21:35:16 UTC
Another change that might be worth doing before the next core release: save the type and base type in GstControlSource instead of calculating it in every bind() implementation.

(and locking is missing in GstLFOControlSource, I'll add that tomorrow... apart from that it should be fine)
Comment 3 Sebastian Dröge (slomo) 2007-07-24 03:38:48 UTC
Created attachment 92249 [details] [review]
lfo.diff
Comment 4 Sebastian Dröge (slomo) 2007-07-31 05:34:31 UTC
Created attachment 92764 [details] [review]
lfo.diff

Drop the _set_waveform() function as the properties allow the same.
Comment 5 Stefan Sauer (gstreamer, gtkdoc dev) 2007-07-31 18:48:38 UTC
It misses the math.h include and linking against $LIBM in Makefile.am.
Comment 6 Sebastian Dröge (slomo) 2007-07-31 20:06:55 UTC
That's already fixed locally as I told you on IRC ;) anything else that needs adjustments?
Comment 7 Stefan Sauer (gstreamer, gtkdoc dev) 2007-08-02 12:27:40 UTC
Then it fine from my side.
Comment 8 Sebastian Dröge (slomo) 2007-08-03 15:53:02 UTC
2007-08-03  Sebastian Dröge  <slomo@circular-chaos.org>

	reviewed by: Stefan Kost <ensonic@users.sf.net>

	* libs/gst/controller/Makefile.am:
	* libs/gst/controller/gstlfocontrolsource.c: (_calculate_pos),
	(gst_lfo_waveform_get_type), (gst_lfo_control_source_reset),
	(gst_lfo_control_source_new),
	(gst_lfo_control_source_set_waveform),
	(gst_lfo_control_source_bind), (gst_lfo_control_source_init),
	(gst_lfo_control_source_finalize),
	(gst_lfo_control_source_dispose),
	(gst_lfo_control_source_set_property),
	(gst_lfo_control_source_get_property),
	(gst_lfo_control_source_class_init):
	* libs/gst/controller/gstlfocontrolsource.h:
	* libs/gst/controller/gstlfocontrolsourceprivate.h:
	API: Add GstLFOControlSource, a control source that gives values
	for specific timestamps based on several periodic waveforms.
	Fixes #459717.

	* tests/check/libs/controller.c: (GST_START_TEST),
	(gst_controller_suite):
	* docs/libs/gstreamer-libs-docs.sgml:
	* docs/libs/gstreamer-libs-sections.txt:
	* docs/libs/gstreamer-libs.types:
	Add documentation and unit tests for GstLFOControlSource.