#include "pc/dtmf_sender.h"
#include <ctype.h>
#include <string.h>
#include "api/task_queue/pending_task_safety_flag.h"
#include "api/task_queue/task_queue_base.h"
#include "api/units/time_delta.h"
#include "rtc_base/checks.h"
#include "rtc_base/logging.h"
namespace webrtc {
static const int kDtmfCommaDelay = …;
static const char kDtmfValidTones[] = …;
static const char kDtmfTonesTable[] = …;
static const int kDtmfDefaultDurationMs = …;
static const int kDtmfMinDurationMs = …;
static const int kDtmfMaxDurationMs = …;
static const int kDtmfDefaultGapMs = …;
static const int kDtmfMinGapMs = …;
bool GetDtmfCode(char tone, int* code) { … }
rtc::scoped_refptr<DtmfSender> DtmfSender::Create(
TaskQueueBase* signaling_thread,
DtmfProviderInterface* provider) { … }
DtmfSender::DtmfSender(TaskQueueBase* signaling_thread,
DtmfProviderInterface* provider)
: … { … }
void DtmfSender::OnDtmfProviderDestroyed() { … }
DtmfSender::~DtmfSender() { … }
void DtmfSender::RegisterObserver(DtmfSenderObserverInterface* observer) { … }
void DtmfSender::UnregisterObserver() { … }
bool DtmfSender::CanInsertDtmf() { … }
bool DtmfSender::InsertDtmf(const std::string& tones,
int duration,
int inter_tone_gap,
int comma_delay) { … }
std::string DtmfSender::tones() const { … }
int DtmfSender::duration() const { … }
int DtmfSender::inter_tone_gap() const { … }
int DtmfSender::comma_delay() const { … }
void DtmfSender::QueueInsertDtmf(uint32_t delay_ms) { … }
void DtmfSender::DoInsertDtmf() { … }
void DtmfSender::StopSending() { … }
}