blob: c76fd23388b353157e0e636b3d6500bf2708a313 [file] [log] [blame]
// Copyright 2019 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 CONTENT_COMMON_MEDIA_RENDERER_AUDIO_INPUT_STREAM_FACTORY_MOJOM_PARAMS_DATA_H_
#define CONTENT_COMMON_MEDIA_RENDERER_AUDIO_INPUT_STREAM_FACTORY_MOJOM_PARAMS_DATA_H_
#include "base/logging.h"
#include "base/macros.h"
#include "mojo/public/cpp/bindings/lib/bindings_internal.h"
#include "mojo/public/cpp/bindings/lib/buffer.h"
#include "mojo/public/cpp/bindings/lib/validation_context.h"
#if defined(__clang__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-private-field"
#elif defined(_MSC_VER)
#pragma warning(push)
#pragma warning(disable:4056)
#pragma warning(disable:4065)
#pragma warning(disable:4756)
#endif
namespace content {
namespace mojom {
namespace internal {
class COMPONENT_EXPORT(MOJOM_SHARED_CONTENT_EXPORT) RendererAudioInputStreamFactory_CreateStream_Params_Data {
public:
class BufferWriter {
public:
BufferWriter() = default;
void Allocate(mojo::internal::Buffer* serialization_buffer) {
serialization_buffer_ = serialization_buffer;
index_ = serialization_buffer_->Allocate(sizeof(RendererAudioInputStreamFactory_CreateStream_Params_Data));
new (data()) RendererAudioInputStreamFactory_CreateStream_Params_Data();
}
bool is_null() const { return !serialization_buffer_; }
RendererAudioInputStreamFactory_CreateStream_Params_Data* data() {
DCHECK(!is_null());
return serialization_buffer_->Get<RendererAudioInputStreamFactory_CreateStream_Params_Data>(index_);
}
RendererAudioInputStreamFactory_CreateStream_Params_Data* operator->() { return data(); }
private:
mojo::internal::Buffer* serialization_buffer_ = nullptr;
size_t index_ = 0;
DISALLOW_COPY_AND_ASSIGN(BufferWriter);
};
static bool Validate(const void* data,
mojo::internal::ValidationContext* validation_context);
mojo::internal::StructHeader header_;
mojo::internal::Interface_Data client;
int32_t session_id;
uint8_t automatic_gain_control : 1;
uint8_t pad2_[3];
mojo::internal::Pointer<::media::mojom::internal::AudioParameters_Data> params;
uint32_t shared_memory_count;
uint8_t pad4_[4];
mojo::internal::Pointer<::audio::mojom::internal::AudioProcessingConfig_Data> processing_config;
private:
RendererAudioInputStreamFactory_CreateStream_Params_Data();
~RendererAudioInputStreamFactory_CreateStream_Params_Data() = delete;
};
static_assert(sizeof(RendererAudioInputStreamFactory_CreateStream_Params_Data) == 48,
"Bad sizeof(RendererAudioInputStreamFactory_CreateStream_Params_Data)");
class COMPONENT_EXPORT(MOJOM_SHARED_CONTENT_EXPORT) RendererAudioInputStreamFactory_AssociateInputAndOutputForAec_Params_Data {
public:
class BufferWriter {
public:
BufferWriter() = default;
void Allocate(mojo::internal::Buffer* serialization_buffer) {
serialization_buffer_ = serialization_buffer;
index_ = serialization_buffer_->Allocate(sizeof(RendererAudioInputStreamFactory_AssociateInputAndOutputForAec_Params_Data));
new (data()) RendererAudioInputStreamFactory_AssociateInputAndOutputForAec_Params_Data();
}
bool is_null() const { return !serialization_buffer_; }
RendererAudioInputStreamFactory_AssociateInputAndOutputForAec_Params_Data* data() {
DCHECK(!is_null());
return serialization_buffer_->Get<RendererAudioInputStreamFactory_AssociateInputAndOutputForAec_Params_Data>(index_);
}
RendererAudioInputStreamFactory_AssociateInputAndOutputForAec_Params_Data* operator->() { return data(); }
private:
mojo::internal::Buffer* serialization_buffer_ = nullptr;
size_t index_ = 0;
DISALLOW_COPY_AND_ASSIGN(BufferWriter);
};
static bool Validate(const void* data,
mojo::internal::ValidationContext* validation_context);
mojo::internal::StructHeader header_;
mojo::internal::Pointer<::mojo_base::mojom::internal::UnguessableToken_Data> input_stream_id;
mojo::internal::Pointer<mojo::internal::String_Data> output_device_id;
private:
RendererAudioInputStreamFactory_AssociateInputAndOutputForAec_Params_Data();
~RendererAudioInputStreamFactory_AssociateInputAndOutputForAec_Params_Data() = delete;
};
static_assert(sizeof(RendererAudioInputStreamFactory_AssociateInputAndOutputForAec_Params_Data) == 24,
"Bad sizeof(RendererAudioInputStreamFactory_AssociateInputAndOutputForAec_Params_Data)");
class COMPONENT_EXPORT(MOJOM_SHARED_CONTENT_EXPORT) RendererAudioInputStreamFactoryClient_StreamCreated_Params_Data {
public:
class BufferWriter {
public:
BufferWriter() = default;
void Allocate(mojo::internal::Buffer* serialization_buffer) {
serialization_buffer_ = serialization_buffer;
index_ = serialization_buffer_->Allocate(sizeof(RendererAudioInputStreamFactoryClient_StreamCreated_Params_Data));
new (data()) RendererAudioInputStreamFactoryClient_StreamCreated_Params_Data();
}
bool is_null() const { return !serialization_buffer_; }
RendererAudioInputStreamFactoryClient_StreamCreated_Params_Data* data() {
DCHECK(!is_null());
return serialization_buffer_->Get<RendererAudioInputStreamFactoryClient_StreamCreated_Params_Data>(index_);
}
RendererAudioInputStreamFactoryClient_StreamCreated_Params_Data* operator->() { return data(); }
private:
mojo::internal::Buffer* serialization_buffer_ = nullptr;
size_t index_ = 0;
DISALLOW_COPY_AND_ASSIGN(BufferWriter);
};
static bool Validate(const void* data,
mojo::internal::ValidationContext* validation_context);
mojo::internal::StructHeader header_;
mojo::internal::Interface_Data stream;
mojo::internal::Handle_Data client_request;
uint8_t initially_muted : 1;
uint8_t pad2_[3];
mojo::internal::Pointer<::media::mojom::internal::ReadOnlyAudioDataPipe_Data> data_pipe;
mojo::internal::Pointer<::mojo_base::mojom::internal::UnguessableToken_Data> stream_id;
private:
RendererAudioInputStreamFactoryClient_StreamCreated_Params_Data();
~RendererAudioInputStreamFactoryClient_StreamCreated_Params_Data() = delete;
};
static_assert(sizeof(RendererAudioInputStreamFactoryClient_StreamCreated_Params_Data) == 40,
"Bad sizeof(RendererAudioInputStreamFactoryClient_StreamCreated_Params_Data)");
} // namespace internal
class RendererAudioInputStreamFactory_CreateStream_ParamsDataView {
public:
RendererAudioInputStreamFactory_CreateStream_ParamsDataView() {}
RendererAudioInputStreamFactory_CreateStream_ParamsDataView(
internal::RendererAudioInputStreamFactory_CreateStream_Params_Data* data,
mojo::internal::SerializationContext* context)
: data_(data), context_(context) {}
bool is_null() const { return !data_; }
template <typename UserType>
UserType TakeClient() {
UserType result;
bool ret =
mojo::internal::Deserialize<::content::mojom::RendererAudioInputStreamFactoryClientPtrDataView>(
&data_->client, &result, context_);
DCHECK(ret);
return result;
}
int32_t session_id() const {
return data_->session_id;
}
inline void GetParamsDataView(
::media::mojom::AudioParametersDataView* output);
template <typename UserType>
WARN_UNUSED_RESULT bool ReadParams(UserType* output) {
auto* pointer = data_->params.Get();
return mojo::internal::Deserialize<::media::mojom::AudioParametersDataView>(
pointer, output, context_);
}
bool automatic_gain_control() const {
return data_->automatic_gain_control;
}
uint32_t shared_memory_count() const {
return data_->shared_memory_count;
}
inline void GetProcessingConfigDataView(
::audio::mojom::AudioProcessingConfigDataView* output);
template <typename UserType>
WARN_UNUSED_RESULT bool ReadProcessingConfig(UserType* output) {
auto* pointer = data_->processing_config.Get();
return mojo::internal::Deserialize<::audio::mojom::AudioProcessingConfigDataView>(
pointer, output, context_);
}
private:
internal::RendererAudioInputStreamFactory_CreateStream_Params_Data* data_ = nullptr;
mojo::internal::SerializationContext* context_ = nullptr;
};
class RendererAudioInputStreamFactory_AssociateInputAndOutputForAec_ParamsDataView {
public:
RendererAudioInputStreamFactory_AssociateInputAndOutputForAec_ParamsDataView() {}
RendererAudioInputStreamFactory_AssociateInputAndOutputForAec_ParamsDataView(
internal::RendererAudioInputStreamFactory_AssociateInputAndOutputForAec_Params_Data* data,
mojo::internal::SerializationContext* context)
: data_(data), context_(context) {}
bool is_null() const { return !data_; }
inline void GetInputStreamIdDataView(
::mojo_base::mojom::UnguessableTokenDataView* output);
template <typename UserType>
WARN_UNUSED_RESULT bool ReadInputStreamId(UserType* output) {
auto* pointer = data_->input_stream_id.Get();
return mojo::internal::Deserialize<::mojo_base::mojom::UnguessableTokenDataView>(
pointer, output, context_);
}
inline void GetOutputDeviceIdDataView(
mojo::StringDataView* output);
template <typename UserType>
WARN_UNUSED_RESULT bool ReadOutputDeviceId(UserType* output) {
auto* pointer = data_->output_device_id.Get();
return mojo::internal::Deserialize<mojo::StringDataView>(
pointer, output, context_);
}
private:
internal::RendererAudioInputStreamFactory_AssociateInputAndOutputForAec_Params_Data* data_ = nullptr;
mojo::internal::SerializationContext* context_ = nullptr;
};
class RendererAudioInputStreamFactoryClient_StreamCreated_ParamsDataView {
public:
RendererAudioInputStreamFactoryClient_StreamCreated_ParamsDataView() {}
RendererAudioInputStreamFactoryClient_StreamCreated_ParamsDataView(
internal::RendererAudioInputStreamFactoryClient_StreamCreated_Params_Data* data,
mojo::internal::SerializationContext* context)
: data_(data), context_(context) {}
bool is_null() const { return !data_; }
template <typename UserType>
UserType TakeStream() {
UserType result;
bool ret =
mojo::internal::Deserialize<::media::mojom::AudioInputStreamPtrDataView>(
&data_->stream, &result, context_);
DCHECK(ret);
return result;
}
template <typename UserType>
UserType TakeClientRequest() {
UserType result;
bool ret =
mojo::internal::Deserialize<::media::mojom::AudioInputStreamClientRequestDataView>(
&data_->client_request, &result, context_);
DCHECK(ret);
return result;
}
inline void GetDataPipeDataView(
::media::mojom::ReadOnlyAudioDataPipeDataView* output);
template <typename UserType>
WARN_UNUSED_RESULT bool ReadDataPipe(UserType* output) {
auto* pointer = data_->data_pipe.Get();
return mojo::internal::Deserialize<::media::mojom::ReadOnlyAudioDataPipeDataView>(
pointer, output, context_);
}
bool initially_muted() const {
return data_->initially_muted;
}
inline void GetStreamIdDataView(
::mojo_base::mojom::UnguessableTokenDataView* output);
template <typename UserType>
WARN_UNUSED_RESULT bool ReadStreamId(UserType* output) {
auto* pointer = data_->stream_id.Get();
return mojo::internal::Deserialize<::mojo_base::mojom::UnguessableTokenDataView>(
pointer, output, context_);
}
private:
internal::RendererAudioInputStreamFactoryClient_StreamCreated_Params_Data* data_ = nullptr;
mojo::internal::SerializationContext* context_ = nullptr;
};
inline void RendererAudioInputStreamFactory_CreateStream_ParamsDataView::GetParamsDataView(
::media::mojom::AudioParametersDataView* output) {
auto pointer = data_->params.Get();
*output = ::media::mojom::AudioParametersDataView(pointer, context_);
}
inline void RendererAudioInputStreamFactory_CreateStream_ParamsDataView::GetProcessingConfigDataView(
::audio::mojom::AudioProcessingConfigDataView* output) {
auto pointer = data_->processing_config.Get();
*output = ::audio::mojom::AudioProcessingConfigDataView(pointer, context_);
}
inline void RendererAudioInputStreamFactory_AssociateInputAndOutputForAec_ParamsDataView::GetInputStreamIdDataView(
::mojo_base::mojom::UnguessableTokenDataView* output) {
auto pointer = data_->input_stream_id.Get();
*output = ::mojo_base::mojom::UnguessableTokenDataView(pointer, context_);
}
inline void RendererAudioInputStreamFactory_AssociateInputAndOutputForAec_ParamsDataView::GetOutputDeviceIdDataView(
mojo::StringDataView* output) {
auto pointer = data_->output_device_id.Get();
*output = mojo::StringDataView(pointer, context_);
}
inline void RendererAudioInputStreamFactoryClient_StreamCreated_ParamsDataView::GetDataPipeDataView(
::media::mojom::ReadOnlyAudioDataPipeDataView* output) {
auto pointer = data_->data_pipe.Get();
*output = ::media::mojom::ReadOnlyAudioDataPipeDataView(pointer, context_);
}
inline void RendererAudioInputStreamFactoryClient_StreamCreated_ParamsDataView::GetStreamIdDataView(
::mojo_base::mojom::UnguessableTokenDataView* output) {
auto pointer = data_->stream_id.Get();
*output = ::mojo_base::mojom::UnguessableTokenDataView(pointer, context_);
}
} // namespace mojom
} // namespace content
#if defined(__clang__)
#pragma clang diagnostic pop
#elif defined(_MSC_VER)
#pragma warning(pop)
#endif
#endif // CONTENT_COMMON_MEDIA_RENDERER_AUDIO_INPUT_STREAM_FACTORY_MOJOM_PARAMS_DATA_H_