blob: c29e7d9257059d634eb9e850c8719a0ea62e45a6 [file] [log] [blame]
// media/mojo/mojom/audio_output_stream.mojom.cc is auto generated by mojom_bindings_generator.py, do not edit
// Copyright 2013 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.
#if defined(__clang__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-private-field"
#endif
#include "media/mojo/mojom/audio_output_stream.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/trace_event/trace_event.h"
#include "base/trace_event/typed_macros.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/send_message_helper.h"
#include "mojo/public/cpp/bindings/lib/proxy_to_responder.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/interfaces/bindings/interface_control_messages.mojom.h"
#include "third_party/perfetto/include/perfetto/tracing/traced_value.h"
#include "media/mojo/mojom/audio_output_stream.mojom-params-data.h"
#include "media/mojo/mojom/audio_output_stream.mojom-shared-message-ids.h"
#include "media/mojo/mojom/audio_output_stream.mojom-import-headers.h"
#include "media/mojo/mojom/audio_output_stream.mojom-test-utils.h"
#ifndef MEDIA_MOJO_MOJOM_AUDIO_OUTPUT_STREAM_MOJOM_JUMBO_H_
#define MEDIA_MOJO_MOJOM_AUDIO_OUTPUT_STREAM_MOJOM_JUMBO_H_
#endif
namespace media {
namespace mojom {
const char AudioOutputStream::Name_[] = "media.mojom.AudioOutputStream";
std::pair<uint32_t, const void*> AudioOutputStream::MessageToMethodInfo_(mojo::Message& message) {
switch (message.name()) {
case internal::kAudioOutputStream_Play_Name: {
constexpr uint32_t value = base::MD5Hash32Constexpr(
"(Impl)media::mojom::AudioOutputStream::Play");
#if BUILDFLAG(IS_FUCHSIA)
return std::make_pair(value, nullptr);
#else
return std::make_pair(value, reinterpret_cast<const void*>(&AudioOutputStream::Play_Sym::IPCSymbol));
#endif // BUILDFLAG(IS_FUCHSIA)
}
case internal::kAudioOutputStream_Pause_Name: {
constexpr uint32_t value = base::MD5Hash32Constexpr(
"(Impl)media::mojom::AudioOutputStream::Pause");
#if BUILDFLAG(IS_FUCHSIA)
return std::make_pair(value, nullptr);
#else
return std::make_pair(value, reinterpret_cast<const void*>(&AudioOutputStream::Pause_Sym::IPCSymbol));
#endif // BUILDFLAG(IS_FUCHSIA)
}
case internal::kAudioOutputStream_Flush_Name: {
constexpr uint32_t value = base::MD5Hash32Constexpr(
"(Impl)media::mojom::AudioOutputStream::Flush");
#if BUILDFLAG(IS_FUCHSIA)
return std::make_pair(value, nullptr);
#else
return std::make_pair(value, reinterpret_cast<const void*>(&AudioOutputStream::Flush_Sym::IPCSymbol));
#endif // BUILDFLAG(IS_FUCHSIA)
}
case internal::kAudioOutputStream_SetVolume_Name: {
constexpr uint32_t value = base::MD5Hash32Constexpr(
"(Impl)media::mojom::AudioOutputStream::SetVolume");
#if BUILDFLAG(IS_FUCHSIA)
return std::make_pair(value, nullptr);
#else
return std::make_pair(value, reinterpret_cast<const void*>(&AudioOutputStream::SetVolume_Sym::IPCSymbol));
#endif // BUILDFLAG(IS_FUCHSIA)
}
}
return std::make_pair(0, nullptr);
}
const char* AudioOutputStream::MessageToMethodName_(mojo::Message& message) {
#if BUILDFLAG(MOJO_TRACE_ENABLED)
bool is_response = message.has_flag(mojo::Message::kFlagIsResponse);
if (!is_response) {
switch (message.name()) {
case internal::kAudioOutputStream_Play_Name:
return "Receive media::mojom::AudioOutputStream::Play";
case internal::kAudioOutputStream_Pause_Name:
return "Receive media::mojom::AudioOutputStream::Pause";
case internal::kAudioOutputStream_Flush_Name:
return "Receive media::mojom::AudioOutputStream::Flush";
case internal::kAudioOutputStream_SetVolume_Name:
return "Receive media::mojom::AudioOutputStream::SetVolume";
}
} else {
switch (message.name()) {
case internal::kAudioOutputStream_Play_Name:
return "Receive reply media::mojom::AudioOutputStream::Play";
case internal::kAudioOutputStream_Pause_Name:
return "Receive reply media::mojom::AudioOutputStream::Pause";
case internal::kAudioOutputStream_Flush_Name:
return "Receive reply media::mojom::AudioOutputStream::Flush";
case internal::kAudioOutputStream_SetVolume_Name:
return "Receive reply media::mojom::AudioOutputStream::SetVolume";
}
}
return "Receive unknown mojo message";
#else
bool is_response = message.has_flag(mojo::Message::kFlagIsResponse);
if (is_response) {
return "Receive mojo reply";
} else {
return "Receive mojo message";
}
#endif // BUILDFLAG(MOJO_TRACE_ENABLED)
}
#if !BUILDFLAG(IS_FUCHSIA)
void AudioOutputStream::Play_Sym::IPCSymbol() {
// This method's address is used for indetifiying the mojo method name after
// symblozation. So each IPCSymbol should have a unique address.
NO_CODE_FOLDING();
}
void AudioOutputStream::Pause_Sym::IPCSymbol() {
// This method's address is used for indetifiying the mojo method name after
// symblozation. So each IPCSymbol should have a unique address.
NO_CODE_FOLDING();
}
void AudioOutputStream::Flush_Sym::IPCSymbol() {
// This method's address is used for indetifiying the mojo method name after
// symblozation. So each IPCSymbol should have a unique address.
NO_CODE_FOLDING();
}
void AudioOutputStream::SetVolume_Sym::IPCSymbol() {
// This method's address is used for indetifiying the mojo method name after
// symblozation. So each IPCSymbol should have a unique address.
NO_CODE_FOLDING();
}
# endif // !BUILDFLAG(IS_FUCHSIA)
AudioOutputStreamProxy::AudioOutputStreamProxy(mojo::MessageReceiverWithResponder* receiver)
: receiver_(receiver) {
}
void AudioOutputStreamProxy::Play(
) {
#if BUILDFLAG(MOJO_TRACE_ENABLED)
TRACE_EVENT0("mojom", "Send media::mojom::AudioOutputStream::Play");
#endif
const bool kExpectsResponse = false;
const bool kIsSync = false;
const bool kAllowInterrupt = true;
const uint32_t kFlags =
((kExpectsResponse) ? mojo::Message::kFlagExpectsResponse : 0) |
((kIsSync) ? mojo::Message::kFlagIsSync : 0) |
((kAllowInterrupt) ? 0 : mojo::Message::kFlagNoInterrupt);
mojo::Message message(
internal::kAudioOutputStream_Play_Name, kFlags, 0, 0, nullptr);
mojo::internal::MessageFragment<
::media::mojom::internal::AudioOutputStream_Play_Params_Data> params(
message);
params.Allocate();
#if defined(ENABLE_IPC_FUZZER)
message.set_interface_name(AudioOutputStream::Name_);
message.set_method_name("Play");
#endif
// This return value may be ignored as false implies the Connector has
// encountered an error, which will be visible through other means.
::mojo::internal::SendMessage(*receiver_, message);
}
void AudioOutputStreamProxy::Pause(
) {
#if BUILDFLAG(MOJO_TRACE_ENABLED)
TRACE_EVENT0("mojom", "Send media::mojom::AudioOutputStream::Pause");
#endif
const bool kExpectsResponse = false;
const bool kIsSync = false;
const bool kAllowInterrupt = true;
const uint32_t kFlags =
((kExpectsResponse) ? mojo::Message::kFlagExpectsResponse : 0) |
((kIsSync) ? mojo::Message::kFlagIsSync : 0) |
((kAllowInterrupt) ? 0 : mojo::Message::kFlagNoInterrupt);
mojo::Message message(
internal::kAudioOutputStream_Pause_Name, kFlags, 0, 0, nullptr);
mojo::internal::MessageFragment<
::media::mojom::internal::AudioOutputStream_Pause_Params_Data> params(
message);
params.Allocate();
#if defined(ENABLE_IPC_FUZZER)
message.set_interface_name(AudioOutputStream::Name_);
message.set_method_name("Pause");
#endif
// This return value may be ignored as false implies the Connector has
// encountered an error, which will be visible through other means.
::mojo::internal::SendMessage(*receiver_, message);
}
void AudioOutputStreamProxy::Flush(
) {
#if BUILDFLAG(MOJO_TRACE_ENABLED)
TRACE_EVENT0("mojom", "Send media::mojom::AudioOutputStream::Flush");
#endif
const bool kExpectsResponse = false;
const bool kIsSync = false;
const bool kAllowInterrupt = true;
const uint32_t kFlags =
((kExpectsResponse) ? mojo::Message::kFlagExpectsResponse : 0) |
((kIsSync) ? mojo::Message::kFlagIsSync : 0) |
((kAllowInterrupt) ? 0 : mojo::Message::kFlagNoInterrupt);
mojo::Message message(
internal::kAudioOutputStream_Flush_Name, kFlags, 0, 0, nullptr);
mojo::internal::MessageFragment<
::media::mojom::internal::AudioOutputStream_Flush_Params_Data> params(
message);
params.Allocate();
#if defined(ENABLE_IPC_FUZZER)
message.set_interface_name(AudioOutputStream::Name_);
message.set_method_name("Flush");
#endif
// This return value may be ignored as false implies the Connector has
// encountered an error, which will be visible through other means.
::mojo::internal::SendMessage(*receiver_, message);
}
void AudioOutputStreamProxy::SetVolume(
double in_volume) {
#if BUILDFLAG(MOJO_TRACE_ENABLED)
TRACE_EVENT1(
"mojom", "Send media::mojom::AudioOutputStream::SetVolume", "input_parameters",
[&](perfetto::TracedValue context){
auto dict = std::move(context).WriteDictionary();
perfetto::WriteIntoTracedValueWithFallback(
dict.AddItem("volume"), in_volume,
"<value of type double>");
});
#endif
const bool kExpectsResponse = false;
const bool kIsSync = false;
const bool kAllowInterrupt = true;
const uint32_t kFlags =
((kExpectsResponse) ? mojo::Message::kFlagExpectsResponse : 0) |
((kIsSync) ? mojo::Message::kFlagIsSync : 0) |
((kAllowInterrupt) ? 0 : mojo::Message::kFlagNoInterrupt);
mojo::Message message(
internal::kAudioOutputStream_SetVolume_Name, kFlags, 0, 0, nullptr);
mojo::internal::MessageFragment<
::media::mojom::internal::AudioOutputStream_SetVolume_Params_Data> params(
message);
params.Allocate();
params->volume = in_volume;
#if defined(ENABLE_IPC_FUZZER)
message.set_interface_name(AudioOutputStream::Name_);
message.set_method_name("SetVolume");
#endif
// This return value may be ignored as false implies the Connector has
// encountered an error, which will be visible through other means.
::mojo::internal::SendMessage(*receiver_, message);
}
// static
bool AudioOutputStreamStubDispatch::Accept(
AudioOutputStream* impl,
mojo::Message* message) {
switch (message->header()->name) {
case internal::kAudioOutputStream_Play_Name: {
DCHECK(message->is_serialized());
internal::AudioOutputStream_Play_Params_Data* params =
reinterpret_cast<internal::AudioOutputStream_Play_Params_Data*>(
message->mutable_payload());
bool success = true;
AudioOutputStream_Play_ParamsDataView input_data_view(params, message);
if (!success) {
ReportValidationErrorForMessage(
message,
mojo::internal::VALIDATION_ERROR_DESERIALIZATION_FAILED,
AudioOutputStream::Name_, 0, false);
return false;
}
// A null |impl| means no implementation was bound.
DCHECK(impl);
impl->Play();
return true;
}
case internal::kAudioOutputStream_Pause_Name: {
DCHECK(message->is_serialized());
internal::AudioOutputStream_Pause_Params_Data* params =
reinterpret_cast<internal::AudioOutputStream_Pause_Params_Data*>(
message->mutable_payload());
bool success = true;
AudioOutputStream_Pause_ParamsDataView input_data_view(params, message);
if (!success) {
ReportValidationErrorForMessage(
message,
mojo::internal::VALIDATION_ERROR_DESERIALIZATION_FAILED,
AudioOutputStream::Name_, 1, false);
return false;
}
// A null |impl| means no implementation was bound.
DCHECK(impl);
impl->Pause();
return true;
}
case internal::kAudioOutputStream_Flush_Name: {
DCHECK(message->is_serialized());
internal::AudioOutputStream_Flush_Params_Data* params =
reinterpret_cast<internal::AudioOutputStream_Flush_Params_Data*>(
message->mutable_payload());
bool success = true;
AudioOutputStream_Flush_ParamsDataView input_data_view(params, message);
if (!success) {
ReportValidationErrorForMessage(
message,
mojo::internal::VALIDATION_ERROR_DESERIALIZATION_FAILED,
AudioOutputStream::Name_, 2, false);
return false;
}
// A null |impl| means no implementation was bound.
DCHECK(impl);
impl->Flush();
return true;
}
case internal::kAudioOutputStream_SetVolume_Name: {
DCHECK(message->is_serialized());
internal::AudioOutputStream_SetVolume_Params_Data* params =
reinterpret_cast<internal::AudioOutputStream_SetVolume_Params_Data*>(
message->mutable_payload());
bool success = true;
double p_volume{};
AudioOutputStream_SetVolume_ParamsDataView input_data_view(params, message);
if (success)
p_volume = input_data_view.volume();
if (!success) {
ReportValidationErrorForMessage(
message,
mojo::internal::VALIDATION_ERROR_DESERIALIZATION_FAILED,
AudioOutputStream::Name_, 3, false);
return false;
}
// A null |impl| means no implementation was bound.
DCHECK(impl);
impl->SetVolume(
std::move(p_volume));
return true;
}
}
return false;
}
// static
bool AudioOutputStreamStubDispatch::AcceptWithResponder(
AudioOutputStream* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) {
[[maybe_unused]] const bool message_is_sync =
message->has_flag(mojo::Message::kFlagIsSync);
[[maybe_unused]] const uint64_t request_id = message->request_id();
switch (message->header()->name) {
case internal::kAudioOutputStream_Play_Name: {
break;
}
case internal::kAudioOutputStream_Pause_Name: {
break;
}
case internal::kAudioOutputStream_Flush_Name: {
break;
}
case internal::kAudioOutputStream_SetVolume_Name: {
break;
}
}
return false;
}
static const mojo::internal::GenericValidationInfo kAudioOutputStreamValidationInfo[] = {
{&internal::AudioOutputStream_Play_Params_Data::Validate,
nullptr /* no response */},
{&internal::AudioOutputStream_Pause_Params_Data::Validate,
nullptr /* no response */},
{&internal::AudioOutputStream_Flush_Params_Data::Validate,
nullptr /* no response */},
{&internal::AudioOutputStream_SetVolume_Params_Data::Validate,
nullptr /* no response */},
};
bool AudioOutputStreamRequestValidator::Accept(mojo::Message* message) {
const char* name = ::media::mojom::AudioOutputStream::Name_;
return mojo::internal::ValidateRequestGenericPacked(message, name, kAudioOutputStreamValidationInfo);
}
const char AudioOutputStreamObserver::Name_[] = "media.mojom.AudioOutputStreamObserver";
std::pair<uint32_t, const void*> AudioOutputStreamObserver::MessageToMethodInfo_(mojo::Message& message) {
switch (message.name()) {
case internal::kAudioOutputStreamObserver_DidStartPlaying_Name: {
constexpr uint32_t value = base::MD5Hash32Constexpr(
"(Impl)media::mojom::AudioOutputStreamObserver::DidStartPlaying");
#if BUILDFLAG(IS_FUCHSIA)
return std::make_pair(value, nullptr);
#else
return std::make_pair(value, reinterpret_cast<const void*>(&AudioOutputStreamObserver::DidStartPlaying_Sym::IPCSymbol));
#endif // BUILDFLAG(IS_FUCHSIA)
}
case internal::kAudioOutputStreamObserver_DidStopPlaying_Name: {
constexpr uint32_t value = base::MD5Hash32Constexpr(
"(Impl)media::mojom::AudioOutputStreamObserver::DidStopPlaying");
#if BUILDFLAG(IS_FUCHSIA)
return std::make_pair(value, nullptr);
#else
return std::make_pair(value, reinterpret_cast<const void*>(&AudioOutputStreamObserver::DidStopPlaying_Sym::IPCSymbol));
#endif // BUILDFLAG(IS_FUCHSIA)
}
case internal::kAudioOutputStreamObserver_DidChangeAudibleState_Name: {
constexpr uint32_t value = base::MD5Hash32Constexpr(
"(Impl)media::mojom::AudioOutputStreamObserver::DidChangeAudibleState");
#if BUILDFLAG(IS_FUCHSIA)
return std::make_pair(value, nullptr);
#else
return std::make_pair(value, reinterpret_cast<const void*>(&AudioOutputStreamObserver::DidChangeAudibleState_Sym::IPCSymbol));
#endif // BUILDFLAG(IS_FUCHSIA)
}
}
return std::make_pair(0, nullptr);
}
const char* AudioOutputStreamObserver::MessageToMethodName_(mojo::Message& message) {
#if BUILDFLAG(MOJO_TRACE_ENABLED)
bool is_response = message.has_flag(mojo::Message::kFlagIsResponse);
if (!is_response) {
switch (message.name()) {
case internal::kAudioOutputStreamObserver_DidStartPlaying_Name:
return "Receive media::mojom::AudioOutputStreamObserver::DidStartPlaying";
case internal::kAudioOutputStreamObserver_DidStopPlaying_Name:
return "Receive media::mojom::AudioOutputStreamObserver::DidStopPlaying";
case internal::kAudioOutputStreamObserver_DidChangeAudibleState_Name:
return "Receive media::mojom::AudioOutputStreamObserver::DidChangeAudibleState";
}
} else {
switch (message.name()) {
case internal::kAudioOutputStreamObserver_DidStartPlaying_Name:
return "Receive reply media::mojom::AudioOutputStreamObserver::DidStartPlaying";
case internal::kAudioOutputStreamObserver_DidStopPlaying_Name:
return "Receive reply media::mojom::AudioOutputStreamObserver::DidStopPlaying";
case internal::kAudioOutputStreamObserver_DidChangeAudibleState_Name:
return "Receive reply media::mojom::AudioOutputStreamObserver::DidChangeAudibleState";
}
}
return "Receive unknown mojo message";
#else
bool is_response = message.has_flag(mojo::Message::kFlagIsResponse);
if (is_response) {
return "Receive mojo reply";
} else {
return "Receive mojo message";
}
#endif // BUILDFLAG(MOJO_TRACE_ENABLED)
}
#if !BUILDFLAG(IS_FUCHSIA)
void AudioOutputStreamObserver::DidStartPlaying_Sym::IPCSymbol() {
// This method's address is used for indetifiying the mojo method name after
// symblozation. So each IPCSymbol should have a unique address.
NO_CODE_FOLDING();
}
void AudioOutputStreamObserver::DidStopPlaying_Sym::IPCSymbol() {
// This method's address is used for indetifiying the mojo method name after
// symblozation. So each IPCSymbol should have a unique address.
NO_CODE_FOLDING();
}
void AudioOutputStreamObserver::DidChangeAudibleState_Sym::IPCSymbol() {
// This method's address is used for indetifiying the mojo method name after
// symblozation. So each IPCSymbol should have a unique address.
NO_CODE_FOLDING();
}
# endif // !BUILDFLAG(IS_FUCHSIA)
AudioOutputStreamObserverProxy::AudioOutputStreamObserverProxy(mojo::MessageReceiverWithResponder* receiver)
: receiver_(receiver) {
}
void AudioOutputStreamObserverProxy::DidStartPlaying(
) {
#if BUILDFLAG(MOJO_TRACE_ENABLED)
TRACE_EVENT0("mojom", "Send media::mojom::AudioOutputStreamObserver::DidStartPlaying");
#endif
const bool kExpectsResponse = false;
const bool kIsSync = false;
const bool kAllowInterrupt = true;
const uint32_t kFlags =
((kExpectsResponse) ? mojo::Message::kFlagExpectsResponse : 0) |
((kIsSync) ? mojo::Message::kFlagIsSync : 0) |
((kAllowInterrupt) ? 0 : mojo::Message::kFlagNoInterrupt);
mojo::Message message(
internal::kAudioOutputStreamObserver_DidStartPlaying_Name, kFlags, 0, 0, nullptr);
mojo::internal::MessageFragment<
::media::mojom::internal::AudioOutputStreamObserver_DidStartPlaying_Params_Data> params(
message);
params.Allocate();
#if defined(ENABLE_IPC_FUZZER)
message.set_interface_name(AudioOutputStreamObserver::Name_);
message.set_method_name("DidStartPlaying");
#endif
// This return value may be ignored as false implies the Connector has
// encountered an error, which will be visible through other means.
::mojo::internal::SendMessage(*receiver_, message);
}
void AudioOutputStreamObserverProxy::DidStopPlaying(
) {
#if BUILDFLAG(MOJO_TRACE_ENABLED)
TRACE_EVENT0("mojom", "Send media::mojom::AudioOutputStreamObserver::DidStopPlaying");
#endif
const bool kExpectsResponse = false;
const bool kIsSync = false;
const bool kAllowInterrupt = true;
const uint32_t kFlags =
((kExpectsResponse) ? mojo::Message::kFlagExpectsResponse : 0) |
((kIsSync) ? mojo::Message::kFlagIsSync : 0) |
((kAllowInterrupt) ? 0 : mojo::Message::kFlagNoInterrupt);
mojo::Message message(
internal::kAudioOutputStreamObserver_DidStopPlaying_Name, kFlags, 0, 0, nullptr);
mojo::internal::MessageFragment<
::media::mojom::internal::AudioOutputStreamObserver_DidStopPlaying_Params_Data> params(
message);
params.Allocate();
#if defined(ENABLE_IPC_FUZZER)
message.set_interface_name(AudioOutputStreamObserver::Name_);
message.set_method_name("DidStopPlaying");
#endif
// This return value may be ignored as false implies the Connector has
// encountered an error, which will be visible through other means.
::mojo::internal::SendMessage(*receiver_, message);
}
void AudioOutputStreamObserverProxy::DidChangeAudibleState(
bool in_is_audible) {
#if BUILDFLAG(MOJO_TRACE_ENABLED)
TRACE_EVENT1(
"mojom", "Send media::mojom::AudioOutputStreamObserver::DidChangeAudibleState", "input_parameters",
[&](perfetto::TracedValue context){
auto dict = std::move(context).WriteDictionary();
perfetto::WriteIntoTracedValueWithFallback(
dict.AddItem("is_audible"), in_is_audible,
"<value of type bool>");
});
#endif
const bool kExpectsResponse = false;
const bool kIsSync = false;
const bool kAllowInterrupt = true;
const uint32_t kFlags =
((kExpectsResponse) ? mojo::Message::kFlagExpectsResponse : 0) |
((kIsSync) ? mojo::Message::kFlagIsSync : 0) |
((kAllowInterrupt) ? 0 : mojo::Message::kFlagNoInterrupt);
mojo::Message message(
internal::kAudioOutputStreamObserver_DidChangeAudibleState_Name, kFlags, 0, 0, nullptr);
mojo::internal::MessageFragment<
::media::mojom::internal::AudioOutputStreamObserver_DidChangeAudibleState_Params_Data> params(
message);
params.Allocate();
params->is_audible = in_is_audible;
#if defined(ENABLE_IPC_FUZZER)
message.set_interface_name(AudioOutputStreamObserver::Name_);
message.set_method_name("DidChangeAudibleState");
#endif
// This return value may be ignored as false implies the Connector has
// encountered an error, which will be visible through other means.
::mojo::internal::SendMessage(*receiver_, message);
}
// static
bool AudioOutputStreamObserverStubDispatch::Accept(
AudioOutputStreamObserver* impl,
mojo::Message* message) {
switch (message->header()->name) {
case internal::kAudioOutputStreamObserver_DidStartPlaying_Name: {
DCHECK(message->is_serialized());
internal::AudioOutputStreamObserver_DidStartPlaying_Params_Data* params =
reinterpret_cast<internal::AudioOutputStreamObserver_DidStartPlaying_Params_Data*>(
message->mutable_payload());
bool success = true;
AudioOutputStreamObserver_DidStartPlaying_ParamsDataView input_data_view(params, message);
if (!success) {
ReportValidationErrorForMessage(
message,
mojo::internal::VALIDATION_ERROR_DESERIALIZATION_FAILED,
AudioOutputStreamObserver::Name_, 0, false);
return false;
}
// A null |impl| means no implementation was bound.
DCHECK(impl);
impl->DidStartPlaying();
return true;
}
case internal::kAudioOutputStreamObserver_DidStopPlaying_Name: {
DCHECK(message->is_serialized());
internal::AudioOutputStreamObserver_DidStopPlaying_Params_Data* params =
reinterpret_cast<internal::AudioOutputStreamObserver_DidStopPlaying_Params_Data*>(
message->mutable_payload());
bool success = true;
AudioOutputStreamObserver_DidStopPlaying_ParamsDataView input_data_view(params, message);
if (!success) {
ReportValidationErrorForMessage(
message,
mojo::internal::VALIDATION_ERROR_DESERIALIZATION_FAILED,
AudioOutputStreamObserver::Name_, 1, false);
return false;
}
// A null |impl| means no implementation was bound.
DCHECK(impl);
impl->DidStopPlaying();
return true;
}
case internal::kAudioOutputStreamObserver_DidChangeAudibleState_Name: {
DCHECK(message->is_serialized());
internal::AudioOutputStreamObserver_DidChangeAudibleState_Params_Data* params =
reinterpret_cast<internal::AudioOutputStreamObserver_DidChangeAudibleState_Params_Data*>(
message->mutable_payload());
bool success = true;
bool p_is_audible{};
AudioOutputStreamObserver_DidChangeAudibleState_ParamsDataView input_data_view(params, message);
if (success)
p_is_audible = input_data_view.is_audible();
if (!success) {
ReportValidationErrorForMessage(
message,
mojo::internal::VALIDATION_ERROR_DESERIALIZATION_FAILED,
AudioOutputStreamObserver::Name_, 2, false);
return false;
}
// A null |impl| means no implementation was bound.
DCHECK(impl);
impl->DidChangeAudibleState(
std::move(p_is_audible));
return true;
}
}
return false;
}
// static
bool AudioOutputStreamObserverStubDispatch::AcceptWithResponder(
AudioOutputStreamObserver* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) {
[[maybe_unused]] const bool message_is_sync =
message->has_flag(mojo::Message::kFlagIsSync);
[[maybe_unused]] const uint64_t request_id = message->request_id();
switch (message->header()->name) {
case internal::kAudioOutputStreamObserver_DidStartPlaying_Name: {
break;
}
case internal::kAudioOutputStreamObserver_DidStopPlaying_Name: {
break;
}
case internal::kAudioOutputStreamObserver_DidChangeAudibleState_Name: {
break;
}
}
return false;
}
static const mojo::internal::GenericValidationInfo kAudioOutputStreamObserverValidationInfo[] = {
{&internal::AudioOutputStreamObserver_DidStartPlaying_Params_Data::Validate,
nullptr /* no response */},
{&internal::AudioOutputStreamObserver_DidStopPlaying_Params_Data::Validate,
nullptr /* no response */},
{&internal::AudioOutputStreamObserver_DidChangeAudibleState_Params_Data::Validate,
nullptr /* no response */},
};
bool AudioOutputStreamObserverRequestValidator::Accept(mojo::Message* message) {
const char* name = ::media::mojom::AudioOutputStreamObserver::Name_;
return mojo::internal::ValidateRequestGenericPacked(message, name, kAudioOutputStreamObserverValidationInfo);
}
const char AudioOutputStreamProvider::Name_[] = "media.mojom.AudioOutputStreamProvider";
std::pair<uint32_t, const void*> AudioOutputStreamProvider::MessageToMethodInfo_(mojo::Message& message) {
switch (message.name()) {
case internal::kAudioOutputStreamProvider_Acquire_Name: {
constexpr uint32_t value = base::MD5Hash32Constexpr(
"(Impl)media::mojom::AudioOutputStreamProvider::Acquire");
#if BUILDFLAG(IS_FUCHSIA)
return std::make_pair(value, nullptr);
#else
return std::make_pair(value, reinterpret_cast<const void*>(&AudioOutputStreamProvider::Acquire_Sym::IPCSymbol));
#endif // BUILDFLAG(IS_FUCHSIA)
}
}
return std::make_pair(0, nullptr);
}
const char* AudioOutputStreamProvider::MessageToMethodName_(mojo::Message& message) {
#if BUILDFLAG(MOJO_TRACE_ENABLED)
bool is_response = message.has_flag(mojo::Message::kFlagIsResponse);
if (!is_response) {
switch (message.name()) {
case internal::kAudioOutputStreamProvider_Acquire_Name:
return "Receive media::mojom::AudioOutputStreamProvider::Acquire";
}
} else {
switch (message.name()) {
case internal::kAudioOutputStreamProvider_Acquire_Name:
return "Receive reply media::mojom::AudioOutputStreamProvider::Acquire";
}
}
return "Receive unknown mojo message";
#else
bool is_response = message.has_flag(mojo::Message::kFlagIsResponse);
if (is_response) {
return "Receive mojo reply";
} else {
return "Receive mojo message";
}
#endif // BUILDFLAG(MOJO_TRACE_ENABLED)
}
#if !BUILDFLAG(IS_FUCHSIA)
void AudioOutputStreamProvider::Acquire_Sym::IPCSymbol() {
// This method's address is used for indetifiying the mojo method name after
// symblozation. So each IPCSymbol should have a unique address.
NO_CODE_FOLDING();
}
# endif // !BUILDFLAG(IS_FUCHSIA)
AudioOutputStreamProviderProxy::AudioOutputStreamProviderProxy(mojo::MessageReceiverWithResponder* receiver)
: receiver_(receiver) {
}
void AudioOutputStreamProviderProxy::Acquire(
const ::media::AudioParameters& in_params, ::mojo::PendingRemote<AudioOutputStreamProviderClient> in_client) {
#if BUILDFLAG(MOJO_TRACE_ENABLED)
TRACE_EVENT1(
"mojom", "Send media::mojom::AudioOutputStreamProvider::Acquire", "input_parameters",
[&](perfetto::TracedValue context){
auto dict = std::move(context).WriteDictionary();
perfetto::WriteIntoTracedValueWithFallback(
dict.AddItem("params"), in_params,
"<value of type const ::media::AudioParameters&>");
perfetto::WriteIntoTracedValueWithFallback(
dict.AddItem("client"), in_client,
"<value of type ::mojo::PendingRemote<AudioOutputStreamProviderClient>>");
});
#endif
const bool kExpectsResponse = false;
const bool kIsSync = false;
const bool kAllowInterrupt = true;
const uint32_t kFlags =
((kExpectsResponse) ? mojo::Message::kFlagExpectsResponse : 0) |
((kIsSync) ? mojo::Message::kFlagIsSync : 0) |
((kAllowInterrupt) ? 0 : mojo::Message::kFlagNoInterrupt);
mojo::Message message(
internal::kAudioOutputStreamProvider_Acquire_Name, kFlags, 0, 0, nullptr);
mojo::internal::MessageFragment<
::media::mojom::internal::AudioOutputStreamProvider_Acquire_Params_Data> params(
message);
params.Allocate();
mojo::internal::MessageFragment<
typename decltype(params->params)::BaseType> params_fragment(
params.message());
mojo::internal::Serialize<::media::mojom::AudioParametersDataView>(
in_params, params_fragment);
params->params.Set(
params_fragment.is_null() ? nullptr : params_fragment.data());
MOJO_INTERNAL_DLOG_SERIALIZATION_WARNING(
params->params.is_null(),
mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
"null params in AudioOutputStreamProvider.Acquire request");
mojo::internal::Serialize<mojo::InterfacePtrDataView<::media::mojom::AudioOutputStreamProviderClientInterfaceBase>>(
in_client, &params->client, &params.message());
MOJO_INTERNAL_DLOG_SERIALIZATION_WARNING(
!mojo::internal::IsHandleOrInterfaceValid(params->client),
mojo::internal::VALIDATION_ERROR_UNEXPECTED_INVALID_HANDLE,
"invalid client in AudioOutputStreamProvider.Acquire request");
#if defined(ENABLE_IPC_FUZZER)
message.set_interface_name(AudioOutputStreamProvider::Name_);
message.set_method_name("Acquire");
#endif
// This return value may be ignored as false implies the Connector has
// encountered an error, which will be visible through other means.
::mojo::internal::SendMessage(*receiver_, message);
}
// static
bool AudioOutputStreamProviderStubDispatch::Accept(
AudioOutputStreamProvider* impl,
mojo::Message* message) {
switch (message->header()->name) {
case internal::kAudioOutputStreamProvider_Acquire_Name: {
DCHECK(message->is_serialized());
internal::AudioOutputStreamProvider_Acquire_Params_Data* params =
reinterpret_cast<internal::AudioOutputStreamProvider_Acquire_Params_Data*>(
message->mutable_payload());
bool success = true;
::media::AudioParameters p_params{};
::mojo::PendingRemote<AudioOutputStreamProviderClient> p_client{};
AudioOutputStreamProvider_Acquire_ParamsDataView input_data_view(params, message);
if (success && !input_data_view.ReadParams(&p_params))
success = false;
if (success) {
p_client =
input_data_view.TakeClient<decltype(p_client)>();
}
if (!success) {
ReportValidationErrorForMessage(
message,
mojo::internal::VALIDATION_ERROR_DESERIALIZATION_FAILED,
AudioOutputStreamProvider::Name_, 0, false);
return false;
}
// A null |impl| means no implementation was bound.
DCHECK(impl);
impl->Acquire(
std::move(p_params),
std::move(p_client));
return true;
}
}
return false;
}
// static
bool AudioOutputStreamProviderStubDispatch::AcceptWithResponder(
AudioOutputStreamProvider* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) {
[[maybe_unused]] const bool message_is_sync =
message->has_flag(mojo::Message::kFlagIsSync);
[[maybe_unused]] const uint64_t request_id = message->request_id();
switch (message->header()->name) {
case internal::kAudioOutputStreamProvider_Acquire_Name: {
break;
}
}
return false;
}
static const mojo::internal::GenericValidationInfo kAudioOutputStreamProviderValidationInfo[] = {
{&internal::AudioOutputStreamProvider_Acquire_Params_Data::Validate,
nullptr /* no response */},
};
bool AudioOutputStreamProviderRequestValidator::Accept(mojo::Message* message) {
const char* name = ::media::mojom::AudioOutputStreamProvider::Name_;
return mojo::internal::ValidateRequestGenericPacked(message, name, kAudioOutputStreamProviderValidationInfo);
}
const char AudioOutputStreamProviderClient::Name_[] = "media.mojom.AudioOutputStreamProviderClient";
std::pair<uint32_t, const void*> AudioOutputStreamProviderClient::MessageToMethodInfo_(mojo::Message& message) {
switch (message.name()) {
case internal::kAudioOutputStreamProviderClient_Created_Name: {
constexpr uint32_t value = base::MD5Hash32Constexpr(
"(Impl)media::mojom::AudioOutputStreamProviderClient::Created");
#if BUILDFLAG(IS_FUCHSIA)
return std::make_pair(value, nullptr);
#else
return std::make_pair(value, reinterpret_cast<const void*>(&AudioOutputStreamProviderClient::Created_Sym::IPCSymbol));
#endif // BUILDFLAG(IS_FUCHSIA)
}
}
return std::make_pair(0, nullptr);
}
const char* AudioOutputStreamProviderClient::MessageToMethodName_(mojo::Message& message) {
#if BUILDFLAG(MOJO_TRACE_ENABLED)
bool is_response = message.has_flag(mojo::Message::kFlagIsResponse);
if (!is_response) {
switch (message.name()) {
case internal::kAudioOutputStreamProviderClient_Created_Name:
return "Receive media::mojom::AudioOutputStreamProviderClient::Created";
}
} else {
switch (message.name()) {
case internal::kAudioOutputStreamProviderClient_Created_Name:
return "Receive reply media::mojom::AudioOutputStreamProviderClient::Created";
}
}
return "Receive unknown mojo message";
#else
bool is_response = message.has_flag(mojo::Message::kFlagIsResponse);
if (is_response) {
return "Receive mojo reply";
} else {
return "Receive mojo message";
}
#endif // BUILDFLAG(MOJO_TRACE_ENABLED)
}
#if !BUILDFLAG(IS_FUCHSIA)
void AudioOutputStreamProviderClient::Created_Sym::IPCSymbol() {
// This method's address is used for indetifiying the mojo method name after
// symblozation. So each IPCSymbol should have a unique address.
NO_CODE_FOLDING();
}
# endif // !BUILDFLAG(IS_FUCHSIA)
AudioOutputStreamProviderClientProxy::AudioOutputStreamProviderClientProxy(mojo::MessageReceiverWithResponder* receiver)
: receiver_(receiver) {
}
void AudioOutputStreamProviderClientProxy::Created(
::mojo::PendingRemote<AudioOutputStream> in_stream, ::media::mojom::ReadWriteAudioDataPipePtr in_data_pipe) {
#if BUILDFLAG(MOJO_TRACE_ENABLED)
TRACE_EVENT1(
"mojom", "Send media::mojom::AudioOutputStreamProviderClient::Created", "input_parameters",
[&](perfetto::TracedValue context){
auto dict = std::move(context).WriteDictionary();
perfetto::WriteIntoTracedValueWithFallback(
dict.AddItem("stream"), in_stream,
"<value of type ::mojo::PendingRemote<AudioOutputStream>>");
perfetto::WriteIntoTracedValueWithFallback(
dict.AddItem("data_pipe"), in_data_pipe,
"<value of type ::media::mojom::ReadWriteAudioDataPipePtr>");
});
#endif
const bool kExpectsResponse = false;
const bool kIsSync = false;
const bool kAllowInterrupt = true;
const uint32_t kFlags =
((kExpectsResponse) ? mojo::Message::kFlagExpectsResponse : 0) |
((kIsSync) ? mojo::Message::kFlagIsSync : 0) |
((kAllowInterrupt) ? 0 : mojo::Message::kFlagNoInterrupt);
mojo::Message message(
internal::kAudioOutputStreamProviderClient_Created_Name, kFlags, 0, 0, nullptr);
mojo::internal::MessageFragment<
::media::mojom::internal::AudioOutputStreamProviderClient_Created_Params_Data> params(
message);
params.Allocate();
mojo::internal::Serialize<mojo::InterfacePtrDataView<::media::mojom::AudioOutputStreamInterfaceBase>>(
in_stream, &params->stream, &params.message());
MOJO_INTERNAL_DLOG_SERIALIZATION_WARNING(
!mojo::internal::IsHandleOrInterfaceValid(params->stream),
mojo::internal::VALIDATION_ERROR_UNEXPECTED_INVALID_HANDLE,
"invalid stream in AudioOutputStreamProviderClient.Created request");
mojo::internal::MessageFragment<
typename decltype(params->data_pipe)::BaseType> data_pipe_fragment(
params.message());
mojo::internal::Serialize<::media::mojom::ReadWriteAudioDataPipeDataView>(
in_data_pipe, data_pipe_fragment);
params->data_pipe.Set(
data_pipe_fragment.is_null() ? nullptr : data_pipe_fragment.data());
MOJO_INTERNAL_DLOG_SERIALIZATION_WARNING(
params->data_pipe.is_null(),
mojo::internal::VALIDATION_ERROR_UNEXPECTED_NULL_POINTER,
"null data_pipe in AudioOutputStreamProviderClient.Created request");
#if defined(ENABLE_IPC_FUZZER)
message.set_interface_name(AudioOutputStreamProviderClient::Name_);
message.set_method_name("Created");
#endif
// This return value may be ignored as false implies the Connector has
// encountered an error, which will be visible through other means.
::mojo::internal::SendMessage(*receiver_, message);
}
// static
bool AudioOutputStreamProviderClientStubDispatch::Accept(
AudioOutputStreamProviderClient* impl,
mojo::Message* message) {
switch (message->header()->name) {
case internal::kAudioOutputStreamProviderClient_Created_Name: {
DCHECK(message->is_serialized());
internal::AudioOutputStreamProviderClient_Created_Params_Data* params =
reinterpret_cast<internal::AudioOutputStreamProviderClient_Created_Params_Data*>(
message->mutable_payload());
bool success = true;
::mojo::PendingRemote<AudioOutputStream> p_stream{};
::media::mojom::ReadWriteAudioDataPipePtr p_data_pipe{};
AudioOutputStreamProviderClient_Created_ParamsDataView input_data_view(params, message);
if (success) {
p_stream =
input_data_view.TakeStream<decltype(p_stream)>();
}
if (success && !input_data_view.ReadDataPipe(&p_data_pipe))
success = false;
if (!success) {
ReportValidationErrorForMessage(
message,
mojo::internal::VALIDATION_ERROR_DESERIALIZATION_FAILED,
AudioOutputStreamProviderClient::Name_, 0, false);
return false;
}
// A null |impl| means no implementation was bound.
DCHECK(impl);
impl->Created(
std::move(p_stream),
std::move(p_data_pipe));
return true;
}
}
return false;
}
// static
bool AudioOutputStreamProviderClientStubDispatch::AcceptWithResponder(
AudioOutputStreamProviderClient* impl,
mojo::Message* message,
std::unique_ptr<mojo::MessageReceiverWithStatus> responder) {
[[maybe_unused]] const bool message_is_sync =
message->has_flag(mojo::Message::kFlagIsSync);
[[maybe_unused]] const uint64_t request_id = message->request_id();
switch (message->header()->name) {
case internal::kAudioOutputStreamProviderClient_Created_Name: {
break;
}
}
return false;
}
static const mojo::internal::GenericValidationInfo kAudioOutputStreamProviderClientValidationInfo[] = {
{&internal::AudioOutputStreamProviderClient_Created_Params_Data::Validate,
nullptr /* no response */},
};
bool AudioOutputStreamProviderClientRequestValidator::Accept(mojo::Message* message) {
const char* name = ::media::mojom::AudioOutputStreamProviderClient::Name_;
return mojo::internal::ValidateRequestGenericPacked(message, name, kAudioOutputStreamProviderClientValidationInfo);
}
} // namespace mojom
} // namespace media
namespace mojo {
} // namespace mojo
// Symbols declared in the -test-utils.h header are defined here instead of a
// separate .cc file to save compile time.
namespace media {
namespace mojom {
void AudioOutputStreamInterceptorForTesting::Play() {
GetForwardingInterface()->Play();
}
void AudioOutputStreamInterceptorForTesting::Pause() {
GetForwardingInterface()->Pause();
}
void AudioOutputStreamInterceptorForTesting::Flush() {
GetForwardingInterface()->Flush();
}
void AudioOutputStreamInterceptorForTesting::SetVolume(double volume) {
GetForwardingInterface()->SetVolume(std::move(volume));
}
AudioOutputStreamAsyncWaiter::AudioOutputStreamAsyncWaiter(
AudioOutputStream* proxy) : proxy_(proxy) {}
AudioOutputStreamAsyncWaiter::~AudioOutputStreamAsyncWaiter() = default;
void AudioOutputStreamObserverInterceptorForTesting::DidStartPlaying() {
GetForwardingInterface()->DidStartPlaying();
}
void AudioOutputStreamObserverInterceptorForTesting::DidStopPlaying() {
GetForwardingInterface()->DidStopPlaying();
}
void AudioOutputStreamObserverInterceptorForTesting::DidChangeAudibleState(bool is_audible) {
GetForwardingInterface()->DidChangeAudibleState(std::move(is_audible));
}
AudioOutputStreamObserverAsyncWaiter::AudioOutputStreamObserverAsyncWaiter(
AudioOutputStreamObserver* proxy) : proxy_(proxy) {}
AudioOutputStreamObserverAsyncWaiter::~AudioOutputStreamObserverAsyncWaiter() = default;
void AudioOutputStreamProviderInterceptorForTesting::Acquire(const ::media::AudioParameters& params, ::mojo::PendingRemote<AudioOutputStreamProviderClient> client) {
GetForwardingInterface()->Acquire(std::move(params), std::move(client));
}
AudioOutputStreamProviderAsyncWaiter::AudioOutputStreamProviderAsyncWaiter(
AudioOutputStreamProvider* proxy) : proxy_(proxy) {}
AudioOutputStreamProviderAsyncWaiter::~AudioOutputStreamProviderAsyncWaiter() = default;
void AudioOutputStreamProviderClientInterceptorForTesting::Created(::mojo::PendingRemote<AudioOutputStream> stream, ::media::mojom::ReadWriteAudioDataPipePtr data_pipe) {
GetForwardingInterface()->Created(std::move(stream), std::move(data_pipe));
}
AudioOutputStreamProviderClientAsyncWaiter::AudioOutputStreamProviderClientAsyncWaiter(
AudioOutputStreamProviderClient* proxy) : proxy_(proxy) {}
AudioOutputStreamProviderClientAsyncWaiter::~AudioOutputStreamProviderClientAsyncWaiter() = default;
} // namespace mojom
} // namespace media
#if defined(__clang__)
#pragma clang diagnostic pop
#endif