| OLD | NEW |
| (Empty) |
| 1 /* | |
| 2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. | |
| 3 * | |
| 4 * Use of this source code is governed by a BSD-style license | |
| 5 * that can be found in the LICENSE file in the root of the source | |
| 6 * tree. An additional intellectual property rights grant can be found | |
| 7 * in the file PATENTS. All contributing project authors may | |
| 8 * be found in the AUTHORS file in the root of the source tree. | |
| 9 */ | |
| 10 | |
| 11 #ifndef WEBRTC_AUDIO_FAKE_VOICE_ENGINE_H_ | |
| 12 #define WEBRTC_AUDIO_FAKE_VOICE_ENGINE_H_ | |
| 13 | |
| 14 #include <vector> | |
| 15 | |
| 16 #include "testing/gtest/include/gtest/gtest.h" | |
| 17 | |
| 18 #include "webrtc/voice_engine/voice_engine_impl.h" | |
| 19 | |
| 20 namespace webrtc { | |
| 21 namespace test { | |
| 22 | |
| 23 // NOTE: This class inherits from VoiceEngineImpl so that its clients will be | |
| 24 // able to get the various interfaces as usual, via T::GetInterface(). | |
| 25 class FakeVoiceEngine final : public VoiceEngineImpl { | |
| 26 public: | |
| 27 static const int kSendChannelId; | |
| 28 static const int kRecvChannelId; | |
| 29 static const uint32_t kSendSsrc; | |
| 30 static const uint32_t kRecvSsrc; | |
| 31 static const int kSendEchoDelayMedian; | |
| 32 static const int kSendEchoDelayStdDev; | |
| 33 static const int kSendEchoReturnLoss; | |
| 34 static const int kSendEchoReturnLossEnhancement; | |
| 35 static const int kRecvJitterBufferDelay; | |
| 36 static const int kRecvPlayoutBufferDelay; | |
| 37 static const unsigned int kSendSpeechInputLevel; | |
| 38 static const unsigned int kRecvSpeechOutputLevel; | |
| 39 static const CallStatistics kSendCallStats; | |
| 40 static const CodecInst kSendCodecInst; | |
| 41 static const ReportBlock kSendReportBlock; | |
| 42 static const CallStatistics kRecvCallStats; | |
| 43 static const CodecInst kRecvCodecInst; | |
| 44 static const NetworkStatistics kRecvNetworkStats; | |
| 45 static const AudioDecodingCallStats kRecvAudioDecodingCallStats; | |
| 46 | |
| 47 FakeVoiceEngine() : VoiceEngineImpl(new Config(), true) { | |
| 48 // Increase ref count so this object isn't automatically deleted whenever | |
| 49 // interfaces are Release():d. | |
| 50 ++_ref_count; | |
| 51 } | |
| 52 ~FakeVoiceEngine() override { | |
| 53 // Decrease ref count before base class d-tor is called; otherwise it will | |
| 54 // trigger an assertion. | |
| 55 --_ref_count; | |
| 56 } | |
| 57 | |
| 58 // VoEAudioProcessing | |
| 59 int SetNsStatus(bool enable, NsModes mode = kNsUnchanged) override { | |
| 60 return -1; | |
| 61 } | |
| 62 int GetNsStatus(bool& enabled, NsModes& mode) override { return -1; } | |
| 63 int SetAgcStatus(bool enable, AgcModes mode = kAgcUnchanged) override { | |
| 64 return -1; | |
| 65 } | |
| 66 int GetAgcStatus(bool& enabled, AgcModes& mode) override { return -1; } | |
| 67 int SetAgcConfig(AgcConfig config) override { return -1; } | |
| 68 int GetAgcConfig(AgcConfig& config) override { return -1; } | |
| 69 int SetEcStatus(bool enable, EcModes mode = kEcUnchanged) override { | |
| 70 return -1; | |
| 71 } | |
| 72 int GetEcStatus(bool& enabled, EcModes& mode) override { return -1; } | |
| 73 int EnableDriftCompensation(bool enable) override { return -1; } | |
| 74 bool DriftCompensationEnabled() override { return false; } | |
| 75 void SetDelayOffsetMs(int offset) override {} | |
| 76 int DelayOffsetMs() override { return -1; } | |
| 77 int SetAecmMode(AecmModes mode = kAecmSpeakerphone, | |
| 78 bool enableCNG = true) override { return -1; } | |
| 79 int GetAecmMode(AecmModes& mode, bool& enabledCNG) override { return -1; } | |
| 80 int EnableHighPassFilter(bool enable) override { return -1; } | |
| 81 bool IsHighPassFilterEnabled() override { return false; } | |
| 82 int SetRxNsStatus(int channel, | |
| 83 bool enable, | |
| 84 NsModes mode = kNsUnchanged) override { return -1; } | |
| 85 int GetRxNsStatus(int channel, bool& enabled, NsModes& mode) override { | |
| 86 return -1; | |
| 87 } | |
| 88 int SetRxAgcStatus(int channel, | |
| 89 bool enable, | |
| 90 AgcModes mode = kAgcUnchanged) override { return -1; } | |
| 91 int GetRxAgcStatus(int channel, bool& enabled, AgcModes& mode) override { | |
| 92 return -1; | |
| 93 } | |
| 94 int SetRxAgcConfig(int channel, AgcConfig config) override { return -1; } | |
| 95 int GetRxAgcConfig(int channel, AgcConfig& config) override { return -1; } | |
| 96 int RegisterRxVadObserver(int channel, | |
| 97 VoERxVadCallback& observer) override { return -1; } | |
| 98 int DeRegisterRxVadObserver(int channel) override { return -1; } | |
| 99 int VoiceActivityIndicator(int channel) override { return -1; } | |
| 100 int SetEcMetricsStatus(bool enable) override { return -1; } | |
| 101 int GetEcMetricsStatus(bool& enabled) override { | |
| 102 enabled = true; | |
| 103 return 0; | |
| 104 } | |
| 105 int GetEchoMetrics(int& ERL, int& ERLE, int& RERL, int& A_NLP) override { | |
| 106 ERL = kSendEchoReturnLoss; | |
| 107 ERLE = kSendEchoReturnLossEnhancement; | |
| 108 RERL = -123456789; | |
| 109 A_NLP = 123456789; | |
| 110 return 0; | |
| 111 } | |
| 112 int GetEcDelayMetrics(int& delay_median, | |
| 113 int& delay_std, | |
| 114 float& fraction_poor_delays) override { | |
| 115 delay_median = kSendEchoDelayMedian; | |
| 116 delay_std = kSendEchoDelayStdDev; | |
| 117 fraction_poor_delays = -12345.7890f; | |
| 118 return 0; | |
| 119 } | |
| 120 int StartDebugRecording(const char* fileNameUTF8) override { return -1; } | |
| 121 int StartDebugRecording(FILE* file_handle) override { return -1; } | |
| 122 int StopDebugRecording() override { return -1; } | |
| 123 int SetTypingDetectionStatus(bool enable) override { return -1; } | |
| 124 int GetTypingDetectionStatus(bool& enabled) override { return -1; } | |
| 125 int TimeSinceLastTyping(int& seconds) override { return -1; } | |
| 126 int SetTypingDetectionParameters(int timeWindow, | |
| 127 int costPerTyping, | |
| 128 int reportingThreshold, | |
| 129 int penaltyDecay, | |
| 130 int typeEventDelay = 0) override { | |
| 131 return -1; | |
| 132 } | |
| 133 void EnableStereoChannelSwapping(bool enable) override {} | |
| 134 bool IsStereoChannelSwappingEnabled() override { return false; } | |
| 135 | |
| 136 // VoEBase | |
| 137 int RegisterVoiceEngineObserver(VoiceEngineObserver& observer) override { | |
| 138 return -1; | |
| 139 } | |
| 140 int DeRegisterVoiceEngineObserver() override { return -1; } | |
| 141 int Init(AudioDeviceModule* external_adm = NULL, | |
| 142 AudioProcessing* audioproc = NULL) override { return -1; } | |
| 143 AudioProcessing* audio_processing() override { return nullptr; } | |
| 144 int Terminate() override { return -1; } | |
| 145 int CreateChannel() override { return -1; } | |
| 146 int CreateChannel(const Config& config) override { return -1; } | |
| 147 int DeleteChannel(int channel) override { return -1; } | |
| 148 int StartReceive(int channel) override { return -1; } | |
| 149 int StopReceive(int channel) override { return -1; } | |
| 150 int StartPlayout(int channel) override { return -1; } | |
| 151 int StopPlayout(int channel) override { return -1; } | |
| 152 int StartSend(int channel) override { return -1; } | |
| 153 int StopSend(int channel) override { return -1; } | |
| 154 int GetVersion(char version[1024]) override { return -1; } | |
| 155 int LastError() override { return -1; } | |
| 156 AudioTransport* audio_transport() { return nullptr; } | |
| 157 int AssociateSendChannel(int channel, int accociate_send_channel) override { | |
| 158 return -1; | |
| 159 } | |
| 160 | |
| 161 // VoECodec | |
| 162 int NumOfCodecs() override { return -1; } | |
| 163 int GetCodec(int index, CodecInst& codec) override { return -1; } | |
| 164 int SetSendCodec(int channel, const CodecInst& codec) override { return -1; } | |
| 165 int GetSendCodec(int channel, CodecInst& codec) override { | |
| 166 EXPECT_EQ(channel, kSendChannelId); | |
| 167 codec = kSendCodecInst; | |
| 168 return 0; | |
| 169 } | |
| 170 int SetBitRate(int channel, int bitrate_bps) override { return -1; } | |
| 171 int GetRecCodec(int channel, CodecInst& codec) override { | |
| 172 EXPECT_EQ(channel, kRecvChannelId); | |
| 173 codec = kRecvCodecInst; | |
| 174 return 0; | |
| 175 } | |
| 176 int SetRecPayloadType(int channel, const CodecInst& codec) override { | |
| 177 return -1; | |
| 178 } | |
| 179 int GetRecPayloadType(int channel, CodecInst& codec) override { return -1; } | |
| 180 int SetSendCNPayloadType(int channel, int type, | |
| 181 PayloadFrequencies frequency = kFreq16000Hz) override { return -1; } | |
| 182 int SetVADStatus(int channel, | |
| 183 bool enable, | |
| 184 VadModes mode = kVadConventional, | |
| 185 bool disableDTX = false) override { return -1; } | |
| 186 int GetVADStatus(int channel, | |
| 187 bool& enabled, | |
| 188 VadModes& mode, | |
| 189 bool& disabledDTX) override { return -1; } | |
| 190 int SetOpusMaxPlaybackRate(int channel, int frequency_hz) override { | |
| 191 return -1; | |
| 192 } | |
| 193 int SetOpusDtx(int channel, bool enable_dtx) override { return -1; } | |
| 194 RtcEventLog* GetEventLog() override { return nullptr; } | |
| 195 | |
| 196 // VoEDtmf | |
| 197 int SendTelephoneEvent(int channel, | |
| 198 int eventCode, | |
| 199 bool outOfBand = true, | |
| 200 int lengthMs = 160, | |
| 201 int attenuationDb = 10) override { return -1; } | |
| 202 int SetSendTelephoneEventPayloadType(int channel, | |
| 203 unsigned char type) override { | |
| 204 return -1; | |
| 205 } | |
| 206 int GetSendTelephoneEventPayloadType(int channel, | |
| 207 unsigned char& type) override { | |
| 208 return -1; | |
| 209 } | |
| 210 int SetDtmfFeedbackStatus(bool enable, | |
| 211 bool directFeedback = false) override { return -1; } | |
| 212 int GetDtmfFeedbackStatus(bool& enabled, bool& directFeedback) override { | |
| 213 return -1; | |
| 214 } | |
| 215 int PlayDtmfTone(int eventCode, | |
| 216 int lengthMs = 200, | |
| 217 int attenuationDb = 10) override { return -1; } | |
| 218 | |
| 219 // VoEExternalMedia | |
| 220 int RegisterExternalMediaProcessing( | |
| 221 int channel, | |
| 222 ProcessingTypes type, | |
| 223 VoEMediaProcess& processObject) override { return -1; } | |
| 224 int DeRegisterExternalMediaProcessing(int channel, | |
| 225 ProcessingTypes type) override { | |
| 226 return -1; | |
| 227 } | |
| 228 int GetAudioFrame(int channel, | |
| 229 int desired_sample_rate_hz, | |
| 230 AudioFrame* frame) override { return -1; } | |
| 231 int SetExternalMixing(int channel, bool enable) override { return -1; } | |
| 232 | |
| 233 // VoEFile | |
| 234 int StartPlayingFileLocally( | |
| 235 int channel, | |
| 236 const char fileNameUTF8[1024], | |
| 237 bool loop = false, | |
| 238 FileFormats format = kFileFormatPcm16kHzFile, | |
| 239 float volumeScaling = 1.0, | |
| 240 int startPointMs = 0, | |
| 241 int stopPointMs = 0) override { return -1; } | |
| 242 int StartPlayingFileLocally( | |
| 243 int channel, | |
| 244 InStream* stream, | |
| 245 FileFormats format = kFileFormatPcm16kHzFile, | |
| 246 float volumeScaling = 1.0, | |
| 247 int startPointMs = 0, | |
| 248 int stopPointMs = 0) override { return -1; } | |
| 249 int StopPlayingFileLocally(int channel) override { return -1; } | |
| 250 int IsPlayingFileLocally(int channel) override { return -1; } | |
| 251 int StartPlayingFileAsMicrophone( | |
| 252 int channel, | |
| 253 const char fileNameUTF8[1024], | |
| 254 bool loop = false, | |
| 255 bool mixWithMicrophone = false, | |
| 256 FileFormats format = kFileFormatPcm16kHzFile, | |
| 257 float volumeScaling = 1.0) override { return -1; } | |
| 258 int StartPlayingFileAsMicrophone( | |
| 259 int channel, | |
| 260 InStream* stream, | |
| 261 bool mixWithMicrophone = false, | |
| 262 FileFormats format = kFileFormatPcm16kHzFile, | |
| 263 float volumeScaling = 1.0) override { return -1; } | |
| 264 int StopPlayingFileAsMicrophone(int channel) override { return -1; } | |
| 265 int IsPlayingFileAsMicrophone(int channel) override { return -1; } | |
| 266 int StartRecordingPlayout(int channel, | |
| 267 const char* fileNameUTF8, | |
| 268 CodecInst* compression = NULL, | |
| 269 int maxSizeBytes = -1) override { return -1; } | |
| 270 int StopRecordingPlayout(int channel) override { return -1; } | |
| 271 int StartRecordingPlayout(int channel, | |
| 272 OutStream* stream, | |
| 273 CodecInst* compression = NULL) override { | |
| 274 return -1; | |
| 275 } | |
| 276 int StartRecordingMicrophone(const char* fileNameUTF8, | |
| 277 CodecInst* compression = NULL, | |
| 278 int maxSizeBytes = -1) override { return -1; } | |
| 279 int StartRecordingMicrophone(OutStream* stream, | |
| 280 CodecInst* compression = NULL) override { | |
| 281 return -1; | |
| 282 } | |
| 283 int StopRecordingMicrophone() override { return -1; } | |
| 284 | |
| 285 // VoEHardware | |
| 286 int GetNumOfRecordingDevices(int& devices) override { return -1; } | |
| 287 | |
| 288 // Gets the number of audio devices available for playout. | |
| 289 int GetNumOfPlayoutDevices(int& devices) override { return -1; } | |
| 290 | |
| 291 // Gets the name of a specific recording device given by an |index|. | |
| 292 // On Windows Vista/7, it also retrieves an additional unique ID | |
| 293 // (GUID) for the recording device. | |
| 294 int GetRecordingDeviceName(int index, | |
| 295 char strNameUTF8[128], | |
| 296 char strGuidUTF8[128]) override { return -1; } | |
| 297 | |
| 298 // Gets the name of a specific playout device given by an |index|. | |
| 299 // On Windows Vista/7, it also retrieves an additional unique ID | |
| 300 // (GUID) for the playout device. | |
| 301 int GetPlayoutDeviceName(int index, | |
| 302 char strNameUTF8[128], | |
| 303 char strGuidUTF8[128]) override { return -1; } | |
| 304 | |
| 305 // Sets the audio device used for recording. | |
| 306 int SetRecordingDevice( | |
| 307 int index, | |
| 308 StereoChannel recordingChannel = kStereoBoth) override { return -1; } | |
| 309 | |
| 310 // Sets the audio device used for playout. | |
| 311 int SetPlayoutDevice(int index) override { return -1; } | |
| 312 | |
| 313 // Sets the type of audio device layer to use. | |
| 314 int SetAudioDeviceLayer(AudioLayers audioLayer) override { return -1; } | |
| 315 | |
| 316 // Gets the currently used (active) audio device layer. | |
| 317 int GetAudioDeviceLayer(AudioLayers& audioLayer) override { return -1; } | |
| 318 | |
| 319 // Native sample rate controls (samples/sec) | |
| 320 int SetRecordingSampleRate(unsigned int samples_per_sec) override { | |
| 321 return -1; | |
| 322 } | |
| 323 int RecordingSampleRate(unsigned int* samples_per_sec) const override { | |
| 324 return -1; | |
| 325 } | |
| 326 int SetPlayoutSampleRate(unsigned int samples_per_sec) override { | |
| 327 return -1; | |
| 328 } | |
| 329 int PlayoutSampleRate(unsigned int* samples_per_sec) const override { | |
| 330 return -1; | |
| 331 } | |
| 332 | |
| 333 // Queries and controls platform audio effects on Android devices. | |
| 334 bool BuiltInAECIsAvailable() const override { return false; } | |
| 335 int EnableBuiltInAEC(bool enable) override { return -1; } | |
| 336 bool BuiltInAGCIsAvailable() const override { return false; } | |
| 337 int EnableBuiltInAGC(bool enable) override { return -1; } | |
| 338 bool BuiltInNSIsAvailable() const override { return false; } | |
| 339 int EnableBuiltInNS(bool enable) override { return -1; } | |
| 340 | |
| 341 // VoENetwork | |
| 342 int RegisterExternalTransport(int channel, Transport& transport) override { | |
| 343 return -1; | |
| 344 } | |
| 345 int DeRegisterExternalTransport(int channel) override { return -1; } | |
| 346 int ReceivedRTPPacket(int channel, | |
| 347 const void* data, | |
| 348 size_t length) override { return -1; } | |
| 349 int ReceivedRTPPacket(int channel, | |
| 350 const void* data, | |
| 351 size_t length, | |
| 352 const PacketTime& packet_time) override { return -1; } | |
| 353 int ReceivedRTCPPacket(int channel, | |
| 354 const void* data, | |
| 355 size_t length) { return -1; } | |
| 356 | |
| 357 // VoENetEqStats | |
| 358 int GetNetworkStatistics(int channel, NetworkStatistics& stats) override { | |
| 359 EXPECT_EQ(channel, kRecvChannelId); | |
| 360 stats = kRecvNetworkStats; | |
| 361 return 0; | |
| 362 } | |
| 363 int GetDecodingCallStatistics(int channel, | |
| 364 AudioDecodingCallStats* stats) const override { | |
| 365 EXPECT_EQ(channel, kRecvChannelId); | |
| 366 EXPECT_NE(nullptr, stats); | |
| 367 *stats = kRecvAudioDecodingCallStats; | |
| 368 return 0; | |
| 369 } | |
| 370 | |
| 371 // VoERTP_RTCP | |
| 372 int SetLocalSSRC(int channel, unsigned int ssrc) override { return -1; } | |
| 373 int GetLocalSSRC(int channel, unsigned int& ssrc) override { | |
| 374 EXPECT_EQ(channel, kSendChannelId); | |
| 375 ssrc = 0; | |
| 376 return 0; | |
| 377 } | |
| 378 int GetRemoteSSRC(int channel, unsigned int& ssrc) override { | |
| 379 EXPECT_EQ(channel, kRecvChannelId); | |
| 380 ssrc = 0; | |
| 381 return 0; | |
| 382 } | |
| 383 int SetSendAudioLevelIndicationStatus(int channel, | |
| 384 bool enable, | |
| 385 unsigned char id = 1) override { | |
| 386 return -1; | |
| 387 } | |
| 388 int SetSendAbsoluteSenderTimeStatus(int channel, | |
| 389 bool enable, | |
| 390 unsigned char id) override { return -1; } | |
| 391 int SetReceiveAbsoluteSenderTimeStatus(int channel, | |
| 392 bool enable, | |
| 393 unsigned char id) override { | |
| 394 return -1; | |
| 395 } | |
| 396 int SetRTCPStatus(int channel, bool enable) override { return -1; } | |
| 397 int GetRTCPStatus(int channel, bool& enabled) override { return -1; } | |
| 398 int SetRTCP_CNAME(int channel, const char cName[256]) override { return -1; } | |
| 399 int GetRTCP_CNAME(int channel, char cName[256]) { return -1; } | |
| 400 int GetRemoteRTCP_CNAME(int channel, char cName[256]) override { return -1; } | |
| 401 int GetRemoteRTCPData(int channel, | |
| 402 unsigned int& NTPHigh, | |
| 403 unsigned int& NTPLow, | |
| 404 unsigned int& timestamp, | |
| 405 unsigned int& playoutTimestamp, | |
| 406 unsigned int* jitter = NULL, | |
| 407 unsigned short* fractionLost = NULL) override { | |
| 408 return -1; | |
| 409 } | |
| 410 int GetRTPStatistics(int channel, | |
| 411 unsigned int& averageJitterMs, | |
| 412 unsigned int& maxJitterMs, | |
| 413 unsigned int& discardedPackets) override { return -1; } | |
| 414 int GetRTCPStatistics(int channel, CallStatistics& stats) override { | |
| 415 if (channel == kSendChannelId) { | |
| 416 stats = kSendCallStats; | |
| 417 } else { | |
| 418 EXPECT_EQ(channel, kRecvChannelId); | |
| 419 stats = kRecvCallStats; | |
| 420 } | |
| 421 return 0; | |
| 422 } | |
| 423 int GetRemoteRTCPReportBlocks( | |
| 424 int channel, | |
| 425 std::vector<ReportBlock>* receive_blocks) override { | |
| 426 EXPECT_EQ(channel, kSendChannelId); | |
| 427 EXPECT_NE(receive_blocks, nullptr); | |
| 428 EXPECT_EQ(receive_blocks->size(), 0u); | |
| 429 webrtc::ReportBlock block = kSendReportBlock; | |
| 430 receive_blocks->push_back(block); // Has wrong SSRC. | |
| 431 block.source_SSRC = kSendSsrc; | |
| 432 receive_blocks->push_back(block); // Correct block. | |
| 433 block.fraction_lost = 0; | |
| 434 receive_blocks->push_back(block); // Duplicate SSRC, bad fraction_lost. | |
| 435 return 0; | |
| 436 } | |
| 437 int SetNACKStatus(int channel, bool enable, int maxNoPackets) override { | |
| 438 return -1; | |
| 439 } | |
| 440 | |
| 441 // VoEVideoSync | |
| 442 int GetPlayoutBufferSize(int& buffer_ms) override { return -1; } | |
| 443 int SetMinimumPlayoutDelay(int channel, int delay_ms) override { return -1; } | |
| 444 int GetDelayEstimate(int channel, | |
| 445 int* jitter_buffer_delay_ms, | |
| 446 int* playout_buffer_delay_ms) override { | |
| 447 EXPECT_EQ(channel, kRecvChannelId); | |
| 448 *jitter_buffer_delay_ms = kRecvJitterBufferDelay; | |
| 449 *playout_buffer_delay_ms = kRecvPlayoutBufferDelay; | |
| 450 return 0; | |
| 451 } | |
| 452 int GetLeastRequiredDelayMs(int channel) const override { return -1; } | |
| 453 int SetInitTimestamp(int channel, unsigned int timestamp) override { | |
| 454 return -1; | |
| 455 } | |
| 456 int SetInitSequenceNumber(int channel, short sequenceNumber) override { | |
| 457 return -1; | |
| 458 } | |
| 459 int GetPlayoutTimestamp(int channel, unsigned int& timestamp) override { | |
| 460 return -1; | |
| 461 } | |
| 462 int GetRtpRtcp(int channel, | |
| 463 RtpRtcp** rtpRtcpModule, | |
| 464 RtpReceiver** rtp_receiver) override { return -1; } | |
| 465 | |
| 466 // VoEVolumeControl | |
| 467 int SetSpeakerVolume(unsigned int volume) override { return -1; } | |
| 468 int GetSpeakerVolume(unsigned int& volume) override { return -1; } | |
| 469 int SetMicVolume(unsigned int volume) override { return -1; } | |
| 470 int GetMicVolume(unsigned int& volume) override { return -1; } | |
| 471 int SetInputMute(int channel, bool enable) override { return -1; } | |
| 472 int GetInputMute(int channel, bool& enabled) override { return -1; } | |
| 473 int GetSpeechInputLevel(unsigned int& level) override { return -1; } | |
| 474 int GetSpeechOutputLevel(int channel, unsigned int& level) override { | |
| 475 return -1; | |
| 476 } | |
| 477 int GetSpeechInputLevelFullRange(unsigned int& level) override { | |
| 478 level = kSendSpeechInputLevel; | |
| 479 return 0; | |
| 480 } | |
| 481 int GetSpeechOutputLevelFullRange(int channel, | |
| 482 unsigned int& level) override { | |
| 483 EXPECT_EQ(channel, kRecvChannelId); | |
| 484 level = kRecvSpeechOutputLevel; | |
| 485 return 0; | |
| 486 } | |
| 487 int SetChannelOutputVolumeScaling(int channel, float scaling) override { | |
| 488 return -1; | |
| 489 } | |
| 490 int GetChannelOutputVolumeScaling(int channel, float& scaling) override { | |
| 491 return -1; | |
| 492 } | |
| 493 int SetOutputVolumePan(int channel, float left, float right) override { | |
| 494 return -1; | |
| 495 } | |
| 496 int GetOutputVolumePan(int channel, float& left, float& right) override { | |
| 497 return -1; | |
| 498 } | |
| 499 }; | |
| 500 } // namespace test | |
| 501 } // namespace webrtc | |
| 502 | |
| 503 #endif // WEBRTC_AUDIO_FAKE_VOICE_ENGINE_H_ | |
| OLD | NEW |