| Index: voice_engine/voe_file_impl.cc
|
| diff --git a/voice_engine/voe_file_impl.cc b/voice_engine/voe_file_impl.cc
|
| deleted file mode 100644
|
| index 9bf8c7a1e00d5c932a2fddf41859b4bba9048c2d..0000000000000000000000000000000000000000
|
| --- a/voice_engine/voe_file_impl.cc
|
| +++ /dev/null
|
| @@ -1,466 +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 "voice_engine/voe_file_impl.h"
|
| -
|
| -#include "system_wrappers/include/file_wrapper.h"
|
| -#include "system_wrappers/include/trace.h"
|
| -#include "voice_engine/channel.h"
|
| -#include "voice_engine/include/voe_errors.h"
|
| -#include "voice_engine/output_mixer.h"
|
| -#include "voice_engine/transmit_mixer.h"
|
| -#include "voice_engine/voice_engine_impl.h"
|
| -
|
| -namespace webrtc {
|
| -
|
| -VoEFile* VoEFile::GetInterface(VoiceEngine* voiceEngine) {
|
| - if (NULL == voiceEngine) {
|
| - return NULL;
|
| - }
|
| - VoiceEngineImpl* s = static_cast<VoiceEngineImpl*>(voiceEngine);
|
| - s->AddRef();
|
| - return s;
|
| -}
|
| -
|
| -VoEFileImpl::VoEFileImpl(voe::SharedData* shared) : _shared(shared) {
|
| - WEBRTC_TRACE(kTraceMemory, kTraceVoice, VoEId(_shared->instance_id(), -1),
|
| - "VoEFileImpl::VoEFileImpl() - ctor");
|
| -}
|
| -
|
| -VoEFileImpl::~VoEFileImpl() {
|
| - WEBRTC_TRACE(kTraceMemory, kTraceVoice, VoEId(_shared->instance_id(), -1),
|
| - "VoEFileImpl::~VoEFileImpl() - dtor");
|
| -}
|
| -
|
| -int VoEFileImpl::StartPlayingFileLocally(int channel,
|
| - const char fileNameUTF8[1024],
|
| - bool loop,
|
| - FileFormats format,
|
| - float volumeScaling,
|
| - int startPointMs,
|
| - int stopPointMs) {
|
| - WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1),
|
| - "StartPlayingFileLocally(channel=%d, fileNameUTF8[]=%s, "
|
| - "loop=%d, format=%d, volumeScaling=%5.3f, startPointMs=%d,"
|
| - " stopPointMs=%d)",
|
| - channel, fileNameUTF8, loop, format, volumeScaling, startPointMs,
|
| - stopPointMs);
|
| - static_assert(1024 == FileWrapper::kMaxFileNameSize, "");
|
| - 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,
|
| - "StartPlayingFileLocally() failed to locate channel");
|
| - return -1;
|
| - }
|
| -
|
| - return channelPtr->StartPlayingFileLocally(fileNameUTF8, loop, format,
|
| - startPointMs, volumeScaling,
|
| - stopPointMs, NULL);
|
| -}
|
| -
|
| -int VoEFileImpl::StartPlayingFileLocally(int channel,
|
| - InStream* stream,
|
| - FileFormats format,
|
| - float volumeScaling,
|
| - int startPointMs,
|
| - int stopPointMs) {
|
| - WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1),
|
| - "StartPlayingFileLocally(channel=%d, stream, format=%d, "
|
| - "volumeScaling=%5.3f, startPointMs=%d, stopPointMs=%d)",
|
| - channel, format, volumeScaling, startPointMs, stopPointMs);
|
| -
|
| - 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,
|
| - "StartPlayingFileLocally() failed to locate channel");
|
| - return -1;
|
| - }
|
| -
|
| - return channelPtr->StartPlayingFileLocally(stream, format, startPointMs,
|
| - volumeScaling, stopPointMs, NULL);
|
| -}
|
| -
|
| -int VoEFileImpl::StopPlayingFileLocally(int channel) {
|
| - WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1),
|
| - "StopPlayingFileLocally()");
|
| - 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,
|
| - "StopPlayingFileLocally() failed to locate channel");
|
| - return -1;
|
| - }
|
| - return channelPtr->StopPlayingFileLocally();
|
| -}
|
| -
|
| -int VoEFileImpl::IsPlayingFileLocally(int channel) {
|
| - 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,
|
| - "StopPlayingFileLocally() failed to locate channel");
|
| - return -1;
|
| - }
|
| - return channelPtr->IsPlayingFileLocally();
|
| -}
|
| -
|
| -int VoEFileImpl::StartPlayingFileAsMicrophone(int channel,
|
| - const char fileNameUTF8[1024],
|
| - bool loop,
|
| - bool mixWithMicrophone,
|
| - FileFormats format,
|
| - float volumeScaling) {
|
| - WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1),
|
| - "StartPlayingFileAsMicrophone(channel=%d, fileNameUTF8=%s, "
|
| - "loop=%d, mixWithMicrophone=%d, format=%d, "
|
| - "volumeScaling=%5.3f)",
|
| - channel, fileNameUTF8, loop, mixWithMicrophone, format,
|
| - volumeScaling);
|
| - static_assert(1024 == FileWrapper::kMaxFileNameSize, "");
|
| - if (!_shared->statistics().Initialized()) {
|
| - _shared->SetLastError(VE_NOT_INITED, kTraceError);
|
| - return -1;
|
| - }
|
| -
|
| - const uint32_t startPointMs(0);
|
| - const uint32_t stopPointMs(0);
|
| -
|
| - if (channel == -1) {
|
| - int res = _shared->transmit_mixer()->StartPlayingFileAsMicrophone(
|
| - fileNameUTF8, loop, format, startPointMs, volumeScaling, stopPointMs,
|
| - NULL);
|
| - if (res) {
|
| - WEBRTC_TRACE(
|
| - kTraceError, kTraceVoice, VoEId(_shared->instance_id(), -1),
|
| - "StartPlayingFileAsMicrophone() failed to start playing file");
|
| - return (-1);
|
| - } else {
|
| - _shared->transmit_mixer()->SetMixWithMicStatus(mixWithMicrophone);
|
| - return (0);
|
| - }
|
| - } else {
|
| - // Add file after demultiplexing <=> affects one channel only
|
| - voe::ChannelOwner ch = _shared->channel_manager().GetChannel(channel);
|
| - voe::Channel* channelPtr = ch.channel();
|
| - if (channelPtr == NULL) {
|
| - _shared->SetLastError(
|
| - VE_CHANNEL_NOT_VALID, kTraceError,
|
| - "StartPlayingFileAsMicrophone() failed to locate channel");
|
| - return -1;
|
| - }
|
| -
|
| - int res = channelPtr->StartPlayingFileAsMicrophone(
|
| - fileNameUTF8, loop, format, startPointMs, volumeScaling, stopPointMs,
|
| - NULL);
|
| - if (res) {
|
| - WEBRTC_TRACE(
|
| - kTraceError, kTraceVoice, VoEId(_shared->instance_id(), -1),
|
| - "StartPlayingFileAsMicrophone() failed to start playing file");
|
| - return -1;
|
| - } else {
|
| - channelPtr->SetMixWithMicStatus(mixWithMicrophone);
|
| - return 0;
|
| - }
|
| - }
|
| -}
|
| -
|
| -int VoEFileImpl::StartPlayingFileAsMicrophone(int channel,
|
| - InStream* stream,
|
| - bool mixWithMicrophone,
|
| - FileFormats format,
|
| - float volumeScaling) {
|
| - WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1),
|
| - "StartPlayingFileAsMicrophone(channel=%d, stream,"
|
| - " mixWithMicrophone=%d, format=%d, volumeScaling=%5.3f)",
|
| - channel, mixWithMicrophone, format, volumeScaling);
|
| -
|
| - if (!_shared->statistics().Initialized()) {
|
| - _shared->SetLastError(VE_NOT_INITED, kTraceError);
|
| - return -1;
|
| - }
|
| -
|
| - const uint32_t startPointMs(0);
|
| - const uint32_t stopPointMs(0);
|
| -
|
| - if (channel == -1) {
|
| - int res = _shared->transmit_mixer()->StartPlayingFileAsMicrophone(
|
| - stream, format, startPointMs, volumeScaling, stopPointMs, NULL);
|
| - if (res) {
|
| - WEBRTC_TRACE(kTraceError, kTraceVoice, VoEId(_shared->instance_id(), -1),
|
| - "StartPlayingFileAsMicrophone() failed to start "
|
| - "playing stream");
|
| - return (-1);
|
| - } else {
|
| - _shared->transmit_mixer()->SetMixWithMicStatus(mixWithMicrophone);
|
| - return (0);
|
| - }
|
| - } else {
|
| - // Add file after demultiplexing <=> affects one channel only
|
| - voe::ChannelOwner ch = _shared->channel_manager().GetChannel(channel);
|
| - voe::Channel* channelPtr = ch.channel();
|
| - if (channelPtr == NULL) {
|
| - _shared->SetLastError(
|
| - VE_CHANNEL_NOT_VALID, kTraceError,
|
| - "StartPlayingFileAsMicrophone() failed to locate channel");
|
| - return -1;
|
| - }
|
| -
|
| - int res = channelPtr->StartPlayingFileAsMicrophone(
|
| - stream, format, startPointMs, volumeScaling, stopPointMs, NULL);
|
| - if (res) {
|
| - WEBRTC_TRACE(kTraceError, kTraceVoice, VoEId(_shared->instance_id(), -1),
|
| - "StartPlayingFileAsMicrophone() failed to start "
|
| - "playing stream");
|
| - return -1;
|
| - } else {
|
| - channelPtr->SetMixWithMicStatus(mixWithMicrophone);
|
| - return 0;
|
| - }
|
| - }
|
| -}
|
| -
|
| -int VoEFileImpl::StopPlayingFileAsMicrophone(int channel) {
|
| - WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1),
|
| - "StopPlayingFileAsMicrophone(channel=%d)", channel);
|
| - if (!_shared->statistics().Initialized()) {
|
| - _shared->SetLastError(VE_NOT_INITED, kTraceError);
|
| - return -1;
|
| - }
|
| - if (channel == -1) {
|
| - // Stop adding file before demultiplexing <=> affects all channels
|
| - return _shared->transmit_mixer()->StopPlayingFileAsMicrophone();
|
| - } else {
|
| - // Stop adding file after demultiplexing <=> affects one channel only
|
| - voe::ChannelOwner ch = _shared->channel_manager().GetChannel(channel);
|
| - voe::Channel* channelPtr = ch.channel();
|
| - if (channelPtr == NULL) {
|
| - _shared->SetLastError(
|
| - VE_CHANNEL_NOT_VALID, kTraceError,
|
| - "StopPlayingFileAsMicrophone() failed to locate channel");
|
| - return -1;
|
| - }
|
| - return channelPtr->StopPlayingFileAsMicrophone();
|
| - }
|
| -}
|
| -
|
| -int VoEFileImpl::IsPlayingFileAsMicrophone(int channel) {
|
| - WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1),
|
| - "IsPlayingFileAsMicrophone(channel=%d)", channel);
|
| - if (!_shared->statistics().Initialized()) {
|
| - _shared->SetLastError(VE_NOT_INITED, kTraceError);
|
| - return -1;
|
| - }
|
| - if (channel == -1) {
|
| - return _shared->transmit_mixer()->IsPlayingFileAsMicrophone();
|
| - } else {
|
| - // Stop adding file after demultiplexing <=> affects one channel only
|
| - voe::ChannelOwner ch = _shared->channel_manager().GetChannel(channel);
|
| - voe::Channel* channelPtr = ch.channel();
|
| - if (channelPtr == NULL) {
|
| - _shared->SetLastError(
|
| - VE_CHANNEL_NOT_VALID, kTraceError,
|
| - "IsPlayingFileAsMicrophone() failed to locate channel");
|
| - return -1;
|
| - }
|
| - return channelPtr->IsPlayingFileAsMicrophone();
|
| - }
|
| -}
|
| -
|
| -int VoEFileImpl::StartRecordingPlayout(int channel,
|
| - const char* fileNameUTF8,
|
| - CodecInst* compression,
|
| - int maxSizeBytes) {
|
| - WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1),
|
| - "StartRecordingPlayout(channel=%d, fileNameUTF8=%s, "
|
| - "compression, maxSizeBytes=%d)",
|
| - channel, fileNameUTF8, maxSizeBytes);
|
| - static_assert(1024 == FileWrapper::kMaxFileNameSize, "");
|
| -
|
| - if (!_shared->statistics().Initialized()) {
|
| - _shared->SetLastError(VE_NOT_INITED, kTraceError);
|
| - return -1;
|
| - }
|
| - if (channel == -1) {
|
| - return _shared->output_mixer()->StartRecordingPlayout(fileNameUTF8,
|
| - compression);
|
| - } else {
|
| - // Add file after demultiplexing <=> affects one channel only
|
| - voe::ChannelOwner ch = _shared->channel_manager().GetChannel(channel);
|
| - voe::Channel* channelPtr = ch.channel();
|
| - if (channelPtr == NULL) {
|
| - _shared->SetLastError(VE_CHANNEL_NOT_VALID, kTraceError,
|
| - "StartRecordingPlayout() failed to locate channel");
|
| - return -1;
|
| - }
|
| - return channelPtr->StartRecordingPlayout(fileNameUTF8, compression);
|
| - }
|
| -}
|
| -
|
| -int VoEFileImpl::StartRecordingPlayout(int channel,
|
| - OutStream* stream,
|
| - CodecInst* compression) {
|
| - WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1),
|
| - "StartRecordingPlayout(channel=%d, stream, compression)",
|
| - channel);
|
| - if (!_shared->statistics().Initialized()) {
|
| - _shared->SetLastError(VE_NOT_INITED, kTraceError);
|
| - return -1;
|
| - }
|
| - if (channel == -1) {
|
| - return _shared->output_mixer()->StartRecordingPlayout(stream, compression);
|
| - } else {
|
| - voe::ChannelOwner ch = _shared->channel_manager().GetChannel(channel);
|
| - voe::Channel* channelPtr = ch.channel();
|
| - if (channelPtr == NULL) {
|
| - _shared->SetLastError(VE_CHANNEL_NOT_VALID, kTraceError,
|
| - "StartRecordingPlayout() failed to locate channel");
|
| - return -1;
|
| - }
|
| - return channelPtr->StartRecordingPlayout(stream, compression);
|
| - }
|
| -}
|
| -
|
| -int VoEFileImpl::StopRecordingPlayout(int channel) {
|
| - WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1),
|
| - "StopRecordingPlayout(channel=%d)", channel);
|
| - if (!_shared->statistics().Initialized()) {
|
| - _shared->SetLastError(VE_NOT_INITED, kTraceError);
|
| - return -1;
|
| - }
|
| - if (channel == -1) {
|
| - return _shared->output_mixer()->StopRecordingPlayout();
|
| - } else {
|
| - voe::ChannelOwner ch = _shared->channel_manager().GetChannel(channel);
|
| - voe::Channel* channelPtr = ch.channel();
|
| - if (channelPtr == NULL) {
|
| - _shared->SetLastError(VE_CHANNEL_NOT_VALID, kTraceError,
|
| - "StopRecordingPlayout() failed to locate channel");
|
| - return -1;
|
| - }
|
| - return channelPtr->StopRecordingPlayout();
|
| - }
|
| -}
|
| -
|
| -int VoEFileImpl::StartRecordingMicrophone(const char* fileNameUTF8,
|
| - CodecInst* compression,
|
| - int maxSizeBytes) {
|
| - WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1),
|
| - "StartRecordingMicrophone(fileNameUTF8=%s, compression, "
|
| - "maxSizeBytes=%d)",
|
| - fileNameUTF8, maxSizeBytes);
|
| - static_assert(1024 == FileWrapper::kMaxFileNameSize, "");
|
| -
|
| - if (!_shared->statistics().Initialized()) {
|
| - _shared->SetLastError(VE_NOT_INITED, kTraceError);
|
| - return -1;
|
| - }
|
| - if (_shared->transmit_mixer()->StartRecordingMicrophone(fileNameUTF8,
|
| - compression)) {
|
| - WEBRTC_TRACE(kTraceError, kTraceVoice, VoEId(_shared->instance_id(), -1),
|
| - "StartRecordingMicrophone() failed to start recording");
|
| - return -1;
|
| - }
|
| - if (!_shared->audio_device()->Recording()) {
|
| - if (_shared->audio_device()->InitRecording() != 0) {
|
| - WEBRTC_TRACE(kTraceError, kTraceVoice, VoEId(_shared->instance_id(), -1),
|
| - "StartRecordingMicrophone() failed to initialize recording");
|
| - return -1;
|
| - }
|
| - if (_shared->audio_device()->StartRecording() != 0) {
|
| - WEBRTC_TRACE(kTraceError, kTraceVoice, VoEId(_shared->instance_id(), -1),
|
| - "StartRecordingMicrophone() failed to start recording");
|
| - return -1;
|
| - }
|
| - }
|
| - return 0;
|
| -}
|
| -
|
| -int VoEFileImpl::StartRecordingMicrophone(OutStream* stream,
|
| - CodecInst* compression) {
|
| - WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1),
|
| - "StartRecordingMicrophone(stream, compression)");
|
| -
|
| - if (!_shared->statistics().Initialized()) {
|
| - _shared->SetLastError(VE_NOT_INITED, kTraceError);
|
| - return -1;
|
| - }
|
| - if (_shared->transmit_mixer()->StartRecordingMicrophone(stream,
|
| - compression) == -1) {
|
| - WEBRTC_TRACE(kTraceError, kTraceVoice, VoEId(_shared->instance_id(), -1),
|
| - "StartRecordingMicrophone() failed to start recording");
|
| - return -1;
|
| - }
|
| - if (!_shared->audio_device()->Recording()) {
|
| - if (_shared->audio_device()->InitRecording() != 0) {
|
| - WEBRTC_TRACE(kTraceError, kTraceVoice, VoEId(_shared->instance_id(), -1),
|
| - "StartRecordingMicrophone() failed to initialize recording");
|
| - return -1;
|
| - }
|
| - if (_shared->audio_device()->StartRecording() != 0) {
|
| - WEBRTC_TRACE(kTraceError, kTraceVoice, VoEId(_shared->instance_id(), -1),
|
| - "StartRecordingMicrophone() failed to start recording");
|
| - return -1;
|
| - }
|
| - }
|
| - return 0;
|
| -}
|
| -
|
| -int VoEFileImpl::StopRecordingMicrophone() {
|
| - WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1),
|
| - "StopRecordingMicrophone()");
|
| - if (!_shared->statistics().Initialized()) {
|
| - _shared->SetLastError(VE_NOT_INITED, kTraceError);
|
| - return -1;
|
| - }
|
| -
|
| - int err = 0;
|
| -
|
| - // TODO(xians): consider removing Start/StopRecording() in
|
| - // Start/StopRecordingMicrophone() if no channel is recording.
|
| - if (_shared->NumOfSendingChannels() == 0 &&
|
| - _shared->audio_device()->Recording()) {
|
| - // Stop audio-device recording if no channel is recording
|
| - if (_shared->audio_device()->StopRecording() != 0) {
|
| - _shared->SetLastError(
|
| - VE_CANNOT_STOP_RECORDING, kTraceError,
|
| - "StopRecordingMicrophone() failed to stop recording");
|
| - err = -1;
|
| - }
|
| - }
|
| -
|
| - if (_shared->transmit_mixer()->StopRecordingMicrophone() != 0) {
|
| - WEBRTC_TRACE(kTraceError, kTraceVoice, VoEId(_shared->instance_id(), -1),
|
| - "StopRecordingMicrophone() failed to stop recording to mixer");
|
| - err = -1;
|
| - }
|
| -
|
| - return err;
|
| -}
|
| -
|
| -} // namespace webrtc
|
|
|