diff options
Diffstat (limited to 'webrtc/voice_engine/test/auto_test/voe_standard_test.h')
-rw-r--r-- | webrtc/voice_engine/test/auto_test/voe_standard_test.h | 207 |
1 files changed, 207 insertions, 0 deletions
diff --git a/webrtc/voice_engine/test/auto_test/voe_standard_test.h b/webrtc/voice_engine/test/auto_test/voe_standard_test.h new file mode 100644 index 0000000000..3bf89362d5 --- /dev/null +++ b/webrtc/voice_engine/test/auto_test/voe_standard_test.h @@ -0,0 +1,207 @@ +/* + * 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. + */ + +#ifndef WEBRTC_VOICE_ENGINE_VOE_STANDARD_TEST_H +#define WEBRTC_VOICE_ENGINE_VOE_STANDARD_TEST_H + +#include <stdio.h> +#include <string> + +#include "gflags/gflags.h" +#include "webrtc/voice_engine/include/voe_audio_processing.h" +#include "webrtc/voice_engine/include/voe_base.h" +#include "webrtc/voice_engine/include/voe_dtmf.h" +#include "webrtc/voice_engine/include/voe_errors.h" +#include "webrtc/voice_engine/include/voe_file.h" +#include "webrtc/voice_engine/include/voe_rtp_rtcp.h" +#include "webrtc/voice_engine/test/auto_test/resource_manager.h" +#include "webrtc/voice_engine/test/auto_test/voe_test_common.h" +#include "webrtc/voice_engine/test/auto_test/voe_test_interface.h" +#ifdef WEBRTC_VOICE_ENGINE_CODEC_API +#include "webrtc/voice_engine/include/voe_codec.h" +#endif +#ifdef WEBRTC_VOICE_ENGINE_EXTERNAL_MEDIA_API +#include "webrtc/voice_engine/include/voe_external_media.h" +#endif +#ifdef WEBRTC_VOICE_ENGINE_HARDWARE_API +#include "webrtc/voice_engine/include/voe_hardware.h" +#endif +#include "webrtc/voice_engine/include/voe_network.h" +#ifdef WEBRTC_VOICE_ENGINE_VIDEO_SYNC_API +#include "webrtc/voice_engine/include/voe_video_sync.h" +#endif +#ifdef WEBRTC_VOICE_ENGINE_VOLUME_CONTROL_API +#include "webrtc/voice_engine/include/voe_volume_control.h" +#endif + +#ifdef WEBRTC_VOICE_ENGINE_NETEQ_STATS_API +namespace webrtc { +class CriticalSectionWrapper; +class ThreadWrapper; +class VoENetEqStats; +} +#endif + +#if defined(WEBRTC_ANDROID) +extern char mobileLogMsg[640]; +#endif + +DECLARE_bool(include_timing_dependent_tests); + +namespace voetest { + +class SubAPIManager { + public: + SubAPIManager() + : _base(true), + _codec(false), + _dtmf(false), + _externalMedia(false), + _file(false), + _hardware(false), + _netEqStats(false), + _network(false), + _rtp_rtcp(false), + _videoSync(false), + _volumeControl(false), + _apm(false) { +#ifdef WEBRTC_VOICE_ENGINE_CODEC_API + _codec = true; +#endif +#ifdef WEBRTC_VOICE_ENGINE_DTMF_API + _dtmf = true; +#endif +#ifdef WEBRTC_VOICE_ENGINE_EXTERNAL_MEDIA_API + _externalMedia = true; +#endif +#ifdef WEBRTC_VOICE_ENGINE_FILE_API + _file = true; +#endif +#ifdef WEBRTC_VOICE_ENGINE_HARDWARE_API + _hardware = true; +#endif +#ifdef WEBRTC_VOICE_ENGINE_NETEQ_STATS_API + _netEqStats = true; +#endif + _network = true; +#ifdef WEBRTC_VOICE_ENGINE_RTP_RTCP_API + _rtp_rtcp = true; +#endif +#ifdef WEBRTC_VOICE_ENGINE_VIDEO_SYNC_API + _videoSync = true; +#endif +#ifdef WEBRTC_VOICE_ENGINE_VOLUME_CONTROL_API + _volumeControl = true; +#endif +#ifdef WEBRTC_VOICE_ENGINE_AUDIO_PROCESSING_API + _apm = true; +#endif + } + + void DisplayStatus() const; + + private: + bool _base, _codec, _dtmf; + bool _externalMedia, _file, _hardware; + bool _netEqStats, _network, _rtp_rtcp, _videoSync, _volumeControl, _apm; +}; + +class VoETestManager { + public: + VoETestManager(); + ~VoETestManager(); + + // Must be called after construction. + bool Init(); + + void GetInterfaces(); + int ReleaseInterfaces(); + + const char* AudioFilename() const { + const std::string& result = resource_manager_.long_audio_file_path(); + if (result.length() == 0) { + TEST_LOG("ERROR: Failed to open input file!"); + } + return result.c_str(); + } + + VoiceEngine* VoiceEnginePtr() const { + return voice_engine_; + } + VoEBase* BasePtr() const { + return voe_base_; + } + VoECodec* CodecPtr() const { + return voe_codec_; + } + VoEVolumeControl* VolumeControlPtr() const { + return voe_volume_control_; + } + VoEDtmf* DtmfPtr() const { + return voe_dtmf_; + } + VoERTP_RTCP* RTP_RTCPPtr() const { + return voe_rtp_rtcp_; + } + VoEAudioProcessing* APMPtr() const { + return voe_apm_; + } + + VoENetwork* NetworkPtr() const { + return voe_network_; + } + + VoEFile* FilePtr() const { + return voe_file_; + } + + VoEHardware* HardwarePtr() const { + return voe_hardware_; + } + + VoEVideoSync* VideoSyncPtr() const { + return voe_vsync_; + } + + VoEExternalMedia* ExternalMediaPtr() const { + return voe_xmedia_; + } + +#ifdef WEBRTC_VOICE_ENGINE_NETEQ_STATS_API + VoENetEqStats* NetEqStatsPtr() const { + return voe_neteq_stats_; + } +#endif + + private: + bool initialized_; + + VoiceEngine* voice_engine_; + VoEBase* voe_base_; + VoECodec* voe_codec_; + VoEDtmf* voe_dtmf_; + VoEExternalMedia* voe_xmedia_; + VoEFile* voe_file_; + VoEHardware* voe_hardware_; + VoENetwork* voe_network_; +#ifdef WEBRTC_VOICE_ENGINE_NETEQ_STATS_API + VoENetEqStats* voe_neteq_stats_; +#endif + VoERTP_RTCP* voe_rtp_rtcp_; + VoEVideoSync* voe_vsync_; + VoEVolumeControl* voe_volume_control_; + VoEAudioProcessing* voe_apm_; + + ResourceManager resource_manager_; +}; + +} // namespace voetest + +#endif // WEBRTC_VOICE_ENGINE_VOE_STANDARD_TEST_H |