1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef MEDIA_AUDIO_WIN_DEVICE_ENUMERATION_WIN_H_ 6 #define MEDIA_AUDIO_WIN_DEVICE_ENUMERATION_WIN_H_ 7 8 #include <string> 9 10 #include "media/audio/audio_device_name.h" 11 12 namespace media { 13 14 // Returns a list of audio input or output device structures (name and 15 // unique device ID) using the MMDevice API which is supported on 16 // Windows Vista and higher. 17 // Example record in the output list: 18 // - device_name: "Microphone (Realtek High Definition Audio)". 19 // - unique_id: "{0.0.1.00000000}.{8db6020f-18e3-4f25-b6f5-7726c9122574}" 20 // This method must be called from a COM thread using MTA. 21 bool GetInputDeviceNamesWin(media::AudioDeviceNames* device_names); 22 bool GetOutputDeviceNamesWin(media::AudioDeviceNames* device_names); 23 24 // Returns a list of audio input or output device structures (name and 25 // unique device ID) using the WaveIn API which is supported on 26 // Windows XP and higher. 27 // Example record in the output list: 28 // - device_name: "Microphone (Realtek High Defini". 29 // - unique_id: "Microphone (Realtek High Defini" (same as friendly name). 30 bool GetInputDeviceNamesWinXP(media::AudioDeviceNames* device_names); 31 bool GetOutputDeviceNamesWinXP(media::AudioDeviceNames* device_names); 32 33 // Converts an input device ID generated by |GetInputDeviceNamesWin()| to the 34 // corresponding ID by |GetInputDeviceNamesWinXP()|. Returns an empty string on 35 // failure. 36 // Example input and output: 37 // - input ID: "{0.0.1.00000000}.{8db6020f-18e3-4f25-b6f5-7726c9122574}" 38 // - output ID: "Microphone (Realtek High Defini" 39 std::string ConvertToWinXPInputDeviceId(const std::string& device_id); 40 41 } // namespace media 42 43 #endif // MEDIA_AUDIO_WIN_DEVICE_ENUMERATION_WIN_H_ 44 45