OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 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 | 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 | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
156 AudioDeviceAPITest() {} | 156 AudioDeviceAPITest() {} |
157 | 157 |
158 ~AudioDeviceAPITest() override {} | 158 ~AudioDeviceAPITest() override {} |
159 | 159 |
160 static void SetUpTestCase() { | 160 static void SetUpTestCase() { |
161 process_thread_ = ProcessThread::Create("ProcessThread"); | 161 process_thread_ = ProcessThread::Create("ProcessThread"); |
162 process_thread_->Start(); | 162 process_thread_->Start(); |
163 | 163 |
164 // Windows: | 164 // Windows: |
165 // if (WEBRTC_WINDOWS_CORE_AUDIO_BUILD) | 165 // if (WEBRTC_WINDOWS_CORE_AUDIO_BUILD) |
166 // user can select between default (Core) or Wave | 166 // user can select only the default (Core) |
167 // else | |
168 // user can select between default (Wave) or Wave | |
169 const int32_t kId = 444; | 167 const int32_t kId = 444; |
170 | 168 |
171 #if defined(_WIN32) | |
172 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( | |
173 kId, AudioDeviceModule::kLinuxAlsaAudio)) == NULL); | |
174 #if defined(WEBRTC_WINDOWS_CORE_AUDIO_BUILD) | 169 #if defined(WEBRTC_WINDOWS_CORE_AUDIO_BUILD) |
175 TEST_LOG("WEBRTC_WINDOWS_CORE_AUDIO_BUILD is defined!\n\n"); | 170 TEST_LOG("WEBRTC_WINDOWS_CORE_AUDIO_BUILD is defined!\n\n"); |
176 // create default implementation (=Core Audio) instance | 171 // create default implementation (=Core Audio) instance |
177 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( | 172 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( |
178 kId, AudioDeviceModule::kPlatformDefaultAudio)) != NULL); | 173 kId, AudioDeviceModule::kPlatformDefaultAudio)) != NULL); |
179 EXPECT_EQ(0, audio_device_.release()->Release()); | 174 EXPECT_EQ(0, audio_device_.release()->Release()); |
180 // create non-default (=Wave Audio) instance | |
181 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( | |
182 kId, AudioDeviceModule::kWindowsWaveAudio)) != NULL); | |
183 EXPECT_EQ(0, audio_device_.release()->Release()); | |
184 // explicitly specify usage of Core Audio (same as default) | 175 // explicitly specify usage of Core Audio (same as default) |
185 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( | 176 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( |
186 kId, AudioDeviceModule::kWindowsCoreAudio)) != NULL); | 177 kId, AudioDeviceModule::kWindowsCoreAudio)) != NULL); |
187 #else | |
188 TEST_LOG("WEBRTC_WINDOWS_CORE_AUDIO_BUILD is *not* defined!\n"); | |
189 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( | |
190 kId, AudioDeviceModule::kWindowsCoreAudio)) == NULL); | |
191 // create default implementation (=Wave Audio) instance | |
192 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( | |
193 kId, AudioDeviceModule::kPlatformDefaultAudio)) != NULL); | |
194 EXPECT_EQ(0, audio_device_.release()->Release()); | |
195 // explicitly specify usage of Wave Audio (same as default) | |
196 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( | |
197 kId, AudioDeviceModule::kWindowsWaveAudio)) != NULL); | |
198 #endif | |
199 #endif | 178 #endif |
200 | 179 |
201 #if defined(ANDROID) | 180 #if defined(ANDROID) |
202 // Fails tests | 181 // Fails tests |
203 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( | 182 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( |
204 kId, AudioDeviceModule::kWindowsWaveAudio)) == NULL); | |
205 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( | |
206 kId, AudioDeviceModule::kWindowsCoreAudio)) == NULL); | 183 kId, AudioDeviceModule::kWindowsCoreAudio)) == NULL); |
207 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( | 184 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( |
208 kId, AudioDeviceModule::kLinuxAlsaAudio)) == NULL); | 185 kId, AudioDeviceModule::kLinuxAlsaAudio)) == NULL); |
209 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( | 186 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( |
210 kId, AudioDeviceModule::kLinuxPulseAudio)) == NULL); | 187 kId, AudioDeviceModule::kLinuxPulseAudio)) == NULL); |
211 // Create default implementation instance | 188 // Create default implementation instance |
212 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( | 189 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( |
213 kId, AudioDeviceModule::kPlatformDefaultAudio)) != NULL); | 190 kId, AudioDeviceModule::kPlatformDefaultAudio)) != NULL); |
214 #elif defined(WEBRTC_LINUX) | 191 #elif defined(WEBRTC_LINUX) |
215 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( | 192 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( |
216 kId, AudioDeviceModule::kWindowsWaveAudio)) == NULL); | |
217 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( | |
218 kId, AudioDeviceModule::kWindowsCoreAudio)) == NULL); | 193 kId, AudioDeviceModule::kWindowsCoreAudio)) == NULL); |
219 // create default implementation instance | 194 // create default implementation instance |
220 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( | 195 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( |
221 kId, AudioDeviceModule::kPlatformDefaultAudio)) != NULL); | 196 kId, AudioDeviceModule::kPlatformDefaultAudio)) != NULL); |
222 EXPECT_EQ(0, audio_device_->Terminate()); | 197 EXPECT_EQ(0, audio_device_->Terminate()); |
223 EXPECT_EQ(0, audio_device_.release()->Release()); | 198 EXPECT_EQ(0, audio_device_.release()->Release()); |
224 // explicitly specify usage of Pulse Audio (same as default) | 199 // explicitly specify usage of Pulse Audio (same as default) |
225 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( | 200 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( |
226 kId, AudioDeviceModule::kLinuxPulseAudio)) != NULL); | 201 kId, AudioDeviceModule::kLinuxPulseAudio)) != NULL); |
227 #endif | 202 #endif |
228 | 203 |
229 #if defined(WEBRTC_MAC) | 204 #if defined(WEBRTC_MAC) |
230 // Fails tests | 205 // Fails tests |
231 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( | 206 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( |
232 kId, AudioDeviceModule::kWindowsWaveAudio)) == NULL); | |
233 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( | |
234 kId, AudioDeviceModule::kWindowsCoreAudio)) == NULL); | 207 kId, AudioDeviceModule::kWindowsCoreAudio)) == NULL); |
235 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( | 208 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( |
236 kId, AudioDeviceModule::kLinuxAlsaAudio)) == NULL); | 209 kId, AudioDeviceModule::kLinuxAlsaAudio)) == NULL); |
237 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( | 210 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( |
238 kId, AudioDeviceModule::kLinuxPulseAudio)) == NULL); | 211 kId, AudioDeviceModule::kLinuxPulseAudio)) == NULL); |
239 // Create default implementation instance | 212 // Create default implementation instance |
240 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( | 213 EXPECT_TRUE((audio_device_ = AudioDeviceModule::Create( |
241 kId, AudioDeviceModule::kPlatformDefaultAudio)) != NULL); | 214 kId, AudioDeviceModule::kPlatformDefaultAudio)) != NULL); |
242 #endif | 215 #endif |
243 | 216 |
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
464 AudioDeviceModule::kDefaultDevice) == -1); | 437 AudioDeviceModule::kDefaultDevice) == -1); |
465 #endif | 438 #endif |
466 for (int i = 0; i < no_devices; i++) { | 439 for (int i = 0; i < no_devices; i++) { |
467 EXPECT_EQ(0, audio_device_->SetRecordingDevice(i)); | 440 EXPECT_EQ(0, audio_device_->SetRecordingDevice(i)); |
468 } | 441 } |
469 } | 442 } |
470 #endif // 0 | 443 #endif // 0 |
471 | 444 |
472 TEST_F(AudioDeviceAPITest, PlayoutIsAvailable) { | 445 TEST_F(AudioDeviceAPITest, PlayoutIsAvailable) { |
473 bool available; | 446 bool available; |
474 #ifdef _WIN32 | 447 #if defined(WEBRTC_WINDOWS_CORE_AUDIO_BUILD) |
475 EXPECT_TRUE(audio_device_->SetPlayoutDevice( | 448 EXPECT_TRUE(audio_device_->SetPlayoutDevice( |
476 AudioDeviceModule::kDefaultCommunicationDevice) == 0); | 449 AudioDeviceModule::kDefaultCommunicationDevice) == 0); |
477 EXPECT_EQ(0, audio_device_->PlayoutIsAvailable(&available)); | 450 EXPECT_EQ(0, audio_device_->PlayoutIsAvailable(&available)); |
478 // Availability check should not initialize. | 451 // Availability check should not initialize. |
479 EXPECT_FALSE(audio_device_->PlayoutIsInitialized()); | 452 EXPECT_FALSE(audio_device_->PlayoutIsInitialized()); |
480 | 453 |
481 EXPECT_EQ(0, | 454 EXPECT_EQ(0, |
482 audio_device_->SetPlayoutDevice(AudioDeviceModule::kDefaultDevice)); | 455 audio_device_->SetPlayoutDevice(AudioDeviceModule::kDefaultDevice)); |
483 EXPECT_EQ(0, audio_device_->PlayoutIsAvailable(&available)); | 456 EXPECT_EQ(0, audio_device_->PlayoutIsAvailable(&available)); |
484 EXPECT_FALSE(audio_device_->PlayoutIsInitialized()); | 457 EXPECT_FALSE(audio_device_->PlayoutIsInitialized()); |
485 #endif | 458 #endif |
486 | 459 |
487 int16_t no_devices = audio_device_->PlayoutDevices(); | 460 int16_t no_devices = audio_device_->PlayoutDevices(); |
488 for (int i = 0; i < no_devices; i++) { | 461 for (int i = 0; i < no_devices; i++) { |
489 EXPECT_EQ(0, audio_device_->SetPlayoutDevice(i)); | 462 EXPECT_EQ(0, audio_device_->SetPlayoutDevice(i)); |
490 EXPECT_EQ(0, audio_device_->PlayoutIsAvailable(&available)); | 463 EXPECT_EQ(0, audio_device_->PlayoutIsAvailable(&available)); |
491 EXPECT_FALSE(audio_device_->PlayoutIsInitialized()); | 464 EXPECT_FALSE(audio_device_->PlayoutIsInitialized()); |
492 } | 465 } |
493 } | 466 } |
494 | 467 |
495 TEST_F(AudioDeviceAPITest, RecordingIsAvailable) { | 468 TEST_F(AudioDeviceAPITest, RecordingIsAvailable) { |
496 bool available; | 469 bool available; |
497 #ifdef _WIN32 | 470 #if defined(WEBRTC_WINDOWS_CORE_AUDIO_BUILD) |
498 EXPECT_EQ(0, audio_device_->SetRecordingDevice( | 471 EXPECT_EQ(0, audio_device_->SetRecordingDevice( |
499 AudioDeviceModule::kDefaultCommunicationDevice)); | 472 AudioDeviceModule::kDefaultCommunicationDevice)); |
500 EXPECT_EQ(0, audio_device_->RecordingIsAvailable(&available)); | 473 EXPECT_EQ(0, audio_device_->RecordingIsAvailable(&available)); |
501 EXPECT_FALSE(audio_device_->RecordingIsInitialized()); | 474 EXPECT_FALSE(audio_device_->RecordingIsInitialized()); |
502 | 475 |
503 EXPECT_EQ(0, audio_device_->SetRecordingDevice( | 476 EXPECT_EQ(0, audio_device_->SetRecordingDevice( |
504 AudioDeviceModule::kDefaultDevice)); | 477 AudioDeviceModule::kDefaultDevice)); |
505 EXPECT_EQ(0, audio_device_->RecordingIsAvailable(&available)); | 478 EXPECT_EQ(0, audio_device_->RecordingIsAvailable(&available)); |
506 EXPECT_FALSE(audio_device_->RecordingIsInitialized()); | 479 EXPECT_FALSE(audio_device_->RecordingIsInitialized()); |
507 #endif | 480 #endif |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
616 | 589 |
617 TEST_F(AudioDeviceAPITest, StartAndStopPlayout) { | 590 TEST_F(AudioDeviceAPITest, StartAndStopPlayout) { |
618 bool available; | 591 bool available; |
619 EXPECT_EQ(0, audio_device_->RegisterAudioCallback(NULL)); | 592 EXPECT_EQ(0, audio_device_->RegisterAudioCallback(NULL)); |
620 | 593 |
621 CheckInitialPlayoutStates(); | 594 CheckInitialPlayoutStates(); |
622 | 595 |
623 EXPECT_EQ(-1, audio_device_->StartPlayout()); | 596 EXPECT_EQ(-1, audio_device_->StartPlayout()); |
624 EXPECT_EQ(0, audio_device_->StopPlayout()); | 597 EXPECT_EQ(0, audio_device_->StopPlayout()); |
625 | 598 |
626 #ifdef _WIN32 | 599 #if defined(WEBRTC_WINDOWS_CORE_AUDIO_BUILD) |
627 // kDefaultCommunicationDevice | 600 // kDefaultCommunicationDevice |
628 EXPECT_TRUE(audio_device_->SetPlayoutDevice( | 601 EXPECT_TRUE(audio_device_->SetPlayoutDevice( |
629 AudioDeviceModule::kDefaultCommunicationDevice) == 0); | 602 AudioDeviceModule::kDefaultCommunicationDevice) == 0); |
630 EXPECT_EQ(0, audio_device_->PlayoutIsAvailable(&available)); | 603 EXPECT_EQ(0, audio_device_->PlayoutIsAvailable(&available)); |
631 if (available) | 604 if (available) |
632 { | 605 { |
633 EXPECT_FALSE(audio_device_->PlayoutIsInitialized()); | 606 EXPECT_FALSE(audio_device_->PlayoutIsInitialized()); |
634 EXPECT_EQ(0, audio_device_->InitPlayout()); | 607 EXPECT_EQ(0, audio_device_->InitPlayout()); |
635 EXPECT_EQ(0, audio_device_->StartPlayout()); | 608 EXPECT_EQ(0, audio_device_->StartPlayout()); |
636 EXPECT_TRUE(audio_device_->Playing()); | 609 EXPECT_TRUE(audio_device_->Playing()); |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
675 | 648 |
676 TEST_F(AudioDeviceAPITest, StartAndStopRecording) { | 649 TEST_F(AudioDeviceAPITest, StartAndStopRecording) { |
677 bool available; | 650 bool available; |
678 EXPECT_EQ(0, audio_device_->RegisterAudioCallback(NULL)); | 651 EXPECT_EQ(0, audio_device_->RegisterAudioCallback(NULL)); |
679 | 652 |
680 CheckInitialRecordingStates(); | 653 CheckInitialRecordingStates(); |
681 | 654 |
682 EXPECT_EQ(-1, audio_device_->StartRecording()); | 655 EXPECT_EQ(-1, audio_device_->StartRecording()); |
683 EXPECT_EQ(0, audio_device_->StopRecording()); | 656 EXPECT_EQ(0, audio_device_->StopRecording()); |
684 | 657 |
685 #ifdef _WIN32 | 658 #if defined(WEBRTC_WINDOWS_CORE_AUDIO_BUILD) |
686 // kDefaultCommunicationDevice | 659 // kDefaultCommunicationDevice |
687 EXPECT_TRUE(audio_device_->SetRecordingDevice( | 660 EXPECT_TRUE(audio_device_->SetRecordingDevice( |
688 AudioDeviceModule::kDefaultCommunicationDevice) == 0); | 661 AudioDeviceModule::kDefaultCommunicationDevice) == 0); |
689 EXPECT_EQ(0, audio_device_->RecordingIsAvailable(&available)); | 662 EXPECT_EQ(0, audio_device_->RecordingIsAvailable(&available)); |
690 if (available) | 663 if (available) |
691 { | 664 { |
692 EXPECT_FALSE(audio_device_->RecordingIsInitialized()); | 665 EXPECT_FALSE(audio_device_->RecordingIsInitialized()); |
693 EXPECT_EQ(0, audio_device_->InitRecording()); | 666 EXPECT_EQ(0, audio_device_->InitRecording()); |
694 EXPECT_EQ(0, audio_device_->StartRecording()); | 667 EXPECT_EQ(0, audio_device_->StartRecording()); |
695 EXPECT_TRUE(audio_device_->Recording()); | 668 EXPECT_TRUE(audio_device_->Recording()); |
(...skipping 29 matching lines...) Expand all Loading... |
725 EXPECT_EQ(0, audio_device_->StartRecording()); | 698 EXPECT_EQ(0, audio_device_->StartRecording()); |
726 EXPECT_TRUE(audio_device_->Recording()); | 699 EXPECT_TRUE(audio_device_->Recording()); |
727 EXPECT_EQ(-1, audio_device_->RegisterAudioCallback(audio_transport_)); | 700 EXPECT_EQ(-1, audio_device_->RegisterAudioCallback(audio_transport_)); |
728 EXPECT_EQ(0, audio_device_->StopRecording()); | 701 EXPECT_EQ(0, audio_device_->StopRecording()); |
729 EXPECT_FALSE(audio_device_->Recording()); | 702 EXPECT_FALSE(audio_device_->Recording()); |
730 EXPECT_EQ(0, audio_device_->RegisterAudioCallback(NULL)); | 703 EXPECT_EQ(0, audio_device_->RegisterAudioCallback(NULL)); |
731 } | 704 } |
732 } | 705 } |
733 } | 706 } |
734 | 707 |
735 #if defined(_WIN32) && !defined(WEBRTC_WINDOWS_CORE_AUDIO_BUILD) | |
736 TEST_F(AudioDeviceAPITest, SetAndGetWaveOutVolume) { | |
737 uint32_t vol(0); | |
738 // NOTE 1: Windows Wave only! | |
739 // NOTE 2: It seems like the waveOutSetVolume API returns | |
740 // MMSYSERR_NOTSUPPORTED on some Vista machines! | |
741 const uint16_t maxVol(0xFFFF); | |
742 uint16_t volL, volR; | |
743 | |
744 CheckInitialPlayoutStates(); | |
745 | |
746 // make dummy test to see if this API is supported | |
747 int32_t works = audio_device_->SetWaveOutVolume(vol, vol); | |
748 WARNING(works == 0); | |
749 | |
750 if (works == 0) | |
751 { | |
752 // set volume without open playout device | |
753 for (vol = 0; vol <= maxVol; vol += (maxVol/5)) | |
754 { | |
755 EXPECT_EQ(0, audio_device_->SetWaveOutVolume(vol, vol)); | |
756 EXPECT_EQ(0, audio_device_->WaveOutVolume(volL, volR)); | |
757 EXPECT_TRUE((volL == vol) && (volR == vol)); | |
758 } | |
759 | |
760 // repeat test but this time with an open (default) output device | |
761 EXPECT_EQ(0, audio_device_->SetPlayoutDevice( | |
762 AudioDeviceModule::kDefaultDevice)); | |
763 EXPECT_EQ(0, audio_device_->InitPlayout()); | |
764 EXPECT_TRUE(audio_device_->PlayoutIsInitialized()); | |
765 for (vol = 0; vol <= maxVol; vol += (maxVol/5)) | |
766 { | |
767 EXPECT_EQ(0, audio_device_->SetWaveOutVolume(vol, vol)); | |
768 EXPECT_EQ(0, audio_device_->WaveOutVolume(volL, volR)); | |
769 EXPECT_TRUE((volL == vol) && (volR == vol)); | |
770 } | |
771 | |
772 // as above but while playout is active | |
773 EXPECT_EQ(0, audio_device_->StartPlayout()); | |
774 EXPECT_TRUE(audio_device_->Playing()); | |
775 for (vol = 0; vol <= maxVol; vol += (maxVol/5)) | |
776 { | |
777 EXPECT_EQ(0, audio_device_->SetWaveOutVolume(vol, vol)); | |
778 EXPECT_EQ(0, audio_device_->WaveOutVolume(volL, volR)); | |
779 EXPECT_TRUE((volL == vol) && (volR == vol)); | |
780 } | |
781 } | |
782 | |
783 EXPECT_EQ(0, audio_device_->StopPlayout()); | |
784 EXPECT_FALSE(audio_device_->Playing()); | |
785 } | |
786 #endif // defined(_WIN32) && !defined(WEBRTC_WINDOWS_CORE_AUDIO_BUILD) | |
787 | 708 |
788 TEST_F(AudioDeviceAPITest, InitSpeaker) { | 709 TEST_F(AudioDeviceAPITest, InitSpeaker) { |
789 // NOTE: By calling Terminate (in TearDown) followed by Init (in SetUp) we | 710 // NOTE: By calling Terminate (in TearDown) followed by Init (in SetUp) we |
790 // ensure that any existing output mixer handle is set to NULL. | 711 // ensure that any existing output mixer handle is set to NULL. |
791 // The mixer handle is closed and reopened again for each call to | 712 // The mixer handle is closed and reopened again for each call to |
792 // SetPlayoutDevice. | 713 // SetPlayoutDevice. |
793 CheckInitialPlayoutStates(); | 714 CheckInitialPlayoutStates(); |
794 | 715 |
795 // kDefaultCommunicationDevice | 716 // kDefaultCommunicationDevice |
796 EXPECT_EQ(0, audio_device_->SetPlayoutDevice( | 717 EXPECT_EQ(0, audio_device_->SetPlayoutDevice( |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
850 for (int i = 0; i < no_devices; i++) { | 771 for (int i = 0; i < no_devices; i++) { |
851 EXPECT_EQ(0, audio_device_->SetRecordingDevice(i)); | 772 EXPECT_EQ(0, audio_device_->SetRecordingDevice(i)); |
852 EXPECT_EQ(0, audio_device_->InitMicrophone()); | 773 EXPECT_EQ(0, audio_device_->InitMicrophone()); |
853 } | 774 } |
854 } | 775 } |
855 | 776 |
856 TEST_F(AudioDeviceAPITest, SpeakerVolumeIsAvailable) { | 777 TEST_F(AudioDeviceAPITest, SpeakerVolumeIsAvailable) { |
857 CheckInitialPlayoutStates(); | 778 CheckInitialPlayoutStates(); |
858 bool available; | 779 bool available; |
859 | 780 |
860 #ifdef _WIN32 | 781 #if defined(WEBRTC_WINDOWS_CORE_AUDIO_BUILD) |
861 // check the kDefaultCommunicationDevice | 782 // check the kDefaultCommunicationDevice |
862 EXPECT_TRUE(audio_device_->SetPlayoutDevice( | 783 EXPECT_TRUE(audio_device_->SetPlayoutDevice( |
863 AudioDeviceModule::kDefaultCommunicationDevice) == 0); | 784 AudioDeviceModule::kDefaultCommunicationDevice) == 0); |
864 EXPECT_EQ(0, audio_device_->SpeakerVolumeIsAvailable(&available)); | 785 EXPECT_EQ(0, audio_device_->SpeakerVolumeIsAvailable(&available)); |
865 // check for availability should not lead to initialization | 786 // check for availability should not lead to initialization |
866 EXPECT_FALSE(audio_device_->SpeakerIsInitialized()); | 787 EXPECT_FALSE(audio_device_->SpeakerIsInitialized()); |
867 #endif | 788 #endif |
868 | 789 |
869 // check the kDefaultDevice | 790 // check the kDefaultDevice |
870 EXPECT_EQ(0, audio_device_->SetPlayoutDevice(MACRO_DEFAULT_DEVICE)); | 791 EXPECT_EQ(0, audio_device_->SetPlayoutDevice(MACRO_DEFAULT_DEVICE)); |
(...skipping 26 matching lines...) Expand all Loading... |
897 CheckInitialPlayoutStates(); | 818 CheckInitialPlayoutStates(); |
898 | 819 |
899 // fail tests | 820 // fail tests |
900 EXPECT_EQ(-1, audio_device_->SetSpeakerVolume(0)); | 821 EXPECT_EQ(-1, audio_device_->SetSpeakerVolume(0)); |
901 // speaker must be initialized first | 822 // speaker must be initialized first |
902 EXPECT_EQ(-1, audio_device_->SpeakerVolume(&volume)); | 823 EXPECT_EQ(-1, audio_device_->SpeakerVolume(&volume)); |
903 EXPECT_EQ(-1, audio_device_->MaxSpeakerVolume(&maxVolume)); | 824 EXPECT_EQ(-1, audio_device_->MaxSpeakerVolume(&maxVolume)); |
904 EXPECT_EQ(-1, audio_device_->MinSpeakerVolume(&minVolume)); | 825 EXPECT_EQ(-1, audio_device_->MinSpeakerVolume(&minVolume)); |
905 EXPECT_EQ(-1, audio_device_->SpeakerVolumeStepSize(&stepSize)); | 826 EXPECT_EQ(-1, audio_device_->SpeakerVolumeStepSize(&stepSize)); |
906 | 827 |
907 #if defined(_WIN32) && !defined(WEBRTC_WINDOWS_CORE_AUDIO_BUILD) | 828 #if defined(WEBRTC_WINDOWS_CORE_AUDIO_BUILD) |
908 // test for warning (can e.g. happen on Vista with Wave API) | |
909 EXPECT_EQ(0, | |
910 audio_device_->SetPlayoutDevice(AudioDeviceModule::kDefaultDevice)); | |
911 EXPECT_EQ(0, audio_device_->SpeakerVolumeIsAvailable(&available)); | |
912 if (available) { | |
913 EXPECT_EQ(0, audio_device_->InitSpeaker()); | |
914 EXPECT_EQ(0, audio_device_->SetSpeakerVolume(19001)); | |
915 EXPECT_EQ(0, audio_device_->SpeakerVolume(&volume)); | |
916 WARNING(volume == 19001); | |
917 } | |
918 #endif | |
919 | |
920 #ifdef _WIN32 | |
921 // use kDefaultCommunicationDevice and modify/retrieve the volume | 829 // use kDefaultCommunicationDevice and modify/retrieve the volume |
922 EXPECT_TRUE(audio_device_->SetPlayoutDevice( | 830 EXPECT_TRUE(audio_device_->SetPlayoutDevice( |
923 AudioDeviceModule::kDefaultCommunicationDevice) == 0); | 831 AudioDeviceModule::kDefaultCommunicationDevice) == 0); |
924 EXPECT_EQ(0, audio_device_->SpeakerVolumeIsAvailable(&available)); | 832 EXPECT_EQ(0, audio_device_->SpeakerVolumeIsAvailable(&available)); |
925 if (available) { | 833 if (available) { |
926 EXPECT_EQ(0, audio_device_->InitSpeaker()); | 834 EXPECT_EQ(0, audio_device_->InitSpeaker()); |
927 EXPECT_EQ(0, audio_device_->MaxSpeakerVolume(&maxVolume)); | 835 EXPECT_EQ(0, audio_device_->MaxSpeakerVolume(&maxVolume)); |
928 EXPECT_EQ(0, audio_device_->MinSpeakerVolume(&minVolume)); | 836 EXPECT_EQ(0, audio_device_->MinSpeakerVolume(&minVolume)); |
929 EXPECT_EQ(0, audio_device_->SpeakerVolumeStepSize(&stepSize)); | 837 EXPECT_EQ(0, audio_device_->SpeakerVolumeStepSize(&stepSize)); |
930 for (vol = minVolume; vol < (unsigned int)maxVolume; vol += 20*stepSize) { | 838 for (vol = minVolume; vol < (unsigned int)maxVolume; vol += 20*stepSize) { |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
994 EXPECT_EQ(0, audio_device_->SetAGC(true)); | 902 EXPECT_EQ(0, audio_device_->SetAGC(true)); |
995 EXPECT_TRUE(audio_device_->AGC()); | 903 EXPECT_TRUE(audio_device_->AGC()); |
996 EXPECT_EQ(0, audio_device_->SetAGC(false)); | 904 EXPECT_EQ(0, audio_device_->SetAGC(false)); |
997 EXPECT_FALSE(audio_device_->AGC()); | 905 EXPECT_FALSE(audio_device_->AGC()); |
998 } | 906 } |
999 | 907 |
1000 TEST_F(AudioDeviceAPITest, MicrophoneVolumeIsAvailable) { | 908 TEST_F(AudioDeviceAPITest, MicrophoneVolumeIsAvailable) { |
1001 CheckInitialRecordingStates(); | 909 CheckInitialRecordingStates(); |
1002 bool available; | 910 bool available; |
1003 | 911 |
1004 #ifdef _WIN32 | 912 #if defined(WEBRTC_WINDOWS_CORE_AUDIO_BUILD) |
1005 // check the kDefaultCommunicationDevice | 913 // check the kDefaultCommunicationDevice |
1006 EXPECT_TRUE(audio_device_->SetRecordingDevice( | 914 EXPECT_TRUE(audio_device_->SetRecordingDevice( |
1007 AudioDeviceModule::kDefaultCommunicationDevice) == 0); | 915 AudioDeviceModule::kDefaultCommunicationDevice) == 0); |
1008 EXPECT_EQ(0, audio_device_->MicrophoneVolumeIsAvailable(&available)); | 916 EXPECT_EQ(0, audio_device_->MicrophoneVolumeIsAvailable(&available)); |
1009 // check for availability should not lead to initialization | 917 // check for availability should not lead to initialization |
1010 EXPECT_FALSE(audio_device_->MicrophoneIsInitialized()); | 918 EXPECT_FALSE(audio_device_->MicrophoneIsInitialized()); |
1011 #endif | 919 #endif |
1012 | 920 |
1013 // check the kDefaultDevice | 921 // check the kDefaultDevice |
1014 EXPECT_EQ(0, audio_device_->SetRecordingDevice(MACRO_DEFAULT_DEVICE)); | 922 EXPECT_EQ(0, audio_device_->SetRecordingDevice(MACRO_DEFAULT_DEVICE)); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1047 CheckInitialRecordingStates(); | 955 CheckInitialRecordingStates(); |
1048 | 956 |
1049 // fail tests | 957 // fail tests |
1050 EXPECT_EQ(-1, audio_device_->SetMicrophoneVolume(0)); | 958 EXPECT_EQ(-1, audio_device_->SetMicrophoneVolume(0)); |
1051 // must be initialized first | 959 // must be initialized first |
1052 EXPECT_EQ(-1, audio_device_->MicrophoneVolume(&volume)); | 960 EXPECT_EQ(-1, audio_device_->MicrophoneVolume(&volume)); |
1053 EXPECT_EQ(-1, audio_device_->MaxMicrophoneVolume(&maxVolume)); | 961 EXPECT_EQ(-1, audio_device_->MaxMicrophoneVolume(&maxVolume)); |
1054 EXPECT_EQ(-1, audio_device_->MinMicrophoneVolume(&minVolume)); | 962 EXPECT_EQ(-1, audio_device_->MinMicrophoneVolume(&minVolume)); |
1055 EXPECT_EQ(-1, audio_device_->MicrophoneVolumeStepSize(&stepSize)); | 963 EXPECT_EQ(-1, audio_device_->MicrophoneVolumeStepSize(&stepSize)); |
1056 | 964 |
1057 #if defined(_WIN32) && !defined(WEBRTC_WINDOWS_CORE_AUDIO_BUILD) | 965 #if defined(WEBRTC_WINDOWS_CORE_AUDIO_BUILD) |
1058 // test for warning (can e.g. happen on Vista with Wave API) | |
1059 EXPECT_EQ(0, audio_device_->SetRecordingDevice( | |
1060 AudioDeviceModule::kDefaultDevice)); | |
1061 EXPECT_EQ(0, audio_device_->MicrophoneVolumeIsAvailable(&available)); | |
1062 if (available) | |
1063 { | |
1064 EXPECT_EQ(0, audio_device_->InitMicrophone()); | |
1065 EXPECT_EQ(0, audio_device_->SetMicrophoneVolume(19001)); | |
1066 EXPECT_EQ(0, audio_device_->MicrophoneVolume(&volume)); | |
1067 WARNING(volume == 19001); | |
1068 } | |
1069 #endif | |
1070 | |
1071 #ifdef _WIN32 | |
1072 // initialize kDefaultCommunicationDevice and modify/retrieve the volume | 966 // initialize kDefaultCommunicationDevice and modify/retrieve the volume |
1073 EXPECT_TRUE(audio_device_->SetRecordingDevice( | 967 EXPECT_TRUE(audio_device_->SetRecordingDevice( |
1074 AudioDeviceModule::kDefaultCommunicationDevice) == 0); | 968 AudioDeviceModule::kDefaultCommunicationDevice) == 0); |
1075 EXPECT_EQ(0, audio_device_->MicrophoneVolumeIsAvailable(&available)); | 969 EXPECT_EQ(0, audio_device_->MicrophoneVolumeIsAvailable(&available)); |
1076 if (available) | 970 if (available) |
1077 { | 971 { |
1078 EXPECT_EQ(0, audio_device_->InitMicrophone()); | 972 EXPECT_EQ(0, audio_device_->InitMicrophone()); |
1079 EXPECT_EQ(0, audio_device_->MaxMicrophoneVolume(&maxVolume)); | 973 EXPECT_EQ(0, audio_device_->MaxMicrophoneVolume(&maxVolume)); |
1080 EXPECT_EQ(0, audio_device_->MinMicrophoneVolume(&minVolume)); | 974 EXPECT_EQ(0, audio_device_->MinMicrophoneVolume(&minVolume)); |
1081 EXPECT_EQ(0, audio_device_->MicrophoneVolumeStepSize(&stepSize)); | 975 EXPECT_EQ(0, audio_device_->MicrophoneVolumeStepSize(&stepSize)); |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1127 if (available) { | 1021 if (available) { |
1128 EXPECT_EQ(0, audio_device_->InitMicrophone()); | 1022 EXPECT_EQ(0, audio_device_->InitMicrophone()); |
1129 EXPECT_EQ(0, audio_device_->MaxMicrophoneVolume(&maxVolume)); | 1023 EXPECT_EQ(0, audio_device_->MaxMicrophoneVolume(&maxVolume)); |
1130 EXPECT_EQ(0, audio_device_->SetMicrophoneVolume(maxVolume/10)); | 1024 EXPECT_EQ(0, audio_device_->SetMicrophoneVolume(maxVolume/10)); |
1131 } | 1025 } |
1132 } | 1026 } |
1133 | 1027 |
1134 TEST_F(AudioDeviceAPITest, SpeakerMuteIsAvailable) { | 1028 TEST_F(AudioDeviceAPITest, SpeakerMuteIsAvailable) { |
1135 bool available; | 1029 bool available; |
1136 CheckInitialPlayoutStates(); | 1030 CheckInitialPlayoutStates(); |
1137 #ifdef _WIN32 | 1031 #if defined(WEBRTC_WINDOWS_CORE_AUDIO_BUILD) |
1138 // check the kDefaultCommunicationDevice | 1032 // check the kDefaultCommunicationDevice |
1139 EXPECT_TRUE(audio_device_->SetPlayoutDevice( | 1033 EXPECT_TRUE(audio_device_->SetPlayoutDevice( |
1140 AudioDeviceModule::kDefaultCommunicationDevice) == 0); | 1034 AudioDeviceModule::kDefaultCommunicationDevice) == 0); |
1141 EXPECT_EQ(0, audio_device_->SpeakerMuteIsAvailable(&available)); | 1035 EXPECT_EQ(0, audio_device_->SpeakerMuteIsAvailable(&available)); |
1142 // check for availability should not lead to initialization | 1036 // check for availability should not lead to initialization |
1143 EXPECT_FALSE(audio_device_->SpeakerIsInitialized()); | 1037 EXPECT_FALSE(audio_device_->SpeakerIsInitialized()); |
1144 #endif | 1038 #endif |
1145 | 1039 |
1146 // check the kDefaultDevice | 1040 // check the kDefaultDevice |
1147 EXPECT_EQ(0, audio_device_->SetPlayoutDevice(MACRO_DEFAULT_DEVICE)); | 1041 EXPECT_EQ(0, audio_device_->SetPlayoutDevice(MACRO_DEFAULT_DEVICE)); |
1148 EXPECT_EQ(0, audio_device_->SpeakerMuteIsAvailable(&available)); | 1042 EXPECT_EQ(0, audio_device_->SpeakerMuteIsAvailable(&available)); |
1149 EXPECT_FALSE(audio_device_->SpeakerIsInitialized()); | 1043 EXPECT_FALSE(audio_device_->SpeakerIsInitialized()); |
1150 | 1044 |
1151 // check all availiable devices | 1045 // check all availiable devices |
1152 int16_t no_devices = audio_device_->PlayoutDevices(); | 1046 int16_t no_devices = audio_device_->PlayoutDevices(); |
1153 for (int i = 0; i < no_devices; i++) { | 1047 for (int i = 0; i < no_devices; i++) { |
1154 EXPECT_EQ(0, audio_device_->SetPlayoutDevice(i)); | 1048 EXPECT_EQ(0, audio_device_->SetPlayoutDevice(i)); |
1155 EXPECT_EQ(0, audio_device_->SpeakerMuteIsAvailable(&available)); | 1049 EXPECT_EQ(0, audio_device_->SpeakerMuteIsAvailable(&available)); |
1156 EXPECT_FALSE(audio_device_->SpeakerIsInitialized()); | 1050 EXPECT_FALSE(audio_device_->SpeakerIsInitialized()); |
1157 } | 1051 } |
1158 } | 1052 } |
1159 | 1053 |
1160 TEST_F(AudioDeviceAPITest, MicrophoneMuteIsAvailable) { | 1054 TEST_F(AudioDeviceAPITest, MicrophoneMuteIsAvailable) { |
1161 bool available; | 1055 bool available; |
1162 CheckInitialRecordingStates(); | 1056 CheckInitialRecordingStates(); |
1163 #ifdef _WIN32 | 1057 #if defined(WEBRTC_WINDOWS_CORE_AUDIO_BUILD) |
1164 // check the kDefaultCommunicationDevice | 1058 // check the kDefaultCommunicationDevice |
1165 EXPECT_TRUE(audio_device_->SetRecordingDevice( | 1059 EXPECT_TRUE(audio_device_->SetRecordingDevice( |
1166 AudioDeviceModule::kDefaultCommunicationDevice) == 0); | 1060 AudioDeviceModule::kDefaultCommunicationDevice) == 0); |
1167 EXPECT_EQ(0, audio_device_->MicrophoneMuteIsAvailable(&available)); | 1061 EXPECT_EQ(0, audio_device_->MicrophoneMuteIsAvailable(&available)); |
1168 // check for availability should not lead to initialization | 1062 // check for availability should not lead to initialization |
1169 #endif | 1063 #endif |
1170 EXPECT_FALSE(audio_device_->MicrophoneIsInitialized()); | 1064 EXPECT_FALSE(audio_device_->MicrophoneIsInitialized()); |
1171 | 1065 |
1172 // check the kDefaultDevice | 1066 // check the kDefaultDevice |
1173 EXPECT_EQ(0, audio_device_->SetRecordingDevice(MACRO_DEFAULT_DEVICE)); | 1067 EXPECT_EQ(0, audio_device_->SetRecordingDevice(MACRO_DEFAULT_DEVICE)); |
1174 EXPECT_EQ(0, audio_device_->MicrophoneMuteIsAvailable(&available)); | 1068 EXPECT_EQ(0, audio_device_->MicrophoneMuteIsAvailable(&available)); |
1175 EXPECT_FALSE(audio_device_->MicrophoneIsInitialized()); | 1069 EXPECT_FALSE(audio_device_->MicrophoneIsInitialized()); |
1176 | 1070 |
1177 // check all availiable devices | 1071 // check all availiable devices |
1178 int16_t no_devices = audio_device_->RecordingDevices(); | 1072 int16_t no_devices = audio_device_->RecordingDevices(); |
1179 for (int i = 0; i < no_devices; i++) { | 1073 for (int i = 0; i < no_devices; i++) { |
1180 EXPECT_EQ(0, audio_device_->SetRecordingDevice(i)); | 1074 EXPECT_EQ(0, audio_device_->SetRecordingDevice(i)); |
1181 EXPECT_EQ(0, audio_device_->MicrophoneMuteIsAvailable(&available)); | 1075 EXPECT_EQ(0, audio_device_->MicrophoneMuteIsAvailable(&available)); |
1182 EXPECT_FALSE(audio_device_->MicrophoneIsInitialized()); | 1076 EXPECT_FALSE(audio_device_->MicrophoneIsInitialized()); |
1183 } | 1077 } |
1184 } | 1078 } |
1185 | 1079 |
1186 TEST_F(AudioDeviceAPITest, MicrophoneBoostIsAvailable) { | 1080 TEST_F(AudioDeviceAPITest, MicrophoneBoostIsAvailable) { |
1187 bool available; | 1081 bool available; |
1188 CheckInitialRecordingStates(); | 1082 CheckInitialRecordingStates(); |
1189 #ifdef _WIN32 | 1083 #if defined(WEBRTC_WINDOWS_CORE_AUDIO_BUILD) |
1190 // check the kDefaultCommunicationDevice | 1084 // check the kDefaultCommunicationDevice |
1191 EXPECT_TRUE(audio_device_->SetRecordingDevice( | 1085 EXPECT_TRUE(audio_device_->SetRecordingDevice( |
1192 AudioDeviceModule::kDefaultCommunicationDevice) == 0); | 1086 AudioDeviceModule::kDefaultCommunicationDevice) == 0); |
1193 EXPECT_EQ(0, audio_device_->MicrophoneBoostIsAvailable(&available)); | 1087 EXPECT_EQ(0, audio_device_->MicrophoneBoostIsAvailable(&available)); |
1194 // check for availability should not lead to initialization | 1088 // check for availability should not lead to initialization |
1195 EXPECT_FALSE(audio_device_->MicrophoneIsInitialized()); | 1089 EXPECT_FALSE(audio_device_->MicrophoneIsInitialized()); |
1196 #endif | 1090 #endif |
1197 | 1091 |
1198 // check the kDefaultDevice | 1092 // check the kDefaultDevice |
1199 EXPECT_EQ(0, audio_device_->SetRecordingDevice(MACRO_DEFAULT_DEVICE)); | 1093 EXPECT_EQ(0, audio_device_->SetRecordingDevice(MACRO_DEFAULT_DEVICE)); |
(...skipping 11 matching lines...) Expand all Loading... |
1211 | 1105 |
1212 TEST_F(AudioDeviceAPITest, SpeakerMuteTests) { | 1106 TEST_F(AudioDeviceAPITest, SpeakerMuteTests) { |
1213 bool available; | 1107 bool available; |
1214 bool enabled; | 1108 bool enabled; |
1215 CheckInitialPlayoutStates(); | 1109 CheckInitialPlayoutStates(); |
1216 // fail tests | 1110 // fail tests |
1217 EXPECT_EQ(-1, audio_device_->SetSpeakerMute(true)); | 1111 EXPECT_EQ(-1, audio_device_->SetSpeakerMute(true)); |
1218 // requires initialization | 1112 // requires initialization |
1219 EXPECT_EQ(-1, audio_device_->SpeakerMute(&enabled)); | 1113 EXPECT_EQ(-1, audio_device_->SpeakerMute(&enabled)); |
1220 | 1114 |
1221 #ifdef _WIN32 | 1115 #if defined(WEBRTC_WINDOWS_CORE_AUDIO_BUILD) |
1222 // initialize kDefaultCommunicationDevice and modify/retrieve the mute state | 1116 // initialize kDefaultCommunicationDevice and modify/retrieve the mute state |
1223 EXPECT_EQ(0, audio_device_->SetPlayoutDevice( | 1117 EXPECT_EQ(0, audio_device_->SetPlayoutDevice( |
1224 AudioDeviceModule::kDefaultCommunicationDevice)); | 1118 AudioDeviceModule::kDefaultCommunicationDevice)); |
1225 EXPECT_EQ(0, audio_device_->SpeakerMuteIsAvailable(&available)); | 1119 EXPECT_EQ(0, audio_device_->SpeakerMuteIsAvailable(&available)); |
1226 if (available) | 1120 if (available) |
1227 { | 1121 { |
1228 EXPECT_EQ(0, audio_device_->InitSpeaker()); | 1122 EXPECT_EQ(0, audio_device_->InitSpeaker()); |
1229 EXPECT_EQ(0, audio_device_->SetSpeakerMute(true)); | 1123 EXPECT_EQ(0, audio_device_->SetSpeakerMute(true)); |
1230 EXPECT_EQ(0, audio_device_->SpeakerMute(&enabled)); | 1124 EXPECT_EQ(0, audio_device_->SpeakerMute(&enabled)); |
1231 EXPECT_TRUE(enabled); | 1125 EXPECT_TRUE(enabled); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1265 TEST_F(AudioDeviceAPITest, MicrophoneMuteTests) { | 1159 TEST_F(AudioDeviceAPITest, MicrophoneMuteTests) { |
1266 CheckInitialRecordingStates(); | 1160 CheckInitialRecordingStates(); |
1267 | 1161 |
1268 // fail tests | 1162 // fail tests |
1269 EXPECT_EQ(-1, audio_device_->SetMicrophoneMute(true)); | 1163 EXPECT_EQ(-1, audio_device_->SetMicrophoneMute(true)); |
1270 // requires initialization | 1164 // requires initialization |
1271 bool available; | 1165 bool available; |
1272 bool enabled; | 1166 bool enabled; |
1273 EXPECT_EQ(-1, audio_device_->MicrophoneMute(&enabled)); | 1167 EXPECT_EQ(-1, audio_device_->MicrophoneMute(&enabled)); |
1274 | 1168 |
1275 #ifdef _WIN32 | 1169 #if defined(WEBRTC_WINDOWS_CORE_AUDIO_BUILD) |
1276 // initialize kDefaultCommunicationDevice and modify/retrieve the mute | 1170 // initialize kDefaultCommunicationDevice and modify/retrieve the mute |
1277 EXPECT_TRUE(audio_device_->SetRecordingDevice( | 1171 EXPECT_TRUE(audio_device_->SetRecordingDevice( |
1278 AudioDeviceModule::kDefaultCommunicationDevice) == 0); | 1172 AudioDeviceModule::kDefaultCommunicationDevice) == 0); |
1279 EXPECT_EQ(0, audio_device_->MicrophoneMuteIsAvailable(&available)); | 1173 EXPECT_EQ(0, audio_device_->MicrophoneMuteIsAvailable(&available)); |
1280 if (available) | 1174 if (available) |
1281 { | 1175 { |
1282 EXPECT_EQ(0, audio_device_->InitMicrophone()); | 1176 EXPECT_EQ(0, audio_device_->InitMicrophone()); |
1283 EXPECT_EQ(0, audio_device_->SetMicrophoneMute(true)); | 1177 EXPECT_EQ(0, audio_device_->SetMicrophoneMute(true)); |
1284 EXPECT_EQ(0, audio_device_->MicrophoneMute(&enabled)); | 1178 EXPECT_EQ(0, audio_device_->MicrophoneMute(&enabled)); |
1285 EXPECT_TRUE(enabled); | 1179 EXPECT_TRUE(enabled); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1319 TEST_F(AudioDeviceAPITest, MicrophoneBoostTests) { | 1213 TEST_F(AudioDeviceAPITest, MicrophoneBoostTests) { |
1320 bool available; | 1214 bool available; |
1321 bool enabled; | 1215 bool enabled; |
1322 CheckInitialRecordingStates(); | 1216 CheckInitialRecordingStates(); |
1323 | 1217 |
1324 // fail tests | 1218 // fail tests |
1325 EXPECT_EQ(-1, audio_device_->SetMicrophoneBoost(true)); | 1219 EXPECT_EQ(-1, audio_device_->SetMicrophoneBoost(true)); |
1326 // requires initialization | 1220 // requires initialization |
1327 EXPECT_EQ(-1, audio_device_->MicrophoneBoost(&enabled)); | 1221 EXPECT_EQ(-1, audio_device_->MicrophoneBoost(&enabled)); |
1328 | 1222 |
1329 #ifdef _WIN32 | 1223 #if defined(WEBRTC_WINDOWS_CORE_AUDIO_BUILD) |
1330 // initialize kDefaultCommunicationDevice and modify/retrieve the boost | 1224 // initialize kDefaultCommunicationDevice and modify/retrieve the boost |
1331 EXPECT_TRUE(audio_device_->SetRecordingDevice( | 1225 EXPECT_TRUE(audio_device_->SetRecordingDevice( |
1332 AudioDeviceModule::kDefaultCommunicationDevice) == 0); | 1226 AudioDeviceModule::kDefaultCommunicationDevice) == 0); |
1333 EXPECT_EQ(0, audio_device_->MicrophoneBoostIsAvailable(&available)); | 1227 EXPECT_EQ(0, audio_device_->MicrophoneBoostIsAvailable(&available)); |
1334 if (available) | 1228 if (available) |
1335 { | 1229 { |
1336 EXPECT_EQ(0, audio_device_->InitMicrophone()); | 1230 EXPECT_EQ(0, audio_device_->InitMicrophone()); |
1337 EXPECT_EQ(0, audio_device_->SetMicrophoneBoost(true)); | 1231 EXPECT_EQ(0, audio_device_->SetMicrophoneBoost(true)); |
1338 EXPECT_EQ(0, audio_device_->MicrophoneBoost(&enabled)); | 1232 EXPECT_EQ(0, audio_device_->MicrophoneBoost(&enabled)); |
1339 EXPECT_TRUE(enabled); | 1233 EXPECT_TRUE(enabled); |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1498 EXPECT_FALSE(enabled); | 1392 EXPECT_FALSE(enabled); |
1499 } | 1393 } |
1500 } | 1394 } |
1501 | 1395 |
1502 TEST_F(AudioDeviceAPITest, PlayoutBufferTests) { | 1396 TEST_F(AudioDeviceAPITest, PlayoutBufferTests) { |
1503 AudioDeviceModule::BufferType bufferType; | 1397 AudioDeviceModule::BufferType bufferType; |
1504 uint16_t sizeMS(0); | 1398 uint16_t sizeMS(0); |
1505 | 1399 |
1506 CheckInitialPlayoutStates(); | 1400 CheckInitialPlayoutStates(); |
1507 EXPECT_EQ(0, audio_device_->PlayoutBuffer(&bufferType, &sizeMS)); | 1401 EXPECT_EQ(0, audio_device_->PlayoutBuffer(&bufferType, &sizeMS)); |
1508 #if defined(_WIN32) || defined(ANDROID) || defined(WEBRTC_IOS) | 1402 #if defined(WEBRTC_WINDOWS_CORE_AUDIO_BUILD) || defined(ANDROID) || \ |
| 1403 defined(WEBRTC_IOS) |
1509 EXPECT_EQ(AudioDeviceModule::kAdaptiveBufferSize, bufferType); | 1404 EXPECT_EQ(AudioDeviceModule::kAdaptiveBufferSize, bufferType); |
1510 #else | 1405 #else |
1511 EXPECT_EQ(AudioDeviceModule::kFixedBufferSize, bufferType); | 1406 EXPECT_EQ(AudioDeviceModule::kFixedBufferSize, bufferType); |
1512 #endif | 1407 #endif |
1513 | 1408 |
1514 // fail tests | 1409 // fail tests |
1515 EXPECT_EQ(-1, audio_device_->InitPlayout()); | 1410 EXPECT_EQ(-1, audio_device_->InitPlayout()); |
1516 // must set device first | 1411 // must set device first |
1517 EXPECT_EQ(0, audio_device_->SetPlayoutDevice( | 1412 EXPECT_EQ(0, audio_device_->SetPlayoutDevice( |
1518 MACRO_DEFAULT_COMMUNICATION_DEVICE)); | 1413 MACRO_DEFAULT_COMMUNICATION_DEVICE)); |
1519 | 1414 |
1520 // TODO(kjellander): Fix so these tests pass on Mac. | 1415 // TODO(kjellander): Fix so these tests pass on Mac. |
1521 #if !defined(WEBRTC_MAC) | 1416 #if !defined(WEBRTC_MAC) |
1522 EXPECT_EQ(0, audio_device_->InitPlayout()); | 1417 EXPECT_EQ(0, audio_device_->InitPlayout()); |
1523 EXPECT_TRUE(audio_device_->PlayoutIsInitialized()); | 1418 EXPECT_TRUE(audio_device_->PlayoutIsInitialized()); |
1524 #endif | 1419 #endif |
1525 EXPECT_TRUE(audio_device_->SetPlayoutBuffer( | 1420 EXPECT_TRUE(audio_device_->SetPlayoutBuffer( |
1526 AudioDeviceModule::kAdaptiveBufferSize, 100) == -1); | 1421 AudioDeviceModule::kAdaptiveBufferSize, 100) == -1); |
1527 EXPECT_EQ(0, audio_device_->StopPlayout()); | 1422 EXPECT_EQ(0, audio_device_->StopPlayout()); |
1528 EXPECT_TRUE(audio_device_->SetPlayoutBuffer( | 1423 EXPECT_TRUE(audio_device_->SetPlayoutBuffer( |
1529 AudioDeviceModule::kFixedBufferSize, kAdmMinPlayoutBufferSizeMs-1) == -1); | 1424 AudioDeviceModule::kFixedBufferSize, kAdmMinPlayoutBufferSizeMs-1) == -1); |
1530 EXPECT_TRUE(audio_device_->SetPlayoutBuffer( | 1425 EXPECT_TRUE(audio_device_->SetPlayoutBuffer( |
1531 AudioDeviceModule::kFixedBufferSize, kAdmMaxPlayoutBufferSizeMs+1) == -1); | 1426 AudioDeviceModule::kFixedBufferSize, kAdmMaxPlayoutBufferSizeMs+1) == -1); |
1532 | 1427 |
1533 // bulk tests (all should be successful) | 1428 // bulk tests (all should be successful) |
1534 EXPECT_FALSE(audio_device_->PlayoutIsInitialized()); | 1429 EXPECT_FALSE(audio_device_->PlayoutIsInitialized()); |
1535 #ifdef _WIN32 | 1430 #if defined(WEBRTC_WINDOWS_CORE_AUDIO_BUILD) |
1536 EXPECT_EQ(0, audio_device_->SetPlayoutBuffer( | 1431 EXPECT_EQ(0, audio_device_->SetPlayoutBuffer( |
1537 AudioDeviceModule::kAdaptiveBufferSize, 0)); | 1432 AudioDeviceModule::kAdaptiveBufferSize, 0)); |
1538 EXPECT_EQ(0, audio_device_->PlayoutBuffer(&bufferType, &sizeMS)); | 1433 EXPECT_EQ(0, audio_device_->PlayoutBuffer(&bufferType, &sizeMS)); |
1539 EXPECT_EQ(AudioDeviceModule::kAdaptiveBufferSize, bufferType); | 1434 EXPECT_EQ(AudioDeviceModule::kAdaptiveBufferSize, bufferType); |
1540 EXPECT_EQ(0, audio_device_->SetPlayoutBuffer( | 1435 EXPECT_EQ(0, audio_device_->SetPlayoutBuffer( |
1541 AudioDeviceModule::kAdaptiveBufferSize, 10000)); | 1436 AudioDeviceModule::kAdaptiveBufferSize, 10000)); |
1542 EXPECT_EQ(0, audio_device_->PlayoutBuffer(&bufferType, &sizeMS)); | 1437 EXPECT_EQ(0, audio_device_->PlayoutBuffer(&bufferType, &sizeMS)); |
1543 EXPECT_EQ(AudioDeviceModule::kAdaptiveBufferSize, bufferType); | 1438 EXPECT_EQ(AudioDeviceModule::kAdaptiveBufferSize, bufferType); |
1544 #endif | 1439 #endif |
1545 #if defined(ANDROID) || defined(WEBRTC_IOS) | 1440 #if defined(ANDROID) || defined(WEBRTC_IOS) |
(...skipping 11 matching lines...) Expand all Loading... |
1557 EXPECT_EQ(0, audio_device_->PlayoutBuffer(&bufferType, &sizeMS)); | 1452 EXPECT_EQ(0, audio_device_->PlayoutBuffer(&bufferType, &sizeMS)); |
1558 EXPECT_EQ(AudioDeviceModule::kFixedBufferSize, bufferType); | 1453 EXPECT_EQ(AudioDeviceModule::kFixedBufferSize, bufferType); |
1559 EXPECT_EQ(kAdmMaxPlayoutBufferSizeMs, sizeMS); | 1454 EXPECT_EQ(kAdmMaxPlayoutBufferSizeMs, sizeMS); |
1560 EXPECT_EQ(0, audio_device_->SetPlayoutBuffer( | 1455 EXPECT_EQ(0, audio_device_->SetPlayoutBuffer( |
1561 AudioDeviceModule::kFixedBufferSize, 100)); | 1456 AudioDeviceModule::kFixedBufferSize, 100)); |
1562 EXPECT_EQ(0, audio_device_->PlayoutBuffer(&bufferType, &sizeMS)); | 1457 EXPECT_EQ(0, audio_device_->PlayoutBuffer(&bufferType, &sizeMS)); |
1563 EXPECT_EQ(AudioDeviceModule::kFixedBufferSize, bufferType); | 1458 EXPECT_EQ(AudioDeviceModule::kFixedBufferSize, bufferType); |
1564 EXPECT_EQ(100, sizeMS); | 1459 EXPECT_EQ(100, sizeMS); |
1565 #endif | 1460 #endif |
1566 | 1461 |
1567 #ifdef _WIN32 | 1462 #if defined(WEBRTC_WINDOWS_CORE_AUDIO_BUILD) |
1568 // restore default | 1463 // restore default |
1569 EXPECT_EQ(0, audio_device_->SetPlayoutBuffer( | 1464 EXPECT_EQ(0, audio_device_->SetPlayoutBuffer( |
1570 AudioDeviceModule::kAdaptiveBufferSize, 0)); | 1465 AudioDeviceModule::kAdaptiveBufferSize, 0)); |
1571 EXPECT_EQ(0, audio_device_->PlayoutBuffer(&bufferType, &sizeMS)); | 1466 EXPECT_EQ(0, audio_device_->PlayoutBuffer(&bufferType, &sizeMS)); |
1572 #endif | 1467 #endif |
1573 } | 1468 } |
1574 | 1469 |
1575 TEST_F(AudioDeviceAPITest, PlayoutDelay) { | 1470 TEST_F(AudioDeviceAPITest, PlayoutDelay) { |
1576 // NOTE: this API is better tested in a functional test | 1471 // NOTE: this API is better tested in a functional test |
1577 uint16_t sizeMS(0); | 1472 uint16_t sizeMS(0); |
(...skipping 11 matching lines...) Expand all Loading... |
1589 // bulk tests | 1484 // bulk tests |
1590 EXPECT_EQ(0, audio_device_->RecordingDelay(&sizeMS)); | 1485 EXPECT_EQ(0, audio_device_->RecordingDelay(&sizeMS)); |
1591 EXPECT_EQ(0, audio_device_->RecordingDelay(&sizeMS)); | 1486 EXPECT_EQ(0, audio_device_->RecordingDelay(&sizeMS)); |
1592 } | 1487 } |
1593 | 1488 |
1594 TEST_F(AudioDeviceAPITest, CPULoad) { | 1489 TEST_F(AudioDeviceAPITest, CPULoad) { |
1595 // NOTE: this API is better tested in a functional test | 1490 // NOTE: this API is better tested in a functional test |
1596 uint16_t load(0); | 1491 uint16_t load(0); |
1597 | 1492 |
1598 // bulk tests | 1493 // bulk tests |
1599 #ifdef _WIN32 | 1494 #if defined(WEBRTC_WINDOWS_CORE_AUDIO_BUILD) |
1600 EXPECT_EQ(0, audio_device_->CPULoad(&load)); | 1495 EXPECT_EQ(0, audio_device_->CPULoad(&load)); |
1601 EXPECT_EQ(0, load); | 1496 EXPECT_EQ(0, load); |
1602 #else | 1497 #else |
1603 EXPECT_EQ(-1, audio_device_->CPULoad(&load)); | 1498 EXPECT_EQ(-1, audio_device_->CPULoad(&load)); |
1604 #endif | 1499 #endif |
1605 } | 1500 } |
1606 | 1501 |
1607 // TODO(kjellander): Fix flakiness causing failures on Windows. | 1502 // TODO(kjellander): Fix flakiness causing failures on Windows. |
1608 // TODO(phoglund): Fix flakiness causing failures on Linux. | 1503 // TODO(phoglund): Fix flakiness causing failures on Linux. |
1609 #if !defined(_WIN32) && !defined(WEBRTC_LINUX) | 1504 #if !defined(_WIN32) && !defined(WEBRTC_LINUX) |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1705 EXPECT_EQ(48000, sampleRate); | 1600 EXPECT_EQ(48000, sampleRate); |
1706 #elif defined(ANDROID) | 1601 #elif defined(ANDROID) |
1707 TEST_LOG("Playout sample rate is %u\n\n", sampleRate); | 1602 TEST_LOG("Playout sample rate is %u\n\n", sampleRate); |
1708 EXPECT_TRUE((sampleRate == 44000) || (sampleRate == 16000)); | 1603 EXPECT_TRUE((sampleRate == 44000) || (sampleRate == 16000)); |
1709 #elif defined(WEBRTC_IOS) | 1604 #elif defined(WEBRTC_IOS) |
1710 TEST_LOG("Playout sample rate is %u\n\n", sampleRate); | 1605 TEST_LOG("Playout sample rate is %u\n\n", sampleRate); |
1711 EXPECT_TRUE((sampleRate == 44000) || (sampleRate == 16000) || | 1606 EXPECT_TRUE((sampleRate == 44000) || (sampleRate == 16000) || |
1712 (sampleRate == 8000)); | 1607 (sampleRate == 8000)); |
1713 #endif | 1608 #endif |
1714 } | 1609 } |
OLD | NEW |