Line data Source code
1 : /*
2 : * Copyright (c) 2011 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_MODULES_RTP_RTCP_SOURCE_DTMF_QUEUE_H_
12 : #define WEBRTC_MODULES_RTP_RTCP_SOURCE_DTMF_QUEUE_H_
13 :
14 : #include <list>
15 :
16 : #include "webrtc/base/criticalsection.h"
17 :
18 : namespace webrtc {
19 : class DtmfQueue {
20 : public:
21 0 : struct Event {
22 : uint16_t duration_ms = 0;
23 : uint8_t payload_type = 0;
24 : uint8_t key = 0;
25 : uint8_t level = 0;
26 : };
27 :
28 : DtmfQueue();
29 : ~DtmfQueue();
30 :
31 : bool AddDtmf(const Event& event);
32 : bool NextDtmf(Event* event);
33 : bool PendingDtmf() const;
34 :
35 : private:
36 : rtc::CriticalSection dtmf_critsect_;
37 : std::list<Event> queue_;
38 : };
39 : } // namespace webrtc
40 :
41 : #endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_DTMF_QUEUE_H_
|