// Copyright 2015 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_AUDIO_DEVICE_DESCRIPTION_H_ #define MEDIA_AUDIO_AUDIO_DEVICE_DESCRIPTION_H_ #include #include #include "media/base/media_export.h" namespace media { // Provides common information on audio device names and ids. struct MEDIA_EXPORT AudioDeviceDescription { // Unique Id of the generic "default" device. Associated with the localized // name returned from GetDefaultDeviceName(). static const char kDefaultDeviceId[]; // Unique Id of the generic default communications device. Associated with // the localized name returned from GetCommunicationsDeviceName(). static const char kCommunicationsDeviceId[]; // Input device ID used to capture the default system playback stream. When // this device ID is passed to MakeAudioInputStream() the returned // AudioInputStream will be capturing audio currently being played on the // default playback device. At the moment this feature is supported only on // some platforms. AudioInputStream::Intialize() will return an error on // platforms that don't support it. GetInputStreamParameters() must be used // to get the parameters of the loopback device before creating a loopback // stream, otherwise stream initialization may fail. static const char kLoopbackInputDeviceId[]; // Similar to |kLoopbackInputDeviceId|, with only difference that this ID // will mute system audio during capturing. static const char kLoopbackWithMuteDeviceId[]; // Returns true if |device_id| represents the default device. static bool IsDefaultDevice(const std::string& device_id); // If |device_id| is not empty, |session_id| should be ignored and the output // device should be selected basing on |device_id|. // If |device_id| is empty and |session_id| is nonzero, output device // associated with the opened input device designated by |session_id| should // be used. static bool UseSessionIdToSelectDevice(int session_id, const std::string& device_id); // Returns the localized name of the generic "default" device. static std::string GetDefaultDeviceName(); // Returns the localized name of the generic default communications device. // This device is not supported on all platforms. static std::string GetCommunicationsDeviceName(); AudioDeviceDescription(const AudioDeviceDescription& other) = default; AudioDeviceDescription(const std::string& device_name, const std::string& unique_id, const std::string& group_id); ~AudioDeviceDescription() = default; std::string device_name; // Friendly name of the device. std::string unique_id; // Unique identifier for the device. std::string group_id; // Group identifier. }; typedef std::vector AudioDeviceDescriptions; } // namespace media #endif // MEDIA_AUDIO_AUDIO_DEVICE_DESCRIPTION_H_