| /* |
| * 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_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 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), |
| _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_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; |
| 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_; |
| } |
| 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_; |
| 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 |