summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Baker <steve@stevebaker.org>2002-03-04 18:56:24 +0000
committerSteve Baker <steve@stevebaker.org>2002-03-04 18:56:24 +0000
commitb2e874b9e58bcb8cb5b3c02523763d4abfacd57b (patch)
treea5cf83ba62f219ececedd2dbb1b10f1791147c13
parentb758b9efec9204d1f9c6178989cfe18d4d54a493 (diff)
downloadgstreamer-plugins-base-b2e874b9e58bcb8cb5b3c02523763d4abfacd57b.tar.gz
reflect new dparams api
Original commit message from CVS: reflect new dparams api
-rw-r--r--gst/sine/demo-dparams.c86
-rw-r--r--gst/sine/gstsinesrc.c38
2 files changed, 75 insertions, 49 deletions
diff --git a/gst/sine/demo-dparams.c b/gst/sine/demo-dparams.c
index ee966dc03..1881a5284 100644
--- a/gst/sine/demo-dparams.c
+++ b/gst/sine/demo-dparams.c
@@ -1,40 +1,42 @@
#include <stdio.h>
+#include <string.h>
#include <math.h>
#include <gtk/gtk.h>
#include <gst/gst.h>
#include <gst/control/control.h>
+#define ZERO(mem) memset(&mem, 0, sizeof(mem))
+
static gint quit_live(GtkWidget *window, GdkEventAny *e, gpointer data) {
gtk_main_quit();
return FALSE;
}
static void dynparm_log_value_changed(GtkAdjustment *adj,GstDParam *dparam) {
- GValue **point;
+ GValue *set_val;
g_return_if_fail(dparam != NULL);
g_return_if_fail(GST_IS_DPARAM (dparam));
- point = GST_DPARAM_GET_POINT(dparam, 0LL);
+ set_val = g_object_get_data(G_OBJECT(dparam), "set_val");
+ g_return_if_fail(set_val != NULL);
+ g_value_set_float(set_val, exp(adj->value));
- GST_DPARAM_LOCK(dparam);
- g_print("setting value from %f to %f\n", g_value_get_float(point[0]), (gfloat)exp(adj->value));
- g_value_set_float(point[0], (gfloat)exp(adj->value));
- GST_DPARAM_READY_FOR_UPDATE(dparam) = TRUE;
- GST_DPARAM_UNLOCK(dparam);
+ g_print("setting value to %f\n", g_value_get_float(set_val));
+ g_object_set_property(G_OBJECT(dparam), "value_float", set_val);
}
static void dynparm_value_changed(GtkAdjustment *adj,GstDParam *dparam) {
- GValue **point;
+ GValue *set_val;
g_return_if_fail(dparam != NULL);
g_return_if_fail(GST_IS_DPARAM (dparam));
- point = GST_DPARAM_GET_POINT(dparam, 0LL);
+ set_val = g_object_get_data(G_OBJECT(dparam), "set_val");
+ g_return_if_fail(set_val != NULL);
+ g_value_set_float(set_val, adj->value);
- GST_DPARAM_LOCK(dparam);
- g_print("setting value from %f to %f\n", g_value_get_float(point[0]), adj->value);
- g_value_set_float(point[0], adj->value);
- GST_DPARAM_READY_FOR_UPDATE(dparam) = TRUE;
- GST_DPARAM_UNLOCK(dparam);
+ g_print("setting value to %f\n", adj->value);
+ g_object_set_property(G_OBJECT(dparam), "value_float", set_val);
+
}
@@ -50,9 +52,8 @@ int main(int argc,char *argv[]) {
GstDParamManager *dpman;
GstDParam *volume;
GstDParam *freq;
- GstDParamSpec *spec;
-
- GValue **vals;
+ GParamSpecFloat *spec;
+ GValue *set_val, temp_val;
gtk_init(&argc,&argv);
gst_init(&argc,&argv);
@@ -72,8 +73,27 @@ int main(int argc,char *argv[]) {
dpman = gst_dpman_get_manager (sinesrc);
- freq = gst_dparam_smooth_new(G_TYPE_FLOAT);
- vals = GST_DPARAM_GET_POINT(freq, 0LL);
+ freq = gst_dpsmooth_new(G_TYPE_FLOAT);
+ set_val = g_new0(GValue,1);
+ g_value_init(set_val, G_TYPE_FLOAT);
+ g_object_set_data(G_OBJECT(freq), "set_val", set_val);
+
+ ZERO(temp_val);
+ g_value_init(&temp_val, G_TYPE_INT64);
+ g_value_set_int64(&temp_val, 2000000LL);
+ g_object_set_property(G_OBJECT(freq), "update_period", &temp_val);
+
+ ZERO(temp_val);
+ g_value_init(&temp_val, G_TYPE_FLOAT);
+ g_value_set_float(&temp_val, 0.693);
+ g_object_set_property(G_OBJECT(freq), "slope_delta_float", &temp_val);
+
+ ZERO(temp_val);
+ g_value_init(&temp_val, G_TYPE_INT64);
+ g_value_set_int64(&temp_val, 50000000LL);
+ g_object_set_property(G_OBJECT(freq), "slope_time", &temp_val);
+
+/* vals = GST_DPARAM_GET_POINT(freq, 0LL);
g_value_set_float(vals[0], 10.0);
@@ -86,9 +106,13 @@ int main(int argc,char *argv[]) {
// set the default update period to 0.5ms, or 2000Hz
GST_DPARAM_DEFAULT_UPDATE_PERIOD(freq) = 2000000LL;
+ */
+ volume = gst_dparam_new(G_TYPE_FLOAT);
+ set_val = g_new0(GValue,1);
+ g_value_init(set_val, G_TYPE_FLOAT);
+ g_object_set_data(G_OBJECT(volume), "set_val", set_val);
- volume = gst_dparam_smooth_new(G_TYPE_FLOAT);
- vals = GST_DPARAM_GET_POINT(volume, 0LL);
+/* vals = GST_DPARAM_GET_POINT(volume, 0LL);
// this defines the maximum slope that this
// param can change. This says that in 10ms
@@ -98,7 +122,7 @@ int main(int argc,char *argv[]) {
// set the default update period to 0.5ms, or 2000Hz
GST_DPARAM_DEFAULT_UPDATE_PERIOD(volume) = 2000000LL;
-
+ */
g_assert(gst_dpman_attach_dparam (dpman, "volume", volume));
g_assert(gst_dpman_attach_dparam (dpman, "freq", freq));
@@ -111,18 +135,20 @@ int main(int argc,char *argv[]) {
hbox = gtk_hbox_new(TRUE,0);
gtk_container_add(GTK_CONTAINER(window),hbox);
- spec = gst_dpman_get_dparam_spec (dpman, "volume");
- volume_adj = (GtkAdjustment*)gtk_adjustment_new(g_value_get_float(spec->default_val),
- g_value_get_float(spec->min_val),
- g_value_get_float(spec->max_val), 0.1, 0.01, 0.01);
+ spec = (GParamSpecFloat*)gst_dpman_get_param_spec (dpman, "volume");
+ volume_adj = (GtkAdjustment*)gtk_adjustment_new(spec->default_value,
+ spec->minimum,
+ spec->maximum, 0.1, 0.01, 0.01);
volume_slider = gtk_vscale_new(volume_adj);
gtk_scale_set_digits(GTK_SCALE(volume_slider), 2);
gtk_box_pack_start(GTK_BOX(hbox),volume_slider,TRUE,TRUE,0);
- spec = gst_dpman_get_dparam_spec (dpman, "freq");
- freq_adj = (GtkAdjustment*)gtk_adjustment_new((gfloat)log(g_value_get_float(spec->default_val)),
- (gfloat)log(g_value_get_float(spec->min_val)),
- (gfloat)log(g_value_get_float(spec->max_val)), 0.1, 0.01, 0.01);
+ spec = (GParamSpecFloat*)gst_dpman_get_param_spec (dpman, "freq");
+ freq_adj = (GtkAdjustment*)gtk_adjustment_new((gfloat)log(spec->default_value),
+ (gfloat)log(spec->minimum),
+ (gfloat)log(spec->maximum), 0.1, 0.01, 0.01);
+
+
freq_slider = gtk_vscale_new(freq_adj);
gtk_scale_set_digits(GTK_SCALE(freq_slider), 2);
gtk_box_pack_start(GTK_BOX(hbox),freq_slider,TRUE,TRUE,0);
diff --git a/gst/sine/gstsinesrc.c b/gst/sine/gstsinesrc.c
index 199be9ad1..9dfbf42f8 100644
--- a/gst/sine/gstsinesrc.c
+++ b/gst/sine/gstsinesrc.c
@@ -76,7 +76,6 @@ GST_PADTEMPLATE_FACTORY (sinesrc_src_factory,
static void gst_sinesrc_class_init (GstSineSrcClass *klass);
static void gst_sinesrc_init (GstSineSrc *src);
-static void gst_sinesrc_sinkconnect (GstPad *pad, GstCaps *caps);
static void gst_sinesrc_set_property (GObject *object, guint prop_id,
const GValue *value, GParamSpec *pspec);
static void gst_sinesrc_get_property (GObject *object, guint prop_id,
@@ -157,8 +156,7 @@ gst_sinesrc_class_init (GstSineSrcClass *klass)
static void
gst_sinesrc_init (GstSineSrc *src)
{
- GstDParamSpec *spec;
-
+
src->srcpad = gst_pad_new_from_template (
GST_PADTEMPLATE_GET (sinesrc_src_factory), "src");
gst_element_add_pad(GST_ELEMENT(src), src->srcpad);
@@ -178,23 +176,25 @@ gst_sinesrc_init (GstSineSrc *src)
src->seq = 0;
src->dpman = gst_dpman_new ("sinesrc_dpman", GST_ELEMENT(src));
+
+ gst_dpman_add_required_dparam_callback (
+ src->dpman,
+ g_param_spec_float("freq","Frequency (Hz)","Frequency of the tone",
+ 10.0, 10000.0, 350.0, G_PARAM_READWRITE),
+ TRUE,
+ FALSE,
+ gst_sinesrc_update_freq,
+ src
+ );
- gst_dpman_add_required_dparam_callback (src->dpman, "freq", G_TYPE_FLOAT, gst_sinesrc_update_freq, src);
- spec = gst_dpman_get_dparam_spec (src->dpman, "freq");
- g_value_set_float(spec->min_val, 10.0);
- g_value_set_float(spec->max_val, 10000.0);
- g_value_set_float(spec->default_val, 350.0);
- spec->unit_name = "frequency";
- spec->is_log = TRUE;
-
- gst_dpman_add_required_dparam_direct (src->dpman, "volume", G_TYPE_FLOAT, &(src->volume));
- spec = gst_dpman_get_dparam_spec (src->dpman, "volume");
- g_value_set_float(spec->min_val, 0.0);
- g_value_set_float(spec->max_val, 1.0);
- g_value_set_float(spec->default_val, 0.8);
- spec->unit_name = "scalar";
-
- src->volume = 0.0;
+ gst_dpman_add_required_dparam_direct (
+ src->dpman,
+ g_param_spec_float("volume","Volume","Volume of the tone",
+ 0.0, 1.0, 0.8, G_PARAM_READWRITE),
+ FALSE,
+ FALSE,
+ &(src->volume)
+ );
gst_dpman_set_rate_change_pad(src->dpman, src->srcpad);