[MOVED FROM GST-P-FARSIGHT] The DTMF tone generator now respects the volume argument passed in the event

20070822201653-4f0f6-8b7ff874006e11f5a74d0fd91e5a9a43cd082ada.gz
This commit is contained in:
Youness Alaoui 2007-08-22 20:16:53 +00:00 committed by Edward Hervey
parent 82072435f8
commit 16a5d7d91c

View file

@ -621,6 +621,7 @@ gst_dtmf_src_generate_tone(GstDTMFSrcEvent *event, DTMF_KEY key, float duration,
gint tone_size;
double i = 0;
double amplitude, f1, f2;
double volume_factor;
/* Create a buffer for the tone */
tone_size = ((duration/1000)*SAMPLE_RATE*SAMPLE_SIZE*CHANNELS)/8;
@ -630,6 +631,8 @@ gst_dtmf_src_generate_tone(GstDTMFSrcEvent *event, DTMF_KEY key, float duration,
p = (gint16 *) GST_BUFFER_MALLOCDATA (buffer);
volume_factor = pow (10, (-event->volume) / 20);
/*
* For each sample point we calculate 'x' as the
* the amplitude value.
@ -643,6 +646,9 @@ gst_dtmf_src_generate_tone(GstDTMFSrcEvent *event, DTMF_KEY key, float duration,
amplitude = (f1 + f2) / 2;
/* Adjust the volume */
amplitude *= volume_factor;
/* Make the [-1:1] interval into a [-32767:32767] interval */
amplitude *= 32767;