+2004-02-18 David Schleef <ds@schleef.org>
+
+ * gst/sine/demo-dparams.c: (quit_live),
+ (dynparm_log_value_changed), (dynparm_value_changed), (main):
+ Use double dparams, not float.
+ * gst/sine/gstsinesrc.c: (gst_sinesrc_class_init),
+ (gst_sinesrc_init): Change sync default to FALSE, since multiple
+ sync'd elements don't really work correctly.
+ * gst/volume/gstvolume.c: (volume_class_init), (volume_init),
+ (volume_update_volume), (volume_get_property): Change dparam
+ to double.
+
2004-02-18 Julien MOUTTE <julien@moutte.net>
* sys/ximage/ximagesink.c:
#define ZERO(mem) memset(&mem, 0, sizeof(mem))
-static gint quit_live(GtkWidget *window, GdkEventAny *e, gpointer data) {
+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) {
+static void dynparm_log_value_changed(GtkAdjustment *adj,GstDParam *dparam)
+{
gdouble value;
g_return_if_fail(dparam != NULL);
g_return_if_fail(GST_IS_DPARAM (dparam));
g_object_set(G_OBJECT(dparam), "value_double", value, NULL);
}
-static void dynparm_value_changed(GtkAdjustment *adj,GstDParam *dparam) {
+static void dynparm_value_changed(GtkAdjustment *adj,GstDParam *dparam)
+{
g_return_if_fail(dparam != NULL);
g_return_if_fail(GST_IS_DPARAM (dparam));
GstDParamManager *dpman;
GstDParam *volume;
GstDParam *freq;
- GParamSpecFloat *spec;
+ GParamSpecDouble *spec;
gtk_init(&argc,&argv);
gst_init(&argc,&argv);
g_assert(gst_dpman_attach_dparam (dpman, "freq", freq));
gst_dpman_set_mode(dpman, "asynchronous");
- spec = (GParamSpecFloat*)gst_dpman_get_param_spec (dpman, "freq");
+ spec = (GParamSpecDouble*)gst_dpman_get_param_spec (dpman, "freq");
freq_adj = (GtkAdjustment*)gtk_adjustment_new(log(spec->default_value),
log(spec->minimum), log(spec->maximum), 0.1, 0.01, 0.01);
g_object_set(G_OBJECT(volfilter), "mute", FALSE, NULL);
- spec = (GParamSpecFloat*)gst_dpman_get_param_spec (dpman, "volume");
+ spec = (GParamSpecDouble*)gst_dpman_get_param_spec (dpman, "volume");
volume_adj = (GtkAdjustment*)gtk_adjustment_new(spec->default_value, 0.0, 1.2, 0.1, 0.01, 0.01);
volume_slider = gtk_vscale_new(volume_adj);
gtk_scale_set_digits(GTK_SCALE(volume_slider), 2);
0.0, 1.0, 0.8, G_PARAM_READWRITE));
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_SYNC,
g_param_spec_boolean ("sync", "Sync", "Synchronize to clock",
- TRUE, G_PARAM_READWRITE));
+ FALSE, G_PARAM_READWRITE));
gobject_class->set_property = gst_sinesrc_set_property;
gobject_class->get_property = gst_sinesrc_get_property;
src->samplerate = 44100;
src->volume = 1.0;
src->freq = 440.0;
- src->sync = TRUE;
+ src->sync = FALSE;
src->table_pos = 0.0;
src->table_size = 1024;
#define VOLUME_UNITY_INT 8192 /* internal int for unity */
#define VOLUME_UNITY_BIT_SHIFT 13 /* number of bits to shift
for unity */
-#define VOLUME_MAX_FLOAT 4.0
+#define VOLUME_MAX_DOUBLE 4.0
#define VOLUME_MAX_INT16 32767
#define VOLUME_MIN_INT16 -32768
FALSE,G_PARAM_READWRITE));
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_VOLUME,
- g_param_spec_float("volume","volume","volume",
- 0.0,VOLUME_MAX_FLOAT,1.0,G_PARAM_READWRITE));
+ g_param_spec_double("volume","volume","volume",
+ 0.0,VOLUME_MAX_DOUBLE,1.0,G_PARAM_READWRITE));
gobject_class->set_property = volume_set_property;
gobject_class->get_property = volume_get_property;
);
gst_dpman_add_required_dparam_callback (
filter->dpman,
- g_param_spec_float("volume","Volume","Volume of the audio",
- 0.0, VOLUME_MAX_FLOAT, 1.0, G_PARAM_READWRITE),
+ g_param_spec_double("volume","Volume","Volume of the audio",
+ 0.0, VOLUME_MAX_DOUBLE, 1.0, G_PARAM_READWRITE),
"scalar",
volume_update_volume,
filter
GstVolume *filter = (GstVolume*)data;
g_return_if_fail(GST_IS_VOLUME(filter));
- filter->volume_f = g_value_get_float (value);
+ filter->volume_f = g_value_get_double (value);
filter->volume_i = filter->volume_f*VOLUME_UNITY_INT;
if (filter->mute){
filter->real_vol_f = 0.0;
g_value_set_boolean (value, filter->mute);
break;
case ARG_VOLUME:
- g_value_set_float (value, filter->volume_f);
+ g_value_set_double (value, filter->volume_f);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);