// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef MEDIA_AUDIO_WIN_DEVICE_ENUMERATION_WIN_H_ #define MEDIA_AUDIO_WIN_DEVICE_ENUMERATION_WIN_H_ #include <string> #include "media/audio/audio_device_name.h" namespace media { // Returns a list of audio input or output device structures (name and // unique device ID) using the MMDevice API which is supported on // Windows Vista and higher. // Example record in the output list: // - device_name: "Microphone (Realtek High Definition Audio)". // - unique_id: "{0.0.1.00000000}.{8db6020f-18e3-4f25-b6f5-7726c9122574}" // This method must be called from a COM thread using MTA. bool GetInputDeviceNamesWin(media::AudioDeviceNames* device_names); bool GetOutputDeviceNamesWin(media::AudioDeviceNames* device_names); // Returns a list of audio input or output device structures (name and // unique device ID) using the WaveIn API which is supported on // Windows XP and higher. // Example record in the output list: // - device_name: "Microphone (Realtek High Defini". // - unique_id: "Microphone (Realtek High Defini" (same as friendly name). bool GetInputDeviceNamesWinXP(media::AudioDeviceNames* device_names); bool GetOutputDeviceNamesWinXP(media::AudioDeviceNames* device_names); // Converts an input device ID generated by |GetInputDeviceNamesWin()| to the // corresponding ID by |GetInputDeviceNamesWinXP()|. Returns an empty string on // failure. // Example input and output: // - input ID: "{0.0.1.00000000}.{8db6020f-18e3-4f25-b6f5-7726c9122574}" // - output ID: "Microphone (Realtek High Defini" std::string ConvertToWinXPInputDeviceId(const std::string& device_id); } // namespace media #endif // MEDIA_AUDIO_WIN_DEVICE_ENUMERATION_WIN_H_