| /* | 
 |  *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 
 |  * | 
 |  *  Use of this source code is governed by a BSD-style license | 
 |  *  that can be found in the LICENSE file in the root of the source | 
 |  *  tree. An additional intellectual property rights grant can be found | 
 |  *  in the file PATENTS.  All contributing project authors may | 
 |  *  be found in the AUTHORS file in the root of the source tree. | 
 |  */ | 
 |  | 
 | #include <stdio.h> | 
 | #include "webrtc/modules/audio_device/test/audio_device_test_defines.h" | 
 | #include "webrtc/modules/audio_device/test/func_test_manager.h" | 
 |  | 
 | #ifndef __GNUC__ | 
 | // Disable warning message 4996 ('scanf': This function or variable may be unsafe) | 
 | #pragma warning( disable : 4996 ) | 
 | #endif | 
 |  | 
 | using namespace webrtc; | 
 |  | 
 | int func_test(int); | 
 |  | 
 | // ---------------------------------------------------------------------------- | 
 | //  main() | 
 | // ---------------------------------------------------------------------------- | 
 |  | 
 | #if !defined(WEBRTC_IOS) | 
 | int main(int /*argc*/, char* /*argv*/[]) | 
 | { | 
 |     func_test(0); | 
 | } | 
 | #endif | 
 |  | 
 | // ---------------------------------------------------------------------------- | 
 | //  func_test() | 
 | // ---------------------------------------------------------------------------- | 
 |  | 
 | int func_test(int sel) | 
 | { | 
 |     TEST_LOG("=========================================\n"); | 
 |     TEST_LOG("Func Test of the WebRtcAudioDevice Module\n"); | 
 |     TEST_LOG("=========================================\n\n"); | 
 |  | 
 |     // Initialize the counters here to get rid of "unused variables" warnings. | 
 |     warningCount = 0; | 
 |  | 
 |     FuncTestManager funcMgr; | 
 |  | 
 |     funcMgr.Init(); | 
 |  | 
 |     bool quit(false); | 
 |  | 
 |     while (!quit) | 
 |     { | 
 |         TEST_LOG("---------------------------------------\n"); | 
 |         TEST_LOG("Select type of test\n\n"); | 
 |         TEST_LOG("  (0) Quit\n"); | 
 |         TEST_LOG("  (1) All\n"); | 
 |         TEST_LOG("- - - - - - - - - - - - - - - - - - - -\n"); | 
 |         TEST_LOG("  (2) Audio-layer selection\n"); | 
 |         TEST_LOG("  (3) Device enumeration\n"); | 
 |         TEST_LOG("  (4) Device selection\n"); | 
 |         TEST_LOG("  (5) Audio transport\n"); | 
 |         TEST_LOG("  (6) Speaker volume\n"); | 
 |         TEST_LOG("  (7) Microphone volume\n"); | 
 |         TEST_LOG("  (8) Speaker mute\n"); | 
 |         TEST_LOG("  (9) Microphone mute\n"); | 
 |         TEST_LOG(" (10) Microphone boost\n"); | 
 |         TEST_LOG(" (11) Microphone AGC\n"); | 
 |         TEST_LOG(" (12) Loopback measurements\n"); | 
 |         TEST_LOG(" (13) Device removal\n"); | 
 |         TEST_LOG(" (14) Advanced mobile device API\n"); | 
 |         TEST_LOG(" (66) XTEST\n"); | 
 |         TEST_LOG("- - - - - - - - - - - - - - - - - - - -\n"); | 
 |         TEST_LOG("\n: "); | 
 |  | 
 |         int selection(0); | 
 |         enum TestType testType(TTInvalid); | 
 |  | 
 | SHOW_MENU: | 
 |  | 
 |         if (sel > 0) | 
 |         { | 
 |             selection = sel; | 
 |         } | 
 |         else | 
 |         { | 
 |             if (scanf("%d", &selection) < 0) { | 
 |               perror("Failed to get selection."); | 
 |             } | 
 |         } | 
 |  | 
 |         switch (selection) | 
 |         { | 
 |             case 0: | 
 |                 quit = true; | 
 |                 break; | 
 |             case 1: | 
 |                 testType = TTAll; | 
 |                 break; | 
 |             case 2: | 
 |                 testType = TTAudioLayerSelection; | 
 |                 break; | 
 |             case 3: | 
 |                 testType = TTDeviceEnumeration; | 
 |                 break; | 
 |             case 4: | 
 |                 testType = TTDeviceSelection; | 
 |                 break; | 
 |             case 5: | 
 |                 testType = TTAudioTransport; | 
 |                 break; | 
 |             case 6: | 
 |                 testType = TTSpeakerVolume; | 
 |                 break; | 
 |             case 7: | 
 |                 testType = TTMicrophoneVolume; | 
 |                 break; | 
 |             case 8: | 
 |                 testType = TTSpeakerMute; | 
 |                 break; | 
 |             case 9: | 
 |                 testType = TTMicrophoneMute; | 
 |                 break; | 
 |             case 10: | 
 |                 testType = TTMicrophoneBoost; | 
 |                 break; | 
 |             case 11: | 
 |                 testType = TTMicrophoneAGC; | 
 |                 break; | 
 |             case 12: | 
 |                 testType = TTLoopback; | 
 |                 break; | 
 |             case 13: | 
 |                 testType = TTDeviceRemoval; | 
 |                 break; | 
 |             case 14: | 
 |                 testType = TTMobileAPI; | 
 |                 break; | 
 |             case 66: | 
 |                 testType = TTTest; | 
 |                 break; | 
 |             default: | 
 |                 testType = TTInvalid; | 
 |                 TEST_LOG(": "); | 
 |                 goto SHOW_MENU; | 
 |                 break; | 
 |            } | 
 |  | 
 |         funcMgr.DoTest(testType); | 
 |  | 
 |         if (sel > 0) | 
 |         { | 
 |             quit = true; | 
 |         } | 
 |     } | 
 |  | 
 |     funcMgr.Close(); | 
 |  | 
 |     return 0; | 
 | } |