74 lines
2.4 KiB
C
74 lines
2.4 KiB
C
/*
|
|
* Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
/*
|
|
* This file contains the DTMF tone generator function.
|
|
*/
|
|
|
|
#ifndef DTMF_TONEGEN_H
|
|
#define DTMF_TONEGEN_H
|
|
|
|
#include "typedefs.h"
|
|
|
|
#include "neteq_defines.h"
|
|
|
|
#ifdef NETEQ_ATEVENT_DECODE
|
|
/* Must compile NetEQ with DTMF support to enable the functionality */
|
|
|
|
#define DTMF_AMP_LOW 23171 /* 3 dB lower than the high frequency */
|
|
|
|
/* The DTMF generator struct (part of DSP main struct DSPInst_t) */
|
|
typedef struct dtmf_tone_inst_t_
|
|
{
|
|
|
|
WebRtc_Word16 reinit; /* non-zero if the oscillator model should
|
|
be reinitialized for next event */
|
|
WebRtc_Word16 oldOutputLow[2]; /* oscillator recursion history (low tone) */
|
|
WebRtc_Word16 oldOutputHigh[2]; /* oscillator recursion history (high tone) */
|
|
|
|
int lastDtmfSample; /* index to the first non-DTMF sample in the
|
|
speech history, if non-negative */
|
|
}dtmf_tone_inst_t;
|
|
|
|
/****************************************************************************
|
|
* WebRtcNetEQ_DTMFGenerate(...)
|
|
*
|
|
* Generate 10 ms DTMF signal according to input parameters.
|
|
*
|
|
* Input:
|
|
* - DTMFdecInst : DTMF instance
|
|
* - value : DTMF event number (0-15)
|
|
* - volume : Volume of generated signal (0-36)
|
|
* Volume is given in negative dBm0, i.e., volume == 0
|
|
* means 0 dBm0 while volume == 36 mean -36 dBm0.
|
|
* - sampFreq : Sample rate in Hz
|
|
*
|
|
* Output:
|
|
* - signal : Pointer to vector where DTMF signal is stored;
|
|
* Vector must be at least sampFreq/100 samples long.
|
|
* - DTMFdecInst : Updated DTMF instance
|
|
*
|
|
* Return value : >0 - Number of samples written to signal
|
|
* : <0 - Error
|
|
*/
|
|
|
|
WebRtc_Word16 WebRtcNetEQ_DTMFGenerate(dtmf_tone_inst_t *DTMFdecInst,
|
|
WebRtc_Word16 value,
|
|
WebRtc_Word16 volume,
|
|
WebRtc_Word16 *signal,
|
|
WebRtc_UWord16 sampFreq,
|
|
WebRtc_Word16 frameLen
|
|
);
|
|
|
|
#endif /* NETEQ_ATEVENT_DECODE */
|
|
|
|
#endif /* DTMF_TONEGEN_H */
|
|
|