Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(107)

Side by Side Diff: webrtc/modules/audio_device/test/audio_device_test_api.cc

Issue 2700983002: Remove the Windows Wave audio device implementation. (Closed)
Patch Set: Delete even more code and clean up _WIN32 usage Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 }
OLDNEW
« no previous file with comments | « webrtc/modules/audio_device/include/audio_device.h ('k') | webrtc/modules/audio_device/win/audio_device_wave_win.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698