From 71b9b27c29730abc4f4a8bcb3d073fa614c98f39 Mon Sep 17 00:00:00 2001 From: Youness Alaoui Date: Wed, 22 Aug 2007 20:16:53 +0000 Subject: [PATCH] [MOVED FROM GST-P-FARSIGHT] The DTMF tone generator now respects the volume argument passed in the event 20070822201653-4f0f6-8b7ff874006e11f5a74d0fd91e5a9a43cd082ada.gz --- gst/dtmf/gstdtmfsrc.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gst/dtmf/gstdtmfsrc.c b/gst/dtmf/gstdtmfsrc.c index 6a3e6e6..f04119c 100644 --- a/gst/dtmf/gstdtmfsrc.c +++ b/gst/dtmf/gstdtmfsrc.c @@ -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; -- 2.7.4