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

Unified Diff: media/audio/win/core_audio_util_win_unittest.cc

Issue 23618015: Add GetMatchingOutputDeviceID to CoreAudioUtil. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 7 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: media/audio/win/core_audio_util_win_unittest.cc
diff --git a/media/audio/win/core_audio_util_win_unittest.cc b/media/audio/win/core_audio_util_win_unittest.cc
index f18c6118e17d1d5d87cd21aa93bc4fdf18eb4a08..140e6496a186a00456f8a2715bee0e123484bdf2 100644
--- a/media/audio/win/core_audio_util_win_unittest.cc
+++ b/media/audio/win/core_audio_util_win_unittest.cc
@@ -3,7 +3,9 @@
// found in the LICENSE file.
#include "base/memory/scoped_ptr.h"
+#include "base/strings/utf_string_conversions.h"
#include "base/synchronization/waitable_event.h"
+#include "base/win/scoped_co_mem.h"
#include "base/win/scoped_com_initializer.h"
#include "base/win/scoped_handle.h"
#include "media/audio/win/core_audio_util_win.h"
@@ -475,6 +477,38 @@ TEST_F(CoreAudioUtilWinTest, FillRenderEndpointBufferWithSilence) {
EXPECT_EQ(num_queued_frames, endpoint_buffer_size);
}
-//
+// This test can only succeed on a machine that has audio hardware
+// that has both input and output devices. Currently this is the case
+// with our test bots and the CanRunAudioTest() method should make sure
+// that the test won't run in unsupported environments, but be warned.
+TEST_F(CoreAudioUtilWinTest, GetMatchingOutputDeviceID) {
+ if (!CanRunAudioTest())
+ return;
+
+ bool found_a_pair = false;
+
+ ScopedComPtr<IMMDeviceEnumerator> enumerator(
+ CoreAudioUtil::CreateDeviceEnumerator());
+ ASSERT_TRUE(enumerator);
+
+ // Enumerate all active input and output devices and fetch the ID of
+ // the associated device.
+ ScopedComPtr<IMMDeviceCollection> collection;
+ ASSERT_TRUE(SUCCEEDED(enumerator->EnumAudioEndpoints(eCapture,
+ DEVICE_STATE_ACTIVE, collection.Receive())));
+ UINT count = 0;
+ collection->GetCount(&count);
+ for (UINT i = 0; i < count && !found_a_pair; ++i) {
+ ScopedComPtr<IMMDevice> device;
+ collection->Item(i, device.Receive());
+ base::win::ScopedCoMem<WCHAR> wide_id;
+ device->GetId(&wide_id);
+ std::string id;
+ WideToUTF8(wide_id, wcslen(wide_id), &id);
+ found_a_pair = !CoreAudioUtil::GetMatchingOutputDeviceID(id).empty();
+ }
+
+ EXPECT_TRUE(found_a_pair);
+}
} // namespace media
« media/audio/win/core_audio_util_win.cc ('K') | « media/audio/win/core_audio_util_win.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698