1 /* 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 3 * 4 * Use of this source code is governed by a BSD-style license 5 * that can be found in the LICENSE file in the root of the source 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 #include <stdio.h> 12 #include "webrtc/modules/audio_device/test/audio_device_test_defines.h" 13 #include "webrtc/modules/audio_device/test/func_test_manager.h" 14 15 #ifndef __GNUC__ 16 // Disable warning message 4996 ('scanf': This function or variable may be unsafe) 17 #pragma warning( disable : 4996 ) 18 #endif 19 20 using namespace webrtc; 21 22 int func_test(int); 23 24 // ---------------------------------------------------------------------------- 25 // main() 26 // ---------------------------------------------------------------------------- 27 28 #if !defined(WEBRTC_IOS) 29 int main(int /*argc*/, char* /*argv*/[]) 30 { 31 func_test(0); 32 } 33 #endif 34 35 // ---------------------------------------------------------------------------- 36 // func_test() 37 // ---------------------------------------------------------------------------- 38 39 int func_test(int sel) 40 { 41 TEST_LOG("=========================================\n"); 42 TEST_LOG("Func Test of the WebRtcAudioDevice Module\n"); 43 TEST_LOG("=========================================\n\n"); 44 45 // Initialize the counters here to get rid of "unused variables" warnings. 46 warningCount = 0; 47 48 FuncTestManager funcMgr; 49 50 funcMgr.Init(); 51 52 bool quit(false); 53 54 while (!quit) 55 { 56 TEST_LOG("---------------------------------------\n"); 57 TEST_LOG("Select type of test\n\n"); 58 TEST_LOG(" (0) Quit\n"); 59 TEST_LOG(" (1) All\n"); 60 TEST_LOG("- - - - - - - - - - - - - - - - - - - -\n"); 61 TEST_LOG(" (2) Audio-layer selection\n"); 62 TEST_LOG(" (3) Device enumeration\n"); 63 TEST_LOG(" (4) Device selection\n"); 64 TEST_LOG(" (5) Audio transport\n"); 65 TEST_LOG(" (6) Speaker volume\n"); 66 TEST_LOG(" (7) Microphone volume\n"); 67 TEST_LOG(" (8) Speaker mute\n"); 68 TEST_LOG(" (9) Microphone mute\n"); 69 TEST_LOG(" (10) Microphone boost\n"); 70 TEST_LOG(" (11) Microphone AGC\n"); 71 TEST_LOG(" (12) Loopback measurements\n"); 72 TEST_LOG(" (13) Device removal\n"); 73 TEST_LOG(" (14) Advanced mobile device API\n"); 74 TEST_LOG(" (66) XTEST\n"); 75 TEST_LOG("- - - - - - - - - - - - - - - - - - - -\n"); 76 TEST_LOG("\n: "); 77 78 int selection(0); 79 enum TestType testType(TTInvalid); 80 81 SHOW_MENU: 82 83 if (sel > 0) 84 { 85 selection = sel; 86 } 87 else 88 { 89 if (scanf("%d", &selection) < 0) { 90 perror("Failed to get selection."); 91 } 92 } 93 94 switch (selection) 95 { 96 case 0: 97 quit = true; 98 break; 99 case 1: 100 testType = TTAll; 101 break; 102 case 2: 103 testType = TTAudioLayerSelection; 104 break; 105 case 3: 106 testType = TTDeviceEnumeration; 107 break; 108 case 4: 109 testType = TTDeviceSelection; 110 break; 111 case 5: 112 testType = TTAudioTransport; 113 break; 114 case 6: 115 testType = TTSpeakerVolume; 116 break; 117 case 7: 118 testType = TTMicrophoneVolume; 119 break; 120 case 8: 121 testType = TTSpeakerMute; 122 break; 123 case 9: 124 testType = TTMicrophoneMute; 125 break; 126 case 10: 127 testType = TTMicrophoneBoost; 128 break; 129 case 11: 130 testType = TTMicrophoneAGC; 131 break; 132 case 12: 133 testType = TTLoopback; 134 break; 135 case 13: 136 testType = TTDeviceRemoval; 137 break; 138 case 14: 139 testType = TTMobileAPI; 140 break; 141 case 66: 142 testType = TTTest; 143 break; 144 default: 145 testType = TTInvalid; 146 TEST_LOG(": "); 147 goto SHOW_MENU; 148 break; 149 } 150 151 funcMgr.DoTest(testType); 152 153 if (sel > 0) 154 { 155 quit = true; 156 } 157 } 158 159 funcMgr.Close(); 160 161 return 0; 162 } 163