1 /*
2  *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3  *
4  *  Use of this source code is governed by a BSD-style license
5  *  that can be found in the LICENSE file in the root of the source
6  *  tree. An additional intellectual property rights grant can be found
7  *  in the file PATENTS.  All contributing project authors may
8  *  be found in the AUTHORS file in the root of the source tree.
9  */
10 
11 #ifndef WEBRTC_VOICE_ENGINE_VOE_DTMF_IMPL_H
12 #define WEBRTC_VOICE_ENGINE_VOE_DTMF_IMPL_H
cleverreach_deploynull13 
14 #include "webrtc/voice_engine/include/voe_dtmf.h"
15 #include "webrtc/voice_engine/shared_data.h"
16 
17 namespace webrtc
18 {
19 
20 class VoEDtmfImpl : public VoEDtmf
21 {
22 public:
23     virtual int SendTelephoneEvent(
24         int channel,
25         int eventCode,
26         bool outOfBand = true,
27         int lengthMs = 160,
28         int attenuationDb = 10);
29 
30     virtual int SetSendTelephoneEventPayloadType(int channel,
31                                                  unsigned char type);
32 
33     virtual int GetSendTelephoneEventPayloadType(int channel,
34                                                  unsigned char& type);
35 
36     virtual int SetDtmfFeedbackStatus(bool enable,
37         bool directFeedback = false);
38 
39     virtual int GetDtmfFeedbackStatus(bool& enabled, bool& directFeedback);
40 
41     virtual int PlayDtmfTone(int eventCode,
42                              int lengthMs = 200,
43                              int attenuationDb = 10);
44 
45 protected:
46     VoEDtmfImpl(voe::SharedData* shared);
47     virtual ~VoEDtmfImpl();
48 
49 private:
50     bool _dtmfFeedback;
51     bool _dtmfDirectFeedback;
52     voe::SharedData* _shared;
53 };
54 
55 }  // namespace webrtc
56 
57 #endif  // WEBRTC_VOICE_ENGINE_VOE_DTMF_IMPL_H
58