blob: a51f1b82bc797e3e88821fe4b280a726f1ba7033 [file] [log] [blame]
// Copyright 2018 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.
#include <string>
#include "base/optional.h"
#include "base/unguessable_token.h"
#include "media/base/media_export.h"
namespace media {
// The set of parameters used to create an AudioOutputDevice.
// |session_id| and |device_id| are used to select which device to
// use. |device_id| is preferred over |session_id| if both are set
// (i.e. session_id is nonzero). If neither is set, the default output device
// will be selected. This is the state when default constructed.
// If the optional |processing_id| is provided, it is used to indicate that this
// stream is to be used as the reference signal during audio processing. An
// audio source must be constructed with the same processing id to complete the
// association.
struct MEDIA_EXPORT AudioSinkParameters final {
AudioSinkParameters(const base::UnguessableToken& session_id,
const std::string& device_id);
AudioSinkParameters(const AudioSinkParameters& params);
base::UnguessableToken session_id;
std::string device_id;
base::Optional<base::UnguessableToken> processing_id;
} // namespace media