#if defined(__clang__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-private-field"
#endif
#include "media/mojo/mojom/audio_stream_factory.mojom.h"
#include <math.h>
#include <stdint.h>
#include <utility>
#include "base/debug/alias.h"
#include "base/hash/md5_constexpr.h"
#include "base/run_loop.h"
#include "base/strings/string_number_conversions.h"
#include "base/task/thread_pool/thread_pool_instance.h"
#include "base/trace_event/trace_event.h"
#include "base/trace_event/typed_macros.h"
#include "mojo/public/cpp/bindings/features.h"
#include "mojo/public/cpp/bindings/lib/default_construct_tag_internal.h"
#include "mojo/public/cpp/bindings/lib/generated_code_util.h"
#include "mojo/public/cpp/bindings/lib/message_internal.h"
#include "mojo/public/cpp/bindings/lib/proxy_to_responder.h"
#include "mojo/public/cpp/bindings/lib/send_message_helper.h"
#include "mojo/public/cpp/bindings/lib/serialization_util.h"
#include "mojo/public/cpp/bindings/lib/unserialized_message_context.h"
#include "mojo/public/cpp/bindings/lib/validate_params.h"
#include "mojo/public/cpp/bindings/lib/validation_errors.h"
#include "mojo/public/cpp/bindings/mojo_buildflags.h"
#include "mojo/public/cpp/bindings/urgent_message_scope.h"
#include "mojo/public/interfaces/bindings/interface_control_messages.mojom.h"
#include "third_party/perfetto/include/perfetto/tracing/traced_value.h"
#include "media/mojo/mojom/audio_stream_factory.mojom-params-data.h"
#include "media/mojo/mojom/audio_stream_factory.mojom-shared-message-ids.h"
#include "media/mojo/mojom/audio_stream_factory.mojom-import-headers.h"
#include "media/mojo/mojom/audio_stream_factory.mojom-test-utils.h"
namespace media::mojom {
const char LocalMuter::Name_[] = …;
LocalMuter::IPCStableHashFunction LocalMuter::MessageToMethodInfo_(mojo::Message& message) { … }
const char* LocalMuter::MessageToMethodName_(mojo::Message& message) { … }
#if !BUILDFLAG(IS_FUCHSIA)
# endif
LocalMuterProxy::LocalMuterProxy(mojo::MessageReceiverWithResponder* receiver)
: … { … }
bool LocalMuterStubDispatch::Accept(
LocalMuter* impl,
mojo::Message* message) { … }
bool LocalMuterStubDispatch::AcceptWithResponder(
LocalMuter* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) { … }
namespace {
}
bool LocalMuterRequestValidator::Accept(mojo::Message* message) { … }
const char AudioStreamFactory::Name_[] = …;
AudioStreamFactory::IPCStableHashFunction AudioStreamFactory::MessageToMethodInfo_(mojo::Message& message) { … }
const char* AudioStreamFactory::MessageToMethodName_(mojo::Message& message) { … }
#if !BUILDFLAG(IS_FUCHSIA)
uint32_t AudioStreamFactory::CreateInputStream_Sym::IPCStableHash() { … }
uint32_t AudioStreamFactory::AssociateInputAndOutputForAec_Sym::IPCStableHash() { … }
uint32_t AudioStreamFactory::CreateOutputStream_Sym::IPCStableHash() { … }
uint32_t AudioStreamFactory::CreateSwitchableOutputStream_Sym::IPCStableHash() { … }
uint32_t AudioStreamFactory::BindMuter_Sym::IPCStableHash() { … }
uint32_t AudioStreamFactory::CreateLoopbackStream_Sym::IPCStableHash() { … }
# endif
class AudioStreamFactory_CreateInputStream_ForwardToCallback
: public mojo::MessageReceiver { … };
class AudioStreamFactory_CreateOutputStream_ForwardToCallback
: public mojo::MessageReceiver { … };
class AudioStreamFactory_CreateSwitchableOutputStream_ForwardToCallback
: public mojo::MessageReceiver { … };
class AudioStreamFactory_CreateLoopbackStream_ForwardToCallback
: public mojo::MessageReceiver { … };
AudioStreamFactoryProxy::AudioStreamFactoryProxy(mojo::MessageReceiverWithResponder* receiver)
: … { … }
void AudioStreamFactoryProxy::CreateInputStream(
::mojo::PendingReceiver<::media::mojom::AudioInputStream> in_stream, ::mojo::PendingRemote<::media::mojom::AudioInputStreamClient> in_client, ::mojo::PendingRemote<::media::mojom::AudioInputStreamObserver> in_observer, ::mojo::PendingRemote<::media::mojom::AudioLog> in_log, const std::string& in_device_id, const ::media::AudioParameters& in_params, uint32_t in_shared_memory_count, bool in_enable_agc, ::base::ReadOnlySharedMemoryRegion in_key_press_count_buffer, ::media::mojom::AudioProcessingConfigPtr in_processing_config, CreateInputStreamCallback callback) { … }
void AudioStreamFactoryProxy::AssociateInputAndOutputForAec(
const ::base::UnguessableToken& in_input_stream_id, const std::string& in_output_device_id) { … }
void AudioStreamFactoryProxy::CreateOutputStream(
::mojo::PendingReceiver<::media::mojom::AudioOutputStream> in_stream, ::mojo::PendingAssociatedRemote<::media::mojom::AudioOutputStreamObserver> in_observer, ::mojo::PendingRemote<::media::mojom::AudioLog> in_log, const std::string& in_device_id, const ::media::AudioParameters& in_params, const ::base::UnguessableToken& in_group_id, CreateOutputStreamCallback callback) { … }
void AudioStreamFactoryProxy::CreateSwitchableOutputStream(
::mojo::PendingReceiver<::media::mojom::AudioOutputStream> in_stream, ::mojo::PendingReceiver<::media::mojom::DeviceSwitchInterface> in_device_switch_receiver, ::mojo::PendingAssociatedRemote<::media::mojom::AudioOutputStreamObserver> in_observer, ::mojo::PendingRemote<::media::mojom::AudioLog> in_log, const std::string& in_device_id, const ::media::AudioParameters& in_params, const ::base::UnguessableToken& in_group_id, CreateSwitchableOutputStreamCallback callback) { … }
void AudioStreamFactoryProxy::BindMuter(
::mojo::PendingAssociatedReceiver<LocalMuter> in_receiver, const ::base::UnguessableToken& in_group_id) { … }
void AudioStreamFactoryProxy::CreateLoopbackStream(
::mojo::PendingReceiver<::media::mojom::AudioInputStream> in_receiver, ::mojo::PendingRemote<::media::mojom::AudioInputStreamClient> in_client, ::mojo::PendingRemote<::media::mojom::AudioInputStreamObserver> in_observer, const ::media::AudioParameters& in_params, uint32_t in_shared_memory_count, const ::base::UnguessableToken& in_group_id, CreateLoopbackStreamCallback callback) { … }
class AudioStreamFactory_CreateInputStream_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool AudioStreamFactory_CreateInputStream_ForwardToCallback::Accept(
mojo::Message* message) { … }
void AudioStreamFactory_CreateInputStream_ProxyToResponder::Run(
::media::mojom::ReadOnlyAudioDataPipePtr in_data_pipe, bool in_initially_muted, const std::optional<::base::UnguessableToken>& in_stream_id) { … }
class AudioStreamFactory_CreateOutputStream_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool AudioStreamFactory_CreateOutputStream_ForwardToCallback::Accept(
mojo::Message* message) { … }
void AudioStreamFactory_CreateOutputStream_ProxyToResponder::Run(
::media::mojom::ReadWriteAudioDataPipePtr in_data_pipe) { … }
class AudioStreamFactory_CreateSwitchableOutputStream_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool AudioStreamFactory_CreateSwitchableOutputStream_ForwardToCallback::Accept(
mojo::Message* message) { … }
void AudioStreamFactory_CreateSwitchableOutputStream_ProxyToResponder::Run(
::media::mojom::ReadWriteAudioDataPipePtr in_data_pipe) { … }
class AudioStreamFactory_CreateLoopbackStream_ProxyToResponder : public ::mojo::internal::ProxyToResponder { … };
bool AudioStreamFactory_CreateLoopbackStream_ForwardToCallback::Accept(
mojo::Message* message) { … }
void AudioStreamFactory_CreateLoopbackStream_ProxyToResponder::Run(
::media::mojom::ReadOnlyAudioDataPipePtr in_data_pipe) { … }
bool AudioStreamFactoryStubDispatch::Accept(
AudioStreamFactory* impl,
mojo::Message* message) { … }
bool AudioStreamFactoryStubDispatch::AcceptWithResponder(
AudioStreamFactory* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) { … }
namespace {
}
static const mojo::internal::GenericValidationInfo kAudioStreamFactoryValidationInfo[] = …;
bool AudioStreamFactoryRequestValidator::Accept(mojo::Message* message) { … }
bool AudioStreamFactoryResponseValidator::Accept(mojo::Message* message) { … }
}
namespace mojo {
}
namespace media::mojom {
LocalMuterAsyncWaiter::LocalMuterAsyncWaiter(
LocalMuter* proxy) : … { … }
LocalMuterAsyncWaiter::~LocalMuterAsyncWaiter() = default;
void AudioStreamFactoryInterceptorForTesting::CreateInputStream(::mojo::PendingReceiver<::media::mojom::AudioInputStream> stream, ::mojo::PendingRemote<::media::mojom::AudioInputStreamClient> client, ::mojo::PendingRemote<::media::mojom::AudioInputStreamObserver> observer, ::mojo::PendingRemote<::media::mojom::AudioLog> log, const std::string& device_id, const ::media::AudioParameters& params, uint32_t shared_memory_count, bool enable_agc, ::base::ReadOnlySharedMemoryRegion key_press_count_buffer, ::media::mojom::AudioProcessingConfigPtr processing_config, CreateInputStreamCallback callback) { … }
void AudioStreamFactoryInterceptorForTesting::AssociateInputAndOutputForAec(const ::base::UnguessableToken& input_stream_id, const std::string& output_device_id) { … }
void AudioStreamFactoryInterceptorForTesting::CreateOutputStream(::mojo::PendingReceiver<::media::mojom::AudioOutputStream> stream, ::mojo::PendingAssociatedRemote<::media::mojom::AudioOutputStreamObserver> observer, ::mojo::PendingRemote<::media::mojom::AudioLog> log, const std::string& device_id, const ::media::AudioParameters& params, const ::base::UnguessableToken& group_id, CreateOutputStreamCallback callback) { … }
void AudioStreamFactoryInterceptorForTesting::CreateSwitchableOutputStream(::mojo::PendingReceiver<::media::mojom::AudioOutputStream> stream, ::mojo::PendingReceiver<::media::mojom::DeviceSwitchInterface> device_switch_receiver, ::mojo::PendingAssociatedRemote<::media::mojom::AudioOutputStreamObserver> observer, ::mojo::PendingRemote<::media::mojom::AudioLog> log, const std::string& device_id, const ::media::AudioParameters& params, const ::base::UnguessableToken& group_id, CreateSwitchableOutputStreamCallback callback) { … }
void AudioStreamFactoryInterceptorForTesting::BindMuter(::mojo::PendingAssociatedReceiver<LocalMuter> receiver, const ::base::UnguessableToken& group_id) { … }
void AudioStreamFactoryInterceptorForTesting::CreateLoopbackStream(::mojo::PendingReceiver<::media::mojom::AudioInputStream> receiver, ::mojo::PendingRemote<::media::mojom::AudioInputStreamClient> client, ::mojo::PendingRemote<::media::mojom::AudioInputStreamObserver> observer, const ::media::AudioParameters& params, uint32_t shared_memory_count, const ::base::UnguessableToken& group_id, CreateLoopbackStreamCallback callback) { … }
AudioStreamFactoryAsyncWaiter::AudioStreamFactoryAsyncWaiter(
AudioStreamFactory* proxy) : … { … }
AudioStreamFactoryAsyncWaiter::~AudioStreamFactoryAsyncWaiter() = default;
void AudioStreamFactoryAsyncWaiter::CreateInputStream(
::mojo::PendingReceiver<::media::mojom::AudioInputStream> stream, ::mojo::PendingRemote<::media::mojom::AudioInputStreamClient> client, ::mojo::PendingRemote<::media::mojom::AudioInputStreamObserver> observer, ::mojo::PendingRemote<::media::mojom::AudioLog> log, const std::string& device_id, const ::media::AudioParameters& params, uint32_t shared_memory_count, bool enable_agc, ::base::ReadOnlySharedMemoryRegion key_press_count_buffer, ::media::mojom::AudioProcessingConfigPtr processing_config, ::media::mojom::ReadOnlyAudioDataPipePtr* out_data_pipe, bool* out_initially_muted, std::optional<::base::UnguessableToken>* out_stream_id) { … }
void AudioStreamFactoryAsyncWaiter::CreateOutputStream(
::mojo::PendingReceiver<::media::mojom::AudioOutputStream> stream, ::mojo::PendingAssociatedRemote<::media::mojom::AudioOutputStreamObserver> observer, ::mojo::PendingRemote<::media::mojom::AudioLog> log, const std::string& device_id, const ::media::AudioParameters& params, const ::base::UnguessableToken& group_id, ::media::mojom::ReadWriteAudioDataPipePtr* out_data_pipe) { … }
::media::mojom::ReadWriteAudioDataPipePtr AudioStreamFactoryAsyncWaiter::CreateOutputStream(
::mojo::PendingReceiver<::media::mojom::AudioOutputStream> stream, ::mojo::PendingAssociatedRemote<::media::mojom::AudioOutputStreamObserver> observer, ::mojo::PendingRemote<::media::mojom::AudioLog> log, const std::string& device_id, const ::media::AudioParameters& params, const ::base::UnguessableToken& group_id) { … }
void AudioStreamFactoryAsyncWaiter::CreateSwitchableOutputStream(
::mojo::PendingReceiver<::media::mojom::AudioOutputStream> stream, ::mojo::PendingReceiver<::media::mojom::DeviceSwitchInterface> device_switch_receiver, ::mojo::PendingAssociatedRemote<::media::mojom::AudioOutputStreamObserver> observer, ::mojo::PendingRemote<::media::mojom::AudioLog> log, const std::string& device_id, const ::media::AudioParameters& params, const ::base::UnguessableToken& group_id, ::media::mojom::ReadWriteAudioDataPipePtr* out_data_pipe) { … }
::media::mojom::ReadWriteAudioDataPipePtr AudioStreamFactoryAsyncWaiter::CreateSwitchableOutputStream(
::mojo::PendingReceiver<::media::mojom::AudioOutputStream> stream, ::mojo::PendingReceiver<::media::mojom::DeviceSwitchInterface> device_switch_receiver, ::mojo::PendingAssociatedRemote<::media::mojom::AudioOutputStreamObserver> observer, ::mojo::PendingRemote<::media::mojom::AudioLog> log, const std::string& device_id, const ::media::AudioParameters& params, const ::base::UnguessableToken& group_id) { … }
void AudioStreamFactoryAsyncWaiter::CreateLoopbackStream(
::mojo::PendingReceiver<::media::mojom::AudioInputStream> receiver, ::mojo::PendingRemote<::media::mojom::AudioInputStreamClient> client, ::mojo::PendingRemote<::media::mojom::AudioInputStreamObserver> observer, const ::media::AudioParameters& params, uint32_t shared_memory_count, const ::base::UnguessableToken& group_id, ::media::mojom::ReadOnlyAudioDataPipePtr* out_data_pipe) { … }
::media::mojom::ReadOnlyAudioDataPipePtr AudioStreamFactoryAsyncWaiter::CreateLoopbackStream(
::mojo::PendingReceiver<::media::mojom::AudioInputStream> receiver, ::mojo::PendingRemote<::media::mojom::AudioInputStreamClient> client, ::mojo::PendingRemote<::media::mojom::AudioInputStreamObserver> observer, const ::media::AudioParameters& params, uint32_t shared_memory_count, const ::base::UnguessableToken& group_id) { … }
}
#if defined(__clang__)
#pragma clang diagnostic pop
#endif