Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1986)

Unified Diff: webrtc/voice_engine/voe_dtmf_impl.cc

Issue 1723153002: Remove the VoEDtmf interface. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: rebase Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/voice_engine/voe_dtmf_impl.h ('k') | webrtc/voice_engine/voice_engine.gyp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/voice_engine/voe_dtmf_impl.cc
diff --git a/webrtc/voice_engine/voe_dtmf_impl.cc b/webrtc/voice_engine/voe_dtmf_impl.cc
deleted file mode 100644
index c8cc52cce7280c5b6afa9161972453e4c64f4e9b..0000000000000000000000000000000000000000
--- a/webrtc/voice_engine/voe_dtmf_impl.cc
+++ /dev/null
@@ -1,217 +0,0 @@
-/*
- * Copyright (c) 2012 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.
- */
-
-#include "webrtc/voice_engine/voe_dtmf_impl.h"
-
-#include "webrtc/base/criticalsection.h"
-#include "webrtc/system_wrappers/include/trace.h"
-#include "webrtc/voice_engine/channel.h"
-#include "webrtc/voice_engine/include/voe_errors.h"
-#include "webrtc/voice_engine/output_mixer.h"
-#include "webrtc/voice_engine/transmit_mixer.h"
-#include "webrtc/voice_engine/voice_engine_impl.h"
-
-namespace webrtc {
-
-VoEDtmf* VoEDtmf::GetInterface(VoiceEngine* voiceEngine) {
-#ifndef WEBRTC_VOICE_ENGINE_DTMF_API
- return NULL;
-#else
- if (NULL == voiceEngine) {
- return NULL;
- }
- VoiceEngineImpl* s = static_cast<VoiceEngineImpl*>(voiceEngine);
- s->AddRef();
- return s;
-#endif
-}
-
-#ifdef WEBRTC_VOICE_ENGINE_DTMF_API
-
-VoEDtmfImpl::VoEDtmfImpl(voe::SharedData* shared)
- : _dtmfFeedback(true), _dtmfDirectFeedback(false), _shared(shared) {
- WEBRTC_TRACE(kTraceMemory, kTraceVoice, VoEId(_shared->instance_id(), -1),
- "VoEDtmfImpl::VoEDtmfImpl() - ctor");
-}
-
-VoEDtmfImpl::~VoEDtmfImpl() {
- WEBRTC_TRACE(kTraceMemory, kTraceVoice, VoEId(_shared->instance_id(), -1),
- "VoEDtmfImpl::~VoEDtmfImpl() - dtor");
-}
-
-int VoEDtmfImpl::SendTelephoneEvent(int channel,
- int eventCode,
- bool outOfBand,
- int lengthMs,
- int attenuationDb) {
- WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1),
- "SendTelephoneEvent(channel=%d, eventCode=%d, outOfBand=%d,"
- "length=%d, attenuationDb=%d)",
- channel, eventCode, (int)outOfBand, lengthMs, attenuationDb);
- if (!_shared->statistics().Initialized()) {
- _shared->SetLastError(VE_NOT_INITED, kTraceError);
- return -1;
- }
- voe::ChannelOwner ch = _shared->channel_manager().GetChannel(channel);
- voe::Channel* channelPtr = ch.channel();
- if (channelPtr == NULL) {
- _shared->SetLastError(VE_CHANNEL_NOT_VALID, kTraceError,
- "SendTelephoneEvent() failed to locate channel");
- return -1;
- }
- if (!channelPtr->Sending()) {
- _shared->SetLastError(VE_NOT_SENDING, kTraceError,
- "SendTelephoneEvent() sending is not active");
- return -1;
- }
-
- // Sanity check
- const int maxEventCode = outOfBand ? static_cast<int>(kMaxTelephoneEventCode)
- : static_cast<int>(kMaxDtmfEventCode);
- const bool testFailed = ((eventCode < 0) || (eventCode > maxEventCode) ||
- (lengthMs < kMinTelephoneEventDuration) ||
- (lengthMs > kMaxTelephoneEventDuration) ||
- (attenuationDb < kMinTelephoneEventAttenuation) ||
- (attenuationDb > kMaxTelephoneEventAttenuation));
- if (testFailed) {
- _shared->SetLastError(VE_INVALID_ARGUMENT, kTraceError,
- "SendTelephoneEvent() invalid parameter(s)");
- return -1;
- }
-
- const bool isDtmf = (eventCode >= 0) && (eventCode <= kMaxDtmfEventCode);
- const bool playDtmfToneDirect =
- isDtmf && (_dtmfFeedback && _dtmfDirectFeedback);
-
- if (playDtmfToneDirect) {
- // Mute the microphone signal while playing back the tone directly.
- // This is to reduce the risk of introducing echo from the added output.
- _shared->transmit_mixer()->UpdateMuteMicrophoneTime(lengthMs);
-
- // Play out local feedback tone directly (same approach for both inband
- // and outband).
- // Reduce the length of the the tone with 80ms to reduce risk of echo.
- // For non-direct feedback, outband and inband cases are handled
- // differently.
- _shared->output_mixer()->PlayDtmfTone(eventCode, lengthMs - 80,
- attenuationDb);
- }
-
- if (outOfBand) {
- // The RTP/RTCP module will always deliver OnPlayTelephoneEvent when
- // an event is transmitted. It is up to the VoE to utilize it or not.
- // This flag ensures that feedback/playout is enabled; however, the
- // channel object must still parse out the Dtmf events (0-15) from
- // all possible events (0-255).
- const bool playDTFMEvent = (_dtmfFeedback && !_dtmfDirectFeedback);
-
- return channelPtr->SendTelephoneEventOutband(eventCode, lengthMs,
- attenuationDb, playDTFMEvent);
- } else {
- // For Dtmf tones, we want to ensure that inband tones are played out
- // in sync with the transmitted audio. This flag is utilized by the
- // channel object to determine if the queued Dtmf e vent shall also
- // be fed to the output mixer in the same step as input audio is
- // replaced by inband Dtmf tones.
- const bool playDTFMEvent =
- (isDtmf && _dtmfFeedback && !_dtmfDirectFeedback);
-
- return channelPtr->SendTelephoneEventInband(eventCode, lengthMs,
- attenuationDb, playDTFMEvent);
- }
-}
-
-int VoEDtmfImpl::SetSendTelephoneEventPayloadType(int channel,
- unsigned char type) {
- WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1),
- "SetSendTelephoneEventPayloadType(channel=%d, type=%u)", channel,
- type);
- if (!_shared->statistics().Initialized()) {
- _shared->SetLastError(VE_NOT_INITED, kTraceError);
- return -1;
- }
- voe::ChannelOwner ch = _shared->channel_manager().GetChannel(channel);
- voe::Channel* channelPtr = ch.channel();
- if (channelPtr == NULL) {
- _shared->SetLastError(
- VE_CHANNEL_NOT_VALID, kTraceError,
- "SetSendTelephoneEventPayloadType() failed to locate channel");
- return -1;
- }
- return channelPtr->SetSendTelephoneEventPayloadType(type);
-}
-
-int VoEDtmfImpl::GetSendTelephoneEventPayloadType(int channel,
- unsigned char& type) {
- if (!_shared->statistics().Initialized()) {
- _shared->SetLastError(VE_NOT_INITED, kTraceError);
- return -1;
- }
- voe::ChannelOwner ch = _shared->channel_manager().GetChannel(channel);
- voe::Channel* channelPtr = ch.channel();
- if (channelPtr == NULL) {
- _shared->SetLastError(
- VE_CHANNEL_NOT_VALID, kTraceError,
- "GetSendTelephoneEventPayloadType() failed to locate channel");
- return -1;
- }
- return channelPtr->GetSendTelephoneEventPayloadType(type);
-}
-
-int VoEDtmfImpl::PlayDtmfTone(int eventCode, int lengthMs, int attenuationDb) {
- WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1),
- "PlayDtmfTone(eventCode=%d, lengthMs=%d, attenuationDb=%d)",
- eventCode, lengthMs, attenuationDb);
-
- if (!_shared->statistics().Initialized()) {
- _shared->SetLastError(VE_NOT_INITED, kTraceError);
- return -1;
- }
- if (!_shared->audio_device()->Playing()) {
- _shared->SetLastError(VE_NOT_PLAYING, kTraceError,
- "PlayDtmfTone() no channel is playing out");
- return -1;
- }
- if ((eventCode < kMinDtmfEventCode) || (eventCode > kMaxDtmfEventCode) ||
- (lengthMs < kMinTelephoneEventDuration) ||
- (lengthMs > kMaxTelephoneEventDuration) ||
- (attenuationDb < kMinTelephoneEventAttenuation) ||
- (attenuationDb > kMaxTelephoneEventAttenuation)) {
- _shared->SetLastError(VE_INVALID_ARGUMENT, kTraceError,
- "PlayDtmfTone() invalid tone parameter(s)");
- return -1;
- }
- return _shared->output_mixer()->PlayDtmfTone(eventCode, lengthMs,
- attenuationDb);
-}
-
-int VoEDtmfImpl::SetDtmfFeedbackStatus(bool enable, bool directFeedback) {
- WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1),
- "SetDtmfFeedbackStatus(enable=%d, directFeeback=%d)",
- (int)enable, (int)directFeedback);
-
- rtc::CritScope cs(_shared->crit_sec());
-
- _dtmfFeedback = enable;
- _dtmfDirectFeedback = directFeedback;
-
- return 0;
-}
-
-int VoEDtmfImpl::GetDtmfFeedbackStatus(bool& enabled, bool& directFeedback) {
- rtc::CritScope cs(_shared->crit_sec());
-
- enabled = _dtmfFeedback;
- directFeedback = _dtmfDirectFeedback;
- return 0;
-}
-#endif // #ifdef WEBRTC_VOICE_ENGINE_DTMF_API
-
-} // namespace webrtc
« no previous file with comments | « webrtc/voice_engine/voe_dtmf_impl.h ('k') | webrtc/voice_engine/voice_engine.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698