Home | History | Annotate | Download | only in standard
      1 /*
      2  *  Copyright (c) 2011 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 "webrtc/modules/audio_device/include/audio_device.h"
     12 #include "webrtc/voice_engine/test/auto_test/fixtures/after_streaming_fixture.h"
     13 
     14 class HardwareTest : public AfterStreamingFixture {
     15 };
     16 
     17 #if !defined(WEBRTC_IOS) && !defined(WEBRTC_ANDROID)
     18 TEST_F(HardwareTest, AbleToQueryForDevices) {
     19   int num_recording_devices = 0;
     20   int num_playout_devices = 0;
     21   EXPECT_EQ(0, voe_hardware_->GetNumOfRecordingDevices(num_recording_devices));
     22   EXPECT_EQ(0, voe_hardware_->GetNumOfPlayoutDevices(num_playout_devices));
     23 
     24   ASSERT_GT(num_recording_devices, 0) <<
     25       "There seem to be no recording devices on your system, "
     26       "and this test really doesn't make sense then.";
     27   ASSERT_GT(num_playout_devices, 0) <<
     28       "There seem to be no playout devices on your system, "
     29       "and this test really doesn't make sense then.";
     30 
     31   // Recording devices are handled a bit differently on Windows - we can
     32   // just tell it to set the 'default' communication device there.
     33 #ifdef _WIN32
     34   // Should also work while already recording.
     35   EXPECT_EQ(0, voe_hardware_->SetRecordingDevice(
     36       webrtc::AudioDeviceModule::kDefaultCommunicationDevice));
     37   // Should also work while already playing.
     38   EXPECT_EQ(0, voe_hardware_->SetPlayoutDevice(
     39       webrtc::AudioDeviceModule::kDefaultCommunicationDevice));
     40 #else
     41   // For other platforms, just use the first device encountered.
     42   EXPECT_EQ(0, voe_hardware_->SetRecordingDevice(0));
     43   EXPECT_EQ(0, voe_hardware_->SetPlayoutDevice(0));
     44 #endif
     45 
     46   // It's hard to know what names this will return (it's system-dependent),
     47   // so just check that it's possible to do it.
     48   char device_name[128] = {0};
     49   char guid_name[128] = {0};
     50   EXPECT_EQ(0, voe_hardware_->GetRecordingDeviceName(
     51       0, device_name, guid_name));
     52   EXPECT_EQ(0, voe_hardware_->GetPlayoutDeviceName(
     53       0, device_name, guid_name));
     54 }
     55 #endif
     56