From bb3da914198c6c862f0105f25a2c5da1de5c5d38 Mon Sep 17 00:00:00 2001 From: oliviamiller <106617921+oliviamiller@users.noreply.github.com> Date: Tue, 21 Oct 2025 13:01:39 -0500 Subject: [PATCH 01/12] start audio out --- .../component/audioin/v1/audioin.grpc.pb.cc | 211 +++ .../component/audioin/v1/audioin.grpc.pb.h | 729 +++++++++ .../api/component/audioin/v1/audioin.pb.cc | 1175 +++++++++++++++ .../api/component/audioin/v1/audioin.pb.h | 1315 +++++++++++++++++ .../component/audioout/v1/audioout.grpc.pb.cc | 218 +++ .../component/audioout/v1/audioout.grpc.pb.h | 730 +++++++++ .../api/component/audioout/v1/audioout.pb.cc | 538 +++++++ .../api/component/audioout/v1/audioout.pb.h | 695 +++++++++ src/viam/sdk/CMakeLists.txt | 5 + src/viam/sdk/common/audio.cpp | 14 + src/viam/sdk/common/audio.hpp | 34 + src/viam/sdk/components/audio_out.cpp | 22 + src/viam/sdk/components/audio_out.hpp | 79 + .../components/private/audio_out_client.cpp | 80 + .../components/private/audio_out_client.hpp | 51 + .../components/private/audio_out_server.cpp | 83 ++ .../components/private/audio_out_server.hpp | 49 + src/viam/sdk/registry/registry.cpp | 6 + src/viam/sdk/tests/CMakeLists.txt | 2 + src/viam/sdk/tests/mocks/mock_audio_out.cpp | 48 + src/viam/sdk/tests/mocks/mock_audio_out.hpp | 42 + src/viam/sdk/tests/test_audio_out.cpp | 79 + 22 files changed, 6205 insertions(+) create mode 100644 src/viam/api/component/audioin/v1/audioin.grpc.pb.cc create mode 100644 src/viam/api/component/audioin/v1/audioin.grpc.pb.h create mode 100644 src/viam/api/component/audioin/v1/audioin.pb.cc create mode 100644 src/viam/api/component/audioin/v1/audioin.pb.h create mode 100644 src/viam/api/component/audioout/v1/audioout.grpc.pb.cc create mode 100644 src/viam/api/component/audioout/v1/audioout.grpc.pb.h create mode 100644 src/viam/api/component/audioout/v1/audioout.pb.cc create mode 100644 src/viam/api/component/audioout/v1/audioout.pb.h create mode 100644 src/viam/sdk/common/audio.cpp create mode 100644 src/viam/sdk/common/audio.hpp create mode 100644 src/viam/sdk/components/audio_out.cpp create mode 100644 src/viam/sdk/components/audio_out.hpp create mode 100644 src/viam/sdk/components/private/audio_out_client.cpp create mode 100644 src/viam/sdk/components/private/audio_out_client.hpp create mode 100644 src/viam/sdk/components/private/audio_out_server.cpp create mode 100644 src/viam/sdk/components/private/audio_out_server.hpp create mode 100644 src/viam/sdk/tests/mocks/mock_audio_out.cpp create mode 100644 src/viam/sdk/tests/mocks/mock_audio_out.hpp create mode 100644 src/viam/sdk/tests/test_audio_out.cpp diff --git a/src/viam/api/component/audioin/v1/audioin.grpc.pb.cc b/src/viam/api/component/audioin/v1/audioin.grpc.pb.cc new file mode 100644 index 000000000..43513cf5f --- /dev/null +++ b/src/viam/api/component/audioin/v1/audioin.grpc.pb.cc @@ -0,0 +1,211 @@ +// Generated by the gRPC C++ plugin. +// If you make any local change, they will be lost. +// source: component/audioin/v1/audioin.proto + +#include "component/audioin/v1/audioin.pb.h" +#include "component/audioin/v1/audioin.grpc.pb.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +namespace viam { +namespace component { +namespace audioin { +namespace v1 { + +static const char* AudioInService_method_names[] = { + "/viam.component.audioin.v1.AudioInService/GetAudio", + "/viam.component.audioin.v1.AudioInService/GetProperties", + "/viam.component.audioin.v1.AudioInService/DoCommand", + "/viam.component.audioin.v1.AudioInService/GetGeometries", +}; + +std::unique_ptr< AudioInService::Stub> AudioInService::NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) { + (void)options; + std::unique_ptr< AudioInService::Stub> stub(new AudioInService::Stub(channel, options)); + return stub; +} + +AudioInService::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) + : channel_(channel), rpcmethod_GetAudio_(AudioInService_method_names[0], options.suffix_for_stats(),::grpc::internal::RpcMethod::SERVER_STREAMING, channel) + , rpcmethod_GetProperties_(AudioInService_method_names[1], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_DoCommand_(AudioInService_method_names[2], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_GetGeometries_(AudioInService_method_names[3], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + {} + +::grpc::ClientReader< ::viam::component::audioin::v1::GetAudioResponse>* AudioInService::Stub::GetAudioRaw(::grpc::ClientContext* context, const ::viam::component::audioin::v1::GetAudioRequest& request) { + return ::grpc::internal::ClientReaderFactory< ::viam::component::audioin::v1::GetAudioResponse>::Create(channel_.get(), rpcmethod_GetAudio_, context, request); +} + +void AudioInService::Stub::async::GetAudio(::grpc::ClientContext* context, const ::viam::component::audioin::v1::GetAudioRequest* request, ::grpc::ClientReadReactor< ::viam::component::audioin::v1::GetAudioResponse>* reactor) { + ::grpc::internal::ClientCallbackReaderFactory< ::viam::component::audioin::v1::GetAudioResponse>::Create(stub_->channel_.get(), stub_->rpcmethod_GetAudio_, context, request, reactor); +} + +::grpc::ClientAsyncReader< ::viam::component::audioin::v1::GetAudioResponse>* AudioInService::Stub::AsyncGetAudioRaw(::grpc::ClientContext* context, const ::viam::component::audioin::v1::GetAudioRequest& request, ::grpc::CompletionQueue* cq, void* tag) { + return ::grpc::internal::ClientAsyncReaderFactory< ::viam::component::audioin::v1::GetAudioResponse>::Create(channel_.get(), cq, rpcmethod_GetAudio_, context, request, true, tag); +} + +::grpc::ClientAsyncReader< ::viam::component::audioin::v1::GetAudioResponse>* AudioInService::Stub::PrepareAsyncGetAudioRaw(::grpc::ClientContext* context, const ::viam::component::audioin::v1::GetAudioRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncReaderFactory< ::viam::component::audioin::v1::GetAudioResponse>::Create(channel_.get(), cq, rpcmethod_GetAudio_, context, request, false, nullptr); +} + +::grpc::Status AudioInService::Stub::GetProperties(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest& request, ::viam::common::v1::GetPropertiesResponse* response) { + return ::grpc::internal::BlockingUnaryCall< ::viam::common::v1::GetPropertiesRequest, ::viam::common::v1::GetPropertiesResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_GetProperties_, context, request, response); +} + +void AudioInService::Stub::async::GetProperties(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest* request, ::viam::common::v1::GetPropertiesResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall< ::viam::common::v1::GetPropertiesRequest, ::viam::common::v1::GetPropertiesResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetProperties_, context, request, response, std::move(f)); +} + +void AudioInService::Stub::async::GetProperties(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest* request, ::viam::common::v1::GetPropertiesResponse* response, ::grpc::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetProperties_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::viam::common::v1::GetPropertiesResponse>* AudioInService::Stub::PrepareAsyncGetPropertiesRaw(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::viam::common::v1::GetPropertiesResponse, ::viam::common::v1::GetPropertiesRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_GetProperties_, context, request); +} + +::grpc::ClientAsyncResponseReader< ::viam::common::v1::GetPropertiesResponse>* AudioInService::Stub::AsyncGetPropertiesRaw(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest& request, ::grpc::CompletionQueue* cq) { + auto* result = + this->PrepareAsyncGetPropertiesRaw(context, request, cq); + result->StartCall(); + return result; +} + +::grpc::Status AudioInService::Stub::DoCommand(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest& request, ::viam::common::v1::DoCommandResponse* response) { + return ::grpc::internal::BlockingUnaryCall< ::viam::common::v1::DoCommandRequest, ::viam::common::v1::DoCommandResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_DoCommand_, context, request, response); +} + +void AudioInService::Stub::async::DoCommand(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest* request, ::viam::common::v1::DoCommandResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall< ::viam::common::v1::DoCommandRequest, ::viam::common::v1::DoCommandResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_DoCommand_, context, request, response, std::move(f)); +} + +void AudioInService::Stub::async::DoCommand(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest* request, ::viam::common::v1::DoCommandResponse* response, ::grpc::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_DoCommand_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::viam::common::v1::DoCommandResponse>* AudioInService::Stub::PrepareAsyncDoCommandRaw(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::viam::common::v1::DoCommandResponse, ::viam::common::v1::DoCommandRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_DoCommand_, context, request); +} + +::grpc::ClientAsyncResponseReader< ::viam::common::v1::DoCommandResponse>* AudioInService::Stub::AsyncDoCommandRaw(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest& request, ::grpc::CompletionQueue* cq) { + auto* result = + this->PrepareAsyncDoCommandRaw(context, request, cq); + result->StartCall(); + return result; +} + +::grpc::Status AudioInService::Stub::GetGeometries(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest& request, ::viam::common::v1::GetGeometriesResponse* response) { + return ::grpc::internal::BlockingUnaryCall< ::viam::common::v1::GetGeometriesRequest, ::viam::common::v1::GetGeometriesResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_GetGeometries_, context, request, response); +} + +void AudioInService::Stub::async::GetGeometries(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest* request, ::viam::common::v1::GetGeometriesResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall< ::viam::common::v1::GetGeometriesRequest, ::viam::common::v1::GetGeometriesResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetGeometries_, context, request, response, std::move(f)); +} + +void AudioInService::Stub::async::GetGeometries(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest* request, ::viam::common::v1::GetGeometriesResponse* response, ::grpc::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetGeometries_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::viam::common::v1::GetGeometriesResponse>* AudioInService::Stub::PrepareAsyncGetGeometriesRaw(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::viam::common::v1::GetGeometriesResponse, ::viam::common::v1::GetGeometriesRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_GetGeometries_, context, request); +} + +::grpc::ClientAsyncResponseReader< ::viam::common::v1::GetGeometriesResponse>* AudioInService::Stub::AsyncGetGeometriesRaw(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest& request, ::grpc::CompletionQueue* cq) { + auto* result = + this->PrepareAsyncGetGeometriesRaw(context, request, cq); + result->StartCall(); + return result; +} + +AudioInService::Service::Service() { + AddMethod(new ::grpc::internal::RpcServiceMethod( + AudioInService_method_names[0], + ::grpc::internal::RpcMethod::SERVER_STREAMING, + new ::grpc::internal::ServerStreamingHandler< AudioInService::Service, ::viam::component::audioin::v1::GetAudioRequest, ::viam::component::audioin::v1::GetAudioResponse>( + [](AudioInService::Service* service, + ::grpc::ServerContext* ctx, + const ::viam::component::audioin::v1::GetAudioRequest* req, + ::grpc::ServerWriter<::viam::component::audioin::v1::GetAudioResponse>* writer) { + return service->GetAudio(ctx, req, writer); + }, this))); + AddMethod(new ::grpc::internal::RpcServiceMethod( + AudioInService_method_names[1], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< AudioInService::Service, ::viam::common::v1::GetPropertiesRequest, ::viam::common::v1::GetPropertiesResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( + [](AudioInService::Service* service, + ::grpc::ServerContext* ctx, + const ::viam::common::v1::GetPropertiesRequest* req, + ::viam::common::v1::GetPropertiesResponse* resp) { + return service->GetProperties(ctx, req, resp); + }, this))); + AddMethod(new ::grpc::internal::RpcServiceMethod( + AudioInService_method_names[2], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< AudioInService::Service, ::viam::common::v1::DoCommandRequest, ::viam::common::v1::DoCommandResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( + [](AudioInService::Service* service, + ::grpc::ServerContext* ctx, + const ::viam::common::v1::DoCommandRequest* req, + ::viam::common::v1::DoCommandResponse* resp) { + return service->DoCommand(ctx, req, resp); + }, this))); + AddMethod(new ::grpc::internal::RpcServiceMethod( + AudioInService_method_names[3], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< AudioInService::Service, ::viam::common::v1::GetGeometriesRequest, ::viam::common::v1::GetGeometriesResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( + [](AudioInService::Service* service, + ::grpc::ServerContext* ctx, + const ::viam::common::v1::GetGeometriesRequest* req, + ::viam::common::v1::GetGeometriesResponse* resp) { + return service->GetGeometries(ctx, req, resp); + }, this))); +} + +AudioInService::Service::~Service() { +} + +::grpc::Status AudioInService::Service::GetAudio(::grpc::ServerContext* context, const ::viam::component::audioin::v1::GetAudioRequest* request, ::grpc::ServerWriter< ::viam::component::audioin::v1::GetAudioResponse>* writer) { + (void) context; + (void) request; + (void) writer; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + +::grpc::Status AudioInService::Service::GetProperties(::grpc::ServerContext* context, const ::viam::common::v1::GetPropertiesRequest* request, ::viam::common::v1::GetPropertiesResponse* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + +::grpc::Status AudioInService::Service::DoCommand(::grpc::ServerContext* context, const ::viam::common::v1::DoCommandRequest* request, ::viam::common::v1::DoCommandResponse* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + +::grpc::Status AudioInService::Service::GetGeometries(::grpc::ServerContext* context, const ::viam::common::v1::GetGeometriesRequest* request, ::viam::common::v1::GetGeometriesResponse* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + + +} // namespace viam +} // namespace component +} // namespace audioin +} // namespace v1 + diff --git a/src/viam/api/component/audioin/v1/audioin.grpc.pb.h b/src/viam/api/component/audioin/v1/audioin.grpc.pb.h new file mode 100644 index 000000000..ef86d2d22 --- /dev/null +++ b/src/viam/api/component/audioin/v1/audioin.grpc.pb.h @@ -0,0 +1,729 @@ +// Generated by the gRPC C++ plugin. +// If you make any local change, they will be lost. +// source: component/audioin/v1/audioin.proto +#ifndef GRPC_component_2faudioin_2fv1_2faudioin_2eproto__INCLUDED +#define GRPC_component_2faudioin_2fv1_2faudioin_2eproto__INCLUDED + +#include "component/audioin/v1/audioin.pb.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace viam { +namespace component { +namespace audioin { +namespace v1 { + +// An AudioInService services all audio inputss associated with a robot +class AudioInService final { + public: + static constexpr char const* service_full_name() { + return "viam.component.audioin.v1.AudioInService"; + } + class StubInterface { + public: + virtual ~StubInterface() {} + // GetAudio streams audio from the given audioin + std::unique_ptr< ::grpc::ClientReaderInterface< ::viam::component::audioin::v1::GetAudioResponse>> GetAudio(::grpc::ClientContext* context, const ::viam::component::audioin::v1::GetAudioRequest& request) { + return std::unique_ptr< ::grpc::ClientReaderInterface< ::viam::component::audioin::v1::GetAudioResponse>>(GetAudioRaw(context, request)); + } + std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::viam::component::audioin::v1::GetAudioResponse>> AsyncGetAudio(::grpc::ClientContext* context, const ::viam::component::audioin::v1::GetAudioRequest& request, ::grpc::CompletionQueue* cq, void* tag) { + return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::viam::component::audioin::v1::GetAudioResponse>>(AsyncGetAudioRaw(context, request, cq, tag)); + } + std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::viam::component::audioin::v1::GetAudioResponse>> PrepareAsyncGetAudio(::grpc::ClientContext* context, const ::viam::component::audioin::v1::GetAudioRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::viam::component::audioin::v1::GetAudioResponse>>(PrepareAsyncGetAudioRaw(context, request, cq)); + } + // GetProperties returns the properties of the audioin + virtual ::grpc::Status GetProperties(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest& request, ::viam::common::v1::GetPropertiesResponse* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::GetPropertiesResponse>> AsyncGetProperties(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::GetPropertiesResponse>>(AsyncGetPropertiesRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::GetPropertiesResponse>> PrepareAsyncGetProperties(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::GetPropertiesResponse>>(PrepareAsyncGetPropertiesRaw(context, request, cq)); + } + // DoCommand sends/receives arbitrary commands + virtual ::grpc::Status DoCommand(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest& request, ::viam::common::v1::DoCommandResponse* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::DoCommandResponse>> AsyncDoCommand(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::DoCommandResponse>>(AsyncDoCommandRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::DoCommandResponse>> PrepareAsyncDoCommand(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::DoCommandResponse>>(PrepareAsyncDoCommandRaw(context, request, cq)); + } + // GetGeometries returns the geometries of the component in their current configuration + virtual ::grpc::Status GetGeometries(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest& request, ::viam::common::v1::GetGeometriesResponse* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::GetGeometriesResponse>> AsyncGetGeometries(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::GetGeometriesResponse>>(AsyncGetGeometriesRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::GetGeometriesResponse>> PrepareAsyncGetGeometries(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::GetGeometriesResponse>>(PrepareAsyncGetGeometriesRaw(context, request, cq)); + } + class async_interface { + public: + virtual ~async_interface() {} + // GetAudio streams audio from the given audioin + virtual void GetAudio(::grpc::ClientContext* context, const ::viam::component::audioin::v1::GetAudioRequest* request, ::grpc::ClientReadReactor< ::viam::component::audioin::v1::GetAudioResponse>* reactor) = 0; + // GetProperties returns the properties of the audioin + virtual void GetProperties(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest* request, ::viam::common::v1::GetPropertiesResponse* response, std::function) = 0; + virtual void GetProperties(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest* request, ::viam::common::v1::GetPropertiesResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0; + // DoCommand sends/receives arbitrary commands + virtual void DoCommand(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest* request, ::viam::common::v1::DoCommandResponse* response, std::function) = 0; + virtual void DoCommand(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest* request, ::viam::common::v1::DoCommandResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0; + // GetGeometries returns the geometries of the component in their current configuration + virtual void GetGeometries(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest* request, ::viam::common::v1::GetGeometriesResponse* response, std::function) = 0; + virtual void GetGeometries(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest* request, ::viam::common::v1::GetGeometriesResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0; + }; + typedef class async_interface experimental_async_interface; + virtual class async_interface* async() { return nullptr; } + class async_interface* experimental_async() { return async(); } + private: + virtual ::grpc::ClientReaderInterface< ::viam::component::audioin::v1::GetAudioResponse>* GetAudioRaw(::grpc::ClientContext* context, const ::viam::component::audioin::v1::GetAudioRequest& request) = 0; + virtual ::grpc::ClientAsyncReaderInterface< ::viam::component::audioin::v1::GetAudioResponse>* AsyncGetAudioRaw(::grpc::ClientContext* context, const ::viam::component::audioin::v1::GetAudioRequest& request, ::grpc::CompletionQueue* cq, void* tag) = 0; + virtual ::grpc::ClientAsyncReaderInterface< ::viam::component::audioin::v1::GetAudioResponse>* PrepareAsyncGetAudioRaw(::grpc::ClientContext* context, const ::viam::component::audioin::v1::GetAudioRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::GetPropertiesResponse>* AsyncGetPropertiesRaw(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::GetPropertiesResponse>* PrepareAsyncGetPropertiesRaw(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::DoCommandResponse>* AsyncDoCommandRaw(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::DoCommandResponse>* PrepareAsyncDoCommandRaw(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::GetGeometriesResponse>* AsyncGetGeometriesRaw(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::GetGeometriesResponse>* PrepareAsyncGetGeometriesRaw(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest& request, ::grpc::CompletionQueue* cq) = 0; + }; + class Stub final : public StubInterface { + public: + Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); + std::unique_ptr< ::grpc::ClientReader< ::viam::component::audioin::v1::GetAudioResponse>> GetAudio(::grpc::ClientContext* context, const ::viam::component::audioin::v1::GetAudioRequest& request) { + return std::unique_ptr< ::grpc::ClientReader< ::viam::component::audioin::v1::GetAudioResponse>>(GetAudioRaw(context, request)); + } + std::unique_ptr< ::grpc::ClientAsyncReader< ::viam::component::audioin::v1::GetAudioResponse>> AsyncGetAudio(::grpc::ClientContext* context, const ::viam::component::audioin::v1::GetAudioRequest& request, ::grpc::CompletionQueue* cq, void* tag) { + return std::unique_ptr< ::grpc::ClientAsyncReader< ::viam::component::audioin::v1::GetAudioResponse>>(AsyncGetAudioRaw(context, request, cq, tag)); + } + std::unique_ptr< ::grpc::ClientAsyncReader< ::viam::component::audioin::v1::GetAudioResponse>> PrepareAsyncGetAudio(::grpc::ClientContext* context, const ::viam::component::audioin::v1::GetAudioRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncReader< ::viam::component::audioin::v1::GetAudioResponse>>(PrepareAsyncGetAudioRaw(context, request, cq)); + } + ::grpc::Status GetProperties(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest& request, ::viam::common::v1::GetPropertiesResponse* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::viam::common::v1::GetPropertiesResponse>> AsyncGetProperties(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::viam::common::v1::GetPropertiesResponse>>(AsyncGetPropertiesRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::viam::common::v1::GetPropertiesResponse>> PrepareAsyncGetProperties(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::viam::common::v1::GetPropertiesResponse>>(PrepareAsyncGetPropertiesRaw(context, request, cq)); + } + ::grpc::Status DoCommand(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest& request, ::viam::common::v1::DoCommandResponse* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::viam::common::v1::DoCommandResponse>> AsyncDoCommand(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::viam::common::v1::DoCommandResponse>>(AsyncDoCommandRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::viam::common::v1::DoCommandResponse>> PrepareAsyncDoCommand(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::viam::common::v1::DoCommandResponse>>(PrepareAsyncDoCommandRaw(context, request, cq)); + } + ::grpc::Status GetGeometries(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest& request, ::viam::common::v1::GetGeometriesResponse* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::viam::common::v1::GetGeometriesResponse>> AsyncGetGeometries(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::viam::common::v1::GetGeometriesResponse>>(AsyncGetGeometriesRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::viam::common::v1::GetGeometriesResponse>> PrepareAsyncGetGeometries(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::viam::common::v1::GetGeometriesResponse>>(PrepareAsyncGetGeometriesRaw(context, request, cq)); + } + class async final : + public StubInterface::async_interface { + public: + void GetAudio(::grpc::ClientContext* context, const ::viam::component::audioin::v1::GetAudioRequest* request, ::grpc::ClientReadReactor< ::viam::component::audioin::v1::GetAudioResponse>* reactor) override; + void GetProperties(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest* request, ::viam::common::v1::GetPropertiesResponse* response, std::function) override; + void GetProperties(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest* request, ::viam::common::v1::GetPropertiesResponse* response, ::grpc::ClientUnaryReactor* reactor) override; + void DoCommand(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest* request, ::viam::common::v1::DoCommandResponse* response, std::function) override; + void DoCommand(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest* request, ::viam::common::v1::DoCommandResponse* response, ::grpc::ClientUnaryReactor* reactor) override; + void GetGeometries(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest* request, ::viam::common::v1::GetGeometriesResponse* response, std::function) override; + void GetGeometries(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest* request, ::viam::common::v1::GetGeometriesResponse* response, ::grpc::ClientUnaryReactor* reactor) override; + private: + friend class Stub; + explicit async(Stub* stub): stub_(stub) { } + Stub* stub() { return stub_; } + Stub* stub_; + }; + class async* async() override { return &async_stub_; } + + private: + std::shared_ptr< ::grpc::ChannelInterface> channel_; + class async async_stub_{this}; + ::grpc::ClientReader< ::viam::component::audioin::v1::GetAudioResponse>* GetAudioRaw(::grpc::ClientContext* context, const ::viam::component::audioin::v1::GetAudioRequest& request) override; + ::grpc::ClientAsyncReader< ::viam::component::audioin::v1::GetAudioResponse>* AsyncGetAudioRaw(::grpc::ClientContext* context, const ::viam::component::audioin::v1::GetAudioRequest& request, ::grpc::CompletionQueue* cq, void* tag) override; + ::grpc::ClientAsyncReader< ::viam::component::audioin::v1::GetAudioResponse>* PrepareAsyncGetAudioRaw(::grpc::ClientContext* context, const ::viam::component::audioin::v1::GetAudioRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::viam::common::v1::GetPropertiesResponse>* AsyncGetPropertiesRaw(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::viam::common::v1::GetPropertiesResponse>* PrepareAsyncGetPropertiesRaw(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::viam::common::v1::DoCommandResponse>* AsyncDoCommandRaw(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::viam::common::v1::DoCommandResponse>* PrepareAsyncDoCommandRaw(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::viam::common::v1::GetGeometriesResponse>* AsyncGetGeometriesRaw(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::viam::common::v1::GetGeometriesResponse>* PrepareAsyncGetGeometriesRaw(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest& request, ::grpc::CompletionQueue* cq) override; + const ::grpc::internal::RpcMethod rpcmethod_GetAudio_; + const ::grpc::internal::RpcMethod rpcmethod_GetProperties_; + const ::grpc::internal::RpcMethod rpcmethod_DoCommand_; + const ::grpc::internal::RpcMethod rpcmethod_GetGeometries_; + }; + static std::unique_ptr NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); + + class Service : public ::grpc::Service { + public: + Service(); + virtual ~Service(); + // GetAudio streams audio from the given audioin + virtual ::grpc::Status GetAudio(::grpc::ServerContext* context, const ::viam::component::audioin::v1::GetAudioRequest* request, ::grpc::ServerWriter< ::viam::component::audioin::v1::GetAudioResponse>* writer); + // GetProperties returns the properties of the audioin + virtual ::grpc::Status GetProperties(::grpc::ServerContext* context, const ::viam::common::v1::GetPropertiesRequest* request, ::viam::common::v1::GetPropertiesResponse* response); + // DoCommand sends/receives arbitrary commands + virtual ::grpc::Status DoCommand(::grpc::ServerContext* context, const ::viam::common::v1::DoCommandRequest* request, ::viam::common::v1::DoCommandResponse* response); + // GetGeometries returns the geometries of the component in their current configuration + virtual ::grpc::Status GetGeometries(::grpc::ServerContext* context, const ::viam::common::v1::GetGeometriesRequest* request, ::viam::common::v1::GetGeometriesResponse* response); + }; + template + class WithAsyncMethod_GetAudio : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_GetAudio() { + ::grpc::Service::MarkMethodAsync(0); + } + ~WithAsyncMethod_GetAudio() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetAudio(::grpc::ServerContext* /*context*/, const ::viam::component::audioin::v1::GetAudioRequest* /*request*/, ::grpc::ServerWriter< ::viam::component::audioin::v1::GetAudioResponse>* /*writer*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestGetAudio(::grpc::ServerContext* context, ::viam::component::audioin::v1::GetAudioRequest* request, ::grpc::ServerAsyncWriter< ::viam::component::audioin::v1::GetAudioResponse>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncServerStreaming(0, context, request, writer, new_call_cq, notification_cq, tag); + } + }; + template + class WithAsyncMethod_GetProperties : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_GetProperties() { + ::grpc::Service::MarkMethodAsync(1); + } + ~WithAsyncMethod_GetProperties() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetProperties(::grpc::ServerContext* /*context*/, const ::viam::common::v1::GetPropertiesRequest* /*request*/, ::viam::common::v1::GetPropertiesResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestGetProperties(::grpc::ServerContext* context, ::viam::common::v1::GetPropertiesRequest* request, ::grpc::ServerAsyncResponseWriter< ::viam::common::v1::GetPropertiesResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(1, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithAsyncMethod_DoCommand : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_DoCommand() { + ::grpc::Service::MarkMethodAsync(2); + } + ~WithAsyncMethod_DoCommand() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status DoCommand(::grpc::ServerContext* /*context*/, const ::viam::common::v1::DoCommandRequest* /*request*/, ::viam::common::v1::DoCommandResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestDoCommand(::grpc::ServerContext* context, ::viam::common::v1::DoCommandRequest* request, ::grpc::ServerAsyncResponseWriter< ::viam::common::v1::DoCommandResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(2, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithAsyncMethod_GetGeometries : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_GetGeometries() { + ::grpc::Service::MarkMethodAsync(3); + } + ~WithAsyncMethod_GetGeometries() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetGeometries(::grpc::ServerContext* /*context*/, const ::viam::common::v1::GetGeometriesRequest* /*request*/, ::viam::common::v1::GetGeometriesResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestGetGeometries(::grpc::ServerContext* context, ::viam::common::v1::GetGeometriesRequest* request, ::grpc::ServerAsyncResponseWriter< ::viam::common::v1::GetGeometriesResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(3, context, request, response, new_call_cq, notification_cq, tag); + } + }; + typedef WithAsyncMethod_GetAudio > > > AsyncService; + template + class WithCallbackMethod_GetAudio : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithCallbackMethod_GetAudio() { + ::grpc::Service::MarkMethodCallback(0, + new ::grpc::internal::CallbackServerStreamingHandler< ::viam::component::audioin::v1::GetAudioRequest, ::viam::component::audioin::v1::GetAudioResponse>( + [this]( + ::grpc::CallbackServerContext* context, const ::viam::component::audioin::v1::GetAudioRequest* request) { return this->GetAudio(context, request); })); + } + ~WithCallbackMethod_GetAudio() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetAudio(::grpc::ServerContext* /*context*/, const ::viam::component::audioin::v1::GetAudioRequest* /*request*/, ::grpc::ServerWriter< ::viam::component::audioin::v1::GetAudioResponse>* /*writer*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerWriteReactor< ::viam::component::audioin::v1::GetAudioResponse>* GetAudio( + ::grpc::CallbackServerContext* /*context*/, const ::viam::component::audioin::v1::GetAudioRequest* /*request*/) { return nullptr; } + }; + template + class WithCallbackMethod_GetProperties : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithCallbackMethod_GetProperties() { + ::grpc::Service::MarkMethodCallback(1, + new ::grpc::internal::CallbackUnaryHandler< ::viam::common::v1::GetPropertiesRequest, ::viam::common::v1::GetPropertiesResponse>( + [this]( + ::grpc::CallbackServerContext* context, const ::viam::common::v1::GetPropertiesRequest* request, ::viam::common::v1::GetPropertiesResponse* response) { return this->GetProperties(context, request, response); }));} + void SetMessageAllocatorFor_GetProperties( + ::grpc::MessageAllocator< ::viam::common::v1::GetPropertiesRequest, ::viam::common::v1::GetPropertiesResponse>* allocator) { + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(1); + static_cast<::grpc::internal::CallbackUnaryHandler< ::viam::common::v1::GetPropertiesRequest, ::viam::common::v1::GetPropertiesResponse>*>(handler) + ->SetMessageAllocator(allocator); + } + ~WithCallbackMethod_GetProperties() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetProperties(::grpc::ServerContext* /*context*/, const ::viam::common::v1::GetPropertiesRequest* /*request*/, ::viam::common::v1::GetPropertiesResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* GetProperties( + ::grpc::CallbackServerContext* /*context*/, const ::viam::common::v1::GetPropertiesRequest* /*request*/, ::viam::common::v1::GetPropertiesResponse* /*response*/) { return nullptr; } + }; + template + class WithCallbackMethod_DoCommand : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithCallbackMethod_DoCommand() { + ::grpc::Service::MarkMethodCallback(2, + new ::grpc::internal::CallbackUnaryHandler< ::viam::common::v1::DoCommandRequest, ::viam::common::v1::DoCommandResponse>( + [this]( + ::grpc::CallbackServerContext* context, const ::viam::common::v1::DoCommandRequest* request, ::viam::common::v1::DoCommandResponse* response) { return this->DoCommand(context, request, response); }));} + void SetMessageAllocatorFor_DoCommand( + ::grpc::MessageAllocator< ::viam::common::v1::DoCommandRequest, ::viam::common::v1::DoCommandResponse>* allocator) { + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(2); + static_cast<::grpc::internal::CallbackUnaryHandler< ::viam::common::v1::DoCommandRequest, ::viam::common::v1::DoCommandResponse>*>(handler) + ->SetMessageAllocator(allocator); + } + ~WithCallbackMethod_DoCommand() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status DoCommand(::grpc::ServerContext* /*context*/, const ::viam::common::v1::DoCommandRequest* /*request*/, ::viam::common::v1::DoCommandResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* DoCommand( + ::grpc::CallbackServerContext* /*context*/, const ::viam::common::v1::DoCommandRequest* /*request*/, ::viam::common::v1::DoCommandResponse* /*response*/) { return nullptr; } + }; + template + class WithCallbackMethod_GetGeometries : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithCallbackMethod_GetGeometries() { + ::grpc::Service::MarkMethodCallback(3, + new ::grpc::internal::CallbackUnaryHandler< ::viam::common::v1::GetGeometriesRequest, ::viam::common::v1::GetGeometriesResponse>( + [this]( + ::grpc::CallbackServerContext* context, const ::viam::common::v1::GetGeometriesRequest* request, ::viam::common::v1::GetGeometriesResponse* response) { return this->GetGeometries(context, request, response); }));} + void SetMessageAllocatorFor_GetGeometries( + ::grpc::MessageAllocator< ::viam::common::v1::GetGeometriesRequest, ::viam::common::v1::GetGeometriesResponse>* allocator) { + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(3); + static_cast<::grpc::internal::CallbackUnaryHandler< ::viam::common::v1::GetGeometriesRequest, ::viam::common::v1::GetGeometriesResponse>*>(handler) + ->SetMessageAllocator(allocator); + } + ~WithCallbackMethod_GetGeometries() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetGeometries(::grpc::ServerContext* /*context*/, const ::viam::common::v1::GetGeometriesRequest* /*request*/, ::viam::common::v1::GetGeometriesResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* GetGeometries( + ::grpc::CallbackServerContext* /*context*/, const ::viam::common::v1::GetGeometriesRequest* /*request*/, ::viam::common::v1::GetGeometriesResponse* /*response*/) { return nullptr; } + }; + typedef WithCallbackMethod_GetAudio > > > CallbackService; + typedef CallbackService ExperimentalCallbackService; + template + class WithGenericMethod_GetAudio : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_GetAudio() { + ::grpc::Service::MarkMethodGeneric(0); + } + ~WithGenericMethod_GetAudio() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetAudio(::grpc::ServerContext* /*context*/, const ::viam::component::audioin::v1::GetAudioRequest* /*request*/, ::grpc::ServerWriter< ::viam::component::audioin::v1::GetAudioResponse>* /*writer*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithGenericMethod_GetProperties : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_GetProperties() { + ::grpc::Service::MarkMethodGeneric(1); + } + ~WithGenericMethod_GetProperties() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetProperties(::grpc::ServerContext* /*context*/, const ::viam::common::v1::GetPropertiesRequest* /*request*/, ::viam::common::v1::GetPropertiesResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithGenericMethod_DoCommand : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_DoCommand() { + ::grpc::Service::MarkMethodGeneric(2); + } + ~WithGenericMethod_DoCommand() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status DoCommand(::grpc::ServerContext* /*context*/, const ::viam::common::v1::DoCommandRequest* /*request*/, ::viam::common::v1::DoCommandResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithGenericMethod_GetGeometries : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_GetGeometries() { + ::grpc::Service::MarkMethodGeneric(3); + } + ~WithGenericMethod_GetGeometries() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetGeometries(::grpc::ServerContext* /*context*/, const ::viam::common::v1::GetGeometriesRequest* /*request*/, ::viam::common::v1::GetGeometriesResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithRawMethod_GetAudio : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_GetAudio() { + ::grpc::Service::MarkMethodRaw(0); + } + ~WithRawMethod_GetAudio() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetAudio(::grpc::ServerContext* /*context*/, const ::viam::component::audioin::v1::GetAudioRequest* /*request*/, ::grpc::ServerWriter< ::viam::component::audioin::v1::GetAudioResponse>* /*writer*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestGetAudio(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncWriter< ::grpc::ByteBuffer>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncServerStreaming(0, context, request, writer, new_call_cq, notification_cq, tag); + } + }; + template + class WithRawMethod_GetProperties : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_GetProperties() { + ::grpc::Service::MarkMethodRaw(1); + } + ~WithRawMethod_GetProperties() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetProperties(::grpc::ServerContext* /*context*/, const ::viam::common::v1::GetPropertiesRequest* /*request*/, ::viam::common::v1::GetPropertiesResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestGetProperties(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(1, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithRawMethod_DoCommand : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_DoCommand() { + ::grpc::Service::MarkMethodRaw(2); + } + ~WithRawMethod_DoCommand() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status DoCommand(::grpc::ServerContext* /*context*/, const ::viam::common::v1::DoCommandRequest* /*request*/, ::viam::common::v1::DoCommandResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestDoCommand(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(2, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithRawMethod_GetGeometries : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_GetGeometries() { + ::grpc::Service::MarkMethodRaw(3); + } + ~WithRawMethod_GetGeometries() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetGeometries(::grpc::ServerContext* /*context*/, const ::viam::common::v1::GetGeometriesRequest* /*request*/, ::viam::common::v1::GetGeometriesResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestGetGeometries(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(3, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithRawCallbackMethod_GetAudio : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawCallbackMethod_GetAudio() { + ::grpc::Service::MarkMethodRawCallback(0, + new ::grpc::internal::CallbackServerStreamingHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + ::grpc::CallbackServerContext* context, const::grpc::ByteBuffer* request) { return this->GetAudio(context, request); })); + } + ~WithRawCallbackMethod_GetAudio() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetAudio(::grpc::ServerContext* /*context*/, const ::viam::component::audioin::v1::GetAudioRequest* /*request*/, ::grpc::ServerWriter< ::viam::component::audioin::v1::GetAudioResponse>* /*writer*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerWriteReactor< ::grpc::ByteBuffer>* GetAudio( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/) { return nullptr; } + }; + template + class WithRawCallbackMethod_GetProperties : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawCallbackMethod_GetProperties() { + ::grpc::Service::MarkMethodRawCallback(1, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->GetProperties(context, request, response); })); + } + ~WithRawCallbackMethod_GetProperties() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetProperties(::grpc::ServerContext* /*context*/, const ::viam::common::v1::GetPropertiesRequest* /*request*/, ::viam::common::v1::GetPropertiesResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* GetProperties( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } + }; + template + class WithRawCallbackMethod_DoCommand : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawCallbackMethod_DoCommand() { + ::grpc::Service::MarkMethodRawCallback(2, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->DoCommand(context, request, response); })); + } + ~WithRawCallbackMethod_DoCommand() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status DoCommand(::grpc::ServerContext* /*context*/, const ::viam::common::v1::DoCommandRequest* /*request*/, ::viam::common::v1::DoCommandResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* DoCommand( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } + }; + template + class WithRawCallbackMethod_GetGeometries : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawCallbackMethod_GetGeometries() { + ::grpc::Service::MarkMethodRawCallback(3, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->GetGeometries(context, request, response); })); + } + ~WithRawCallbackMethod_GetGeometries() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetGeometries(::grpc::ServerContext* /*context*/, const ::viam::common::v1::GetGeometriesRequest* /*request*/, ::viam::common::v1::GetGeometriesResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* GetGeometries( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } + }; + template + class WithStreamedUnaryMethod_GetProperties : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithStreamedUnaryMethod_GetProperties() { + ::grpc::Service::MarkMethodStreamed(1, + new ::grpc::internal::StreamedUnaryHandler< + ::viam::common::v1::GetPropertiesRequest, ::viam::common::v1::GetPropertiesResponse>( + [this](::grpc::ServerContext* context, + ::grpc::ServerUnaryStreamer< + ::viam::common::v1::GetPropertiesRequest, ::viam::common::v1::GetPropertiesResponse>* streamer) { + return this->StreamedGetProperties(context, + streamer); + })); + } + ~WithStreamedUnaryMethod_GetProperties() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status GetProperties(::grpc::ServerContext* /*context*/, const ::viam::common::v1::GetPropertiesRequest* /*request*/, ::viam::common::v1::GetPropertiesResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedGetProperties(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::viam::common::v1::GetPropertiesRequest,::viam::common::v1::GetPropertiesResponse>* server_unary_streamer) = 0; + }; + template + class WithStreamedUnaryMethod_DoCommand : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithStreamedUnaryMethod_DoCommand() { + ::grpc::Service::MarkMethodStreamed(2, + new ::grpc::internal::StreamedUnaryHandler< + ::viam::common::v1::DoCommandRequest, ::viam::common::v1::DoCommandResponse>( + [this](::grpc::ServerContext* context, + ::grpc::ServerUnaryStreamer< + ::viam::common::v1::DoCommandRequest, ::viam::common::v1::DoCommandResponse>* streamer) { + return this->StreamedDoCommand(context, + streamer); + })); + } + ~WithStreamedUnaryMethod_DoCommand() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status DoCommand(::grpc::ServerContext* /*context*/, const ::viam::common::v1::DoCommandRequest* /*request*/, ::viam::common::v1::DoCommandResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedDoCommand(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::viam::common::v1::DoCommandRequest,::viam::common::v1::DoCommandResponse>* server_unary_streamer) = 0; + }; + template + class WithStreamedUnaryMethod_GetGeometries : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithStreamedUnaryMethod_GetGeometries() { + ::grpc::Service::MarkMethodStreamed(3, + new ::grpc::internal::StreamedUnaryHandler< + ::viam::common::v1::GetGeometriesRequest, ::viam::common::v1::GetGeometriesResponse>( + [this](::grpc::ServerContext* context, + ::grpc::ServerUnaryStreamer< + ::viam::common::v1::GetGeometriesRequest, ::viam::common::v1::GetGeometriesResponse>* streamer) { + return this->StreamedGetGeometries(context, + streamer); + })); + } + ~WithStreamedUnaryMethod_GetGeometries() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status GetGeometries(::grpc::ServerContext* /*context*/, const ::viam::common::v1::GetGeometriesRequest* /*request*/, ::viam::common::v1::GetGeometriesResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedGetGeometries(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::viam::common::v1::GetGeometriesRequest,::viam::common::v1::GetGeometriesResponse>* server_unary_streamer) = 0; + }; + typedef WithStreamedUnaryMethod_GetProperties > > StreamedUnaryService; + template + class WithSplitStreamingMethod_GetAudio : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithSplitStreamingMethod_GetAudio() { + ::grpc::Service::MarkMethodStreamed(0, + new ::grpc::internal::SplitServerStreamingHandler< + ::viam::component::audioin::v1::GetAudioRequest, ::viam::component::audioin::v1::GetAudioResponse>( + [this](::grpc::ServerContext* context, + ::grpc::ServerSplitStreamer< + ::viam::component::audioin::v1::GetAudioRequest, ::viam::component::audioin::v1::GetAudioResponse>* streamer) { + return this->StreamedGetAudio(context, + streamer); + })); + } + ~WithSplitStreamingMethod_GetAudio() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status GetAudio(::grpc::ServerContext* /*context*/, const ::viam::component::audioin::v1::GetAudioRequest* /*request*/, ::grpc::ServerWriter< ::viam::component::audioin::v1::GetAudioResponse>* /*writer*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with split streamed + virtual ::grpc::Status StreamedGetAudio(::grpc::ServerContext* context, ::grpc::ServerSplitStreamer< ::viam::component::audioin::v1::GetAudioRequest,::viam::component::audioin::v1::GetAudioResponse>* server_split_streamer) = 0; + }; + typedef WithSplitStreamingMethod_GetAudio SplitStreamedService; + typedef WithSplitStreamingMethod_GetAudio > > > StreamedService; +}; + +} // namespace v1 +} // namespace audioin +} // namespace component +} // namespace viam + + +#endif // GRPC_component_2faudioin_2fv1_2faudioin_2eproto__INCLUDED diff --git a/src/viam/api/component/audioin/v1/audioin.pb.cc b/src/viam/api/component/audioin/v1/audioin.pb.cc new file mode 100644 index 000000000..e8fdbf8e6 --- /dev/null +++ b/src/viam/api/component/audioin/v1/audioin.pb.cc @@ -0,0 +1,1175 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: component/audioin/v1/audioin.proto + +#include "component/audioin/v1/audioin.pb.h" + +#include + +#include +#include +#include +#include +#include +#include +#include +// @@protoc_insertion_point(includes) +#include + +PROTOBUF_PRAGMA_INIT_SEG + +namespace _pb = ::PROTOBUF_NAMESPACE_ID; +namespace _pbi = _pb::internal; + +namespace viam { +namespace component { +namespace audioin { +namespace v1 { +PROTOBUF_CONSTEXPR GetAudioRequest::GetAudioRequest( + ::_pbi::ConstantInitialized) + : name_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}) + , codec_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}) + , request_id_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}) + , extra_(nullptr) + , previous_timestamp_nanoseconds_(int64_t{0}) + , duration_seconds_(0){} +struct GetAudioRequestDefaultTypeInternal { + PROTOBUF_CONSTEXPR GetAudioRequestDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~GetAudioRequestDefaultTypeInternal() {} + union { + GetAudioRequest _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetAudioRequestDefaultTypeInternal _GetAudioRequest_default_instance_; +PROTOBUF_CONSTEXPR GetAudioResponse::GetAudioResponse( + ::_pbi::ConstantInitialized) + : request_id_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}) + , audio_(nullptr){} +struct GetAudioResponseDefaultTypeInternal { + PROTOBUF_CONSTEXPR GetAudioResponseDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~GetAudioResponseDefaultTypeInternal() {} + union { + GetAudioResponse _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetAudioResponseDefaultTypeInternal _GetAudioResponse_default_instance_; +PROTOBUF_CONSTEXPR AudioChunk::AudioChunk( + ::_pbi::ConstantInitialized) + : audio_data_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}) + , audio_info_(nullptr) + , start_timestamp_nanoseconds_(int64_t{0}) + , end_timestamp_nanoseconds_(int64_t{0}) + , sequence_(0){} +struct AudioChunkDefaultTypeInternal { + PROTOBUF_CONSTEXPR AudioChunkDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~AudioChunkDefaultTypeInternal() {} + union { + AudioChunk _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 AudioChunkDefaultTypeInternal _AudioChunk_default_instance_; +} // namespace v1 +} // namespace audioin +} // namespace component +} // namespace viam +static ::_pb::Metadata file_level_metadata_component_2faudioin_2fv1_2faudioin_2eproto[3]; +static constexpr ::_pb::EnumDescriptor const** file_level_enum_descriptors_component_2faudioin_2fv1_2faudioin_2eproto = nullptr; +static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_component_2faudioin_2fv1_2faudioin_2eproto = nullptr; + +const uint32_t TableStruct_component_2faudioin_2fv1_2faudioin_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::viam::component::audioin::v1::GetAudioRequest, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::viam::component::audioin::v1::GetAudioRequest, name_), + PROTOBUF_FIELD_OFFSET(::viam::component::audioin::v1::GetAudioRequest, duration_seconds_), + PROTOBUF_FIELD_OFFSET(::viam::component::audioin::v1::GetAudioRequest, codec_), + PROTOBUF_FIELD_OFFSET(::viam::component::audioin::v1::GetAudioRequest, request_id_), + PROTOBUF_FIELD_OFFSET(::viam::component::audioin::v1::GetAudioRequest, previous_timestamp_nanoseconds_), + PROTOBUF_FIELD_OFFSET(::viam::component::audioin::v1::GetAudioRequest, extra_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::viam::component::audioin::v1::GetAudioResponse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::viam::component::audioin::v1::GetAudioResponse, audio_), + PROTOBUF_FIELD_OFFSET(::viam::component::audioin::v1::GetAudioResponse, request_id_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::viam::component::audioin::v1::AudioChunk, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::viam::component::audioin::v1::AudioChunk, audio_data_), + PROTOBUF_FIELD_OFFSET(::viam::component::audioin::v1::AudioChunk, audio_info_), + PROTOBUF_FIELD_OFFSET(::viam::component::audioin::v1::AudioChunk, start_timestamp_nanoseconds_), + PROTOBUF_FIELD_OFFSET(::viam::component::audioin::v1::AudioChunk, end_timestamp_nanoseconds_), + PROTOBUF_FIELD_OFFSET(::viam::component::audioin::v1::AudioChunk, sequence_), +}; +static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + { 0, -1, -1, sizeof(::viam::component::audioin::v1::GetAudioRequest)}, + { 12, -1, -1, sizeof(::viam::component::audioin::v1::GetAudioResponse)}, + { 20, -1, -1, sizeof(::viam::component::audioin::v1::AudioChunk)}, +}; + +static const ::_pb::Message* const file_default_instances[] = { + &::viam::component::audioin::v1::_GetAudioRequest_default_instance_._instance, + &::viam::component::audioin::v1::_GetAudioResponse_default_instance_._instance, + &::viam::component::audioin::v1::_AudioChunk_default_instance_._instance, +}; + +const char descriptor_table_protodef_component_2faudioin_2fv1_2faudioin_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = + "\n\"component/audioin/v1/audioin.proto\022\031vi" + "am.component.audioin.v1\032\026common/v1/commo" + "n.proto\032\034google/api/annotations.proto\032\034g" + "oogle/protobuf/struct.proto\"\372\001\n\017GetAudio" + "Request\022\022\n\004name\030\001 \001(\tR\004name\022)\n\020duration_" + "seconds\030\002 \001(\002R\017durationSeconds\022\024\n\005codec\030" + "\003 \001(\tR\005codec\022\035\n\nrequest_id\030\004 \001(\tR\treques" + "tId\022D\n\036previous_timestamp_nanoseconds\030\005 " + "\001(\003R\034previousTimestampNanoseconds\022-\n\005ext" + "ra\030c \001(\0132\027.google.protobuf.StructR\005extra" + "\"n\n\020GetAudioResponse\022;\n\005audio\030\001 \001(\0132%.vi" + "am.component.audioin.v1.AudioChunkR\005audi" + "o\022\035\n\nrequest_id\030\002 \001(\tR\trequestId\"\375\001\n\nAud" + "ioChunk\022\035\n\naudio_data\030\001 \001(\014R\taudioData\0228" + "\n\naudio_info\030\002 \001(\0132\031.viam.common.v1.Audi" + "oInfoR\taudioInfo\022>\n\033start_timestamp_nano" + "seconds\030\003 \001(\003R\031startTimestampNanoseconds" + "\022:\n\031end_timestamp_nanoseconds\030\004 \001(\003R\027end" + "TimestampNanoseconds\022\032\n\010sequence\030\005 \001(\005R\010" + "sequence2\356\004\n\016AudioInService\022\236\001\n\010GetAudio" + "\022*.viam.component.audioin.v1.GetAudioReq" + "uest\032+.viam.component.audioin.v1.GetAudi" + "oResponse\"7\202\323\344\223\0021\022//viam/api/v1/componen" + "t/audioin/{name}/get_audio0\001\022\226\001\n\rGetProp" + "erties\022$.viam.common.v1.GetPropertiesReq" + "uest\032%.viam.common.v1.GetPropertiesRespo" + "nse\"8\202\323\344\223\0022\0220/viam/api/v1/component/audi" + "oin/{name}/properties\022\210\001\n\tDoCommand\022 .vi" + "am.common.v1.DoCommandRequest\032!.viam.com" + "mon.v1.DoCommandResponse\"6\202\323\344\223\0020\"./viam/" + "api/v1/service/audioin/{name}/do_command" + "\022\226\001\n\rGetGeometries\022$.viam.common.v1.GetG" + "eometriesRequest\032%.viam.common.v1.GetGeo" + "metriesResponse\"8\202\323\344\223\0022\0220/viam/api/v1/co" + "mponent/audioin/{name}/geometriesBE\n\035com" + ".viam.component.audioin.v1Z$go.viam.com/" + "api/component/audioin/v1b\006proto3" + ; +static const ::_pbi::DescriptorTable* const descriptor_table_component_2faudioin_2fv1_2faudioin_2eproto_deps[3] = { + &::descriptor_table_common_2fv1_2fcommon_2eproto, + &::descriptor_table_google_2fapi_2fannotations_2eproto, + &::descriptor_table_google_2fprotobuf_2fstruct_2eproto, +}; +static ::_pbi::once_flag descriptor_table_component_2faudioin_2fv1_2faudioin_2eproto_once; +const ::_pbi::DescriptorTable descriptor_table_component_2faudioin_2fv1_2faudioin_2eproto = { + false, false, 1472, descriptor_table_protodef_component_2faudioin_2fv1_2faudioin_2eproto, + "component/audioin/v1/audioin.proto", + &descriptor_table_component_2faudioin_2fv1_2faudioin_2eproto_once, descriptor_table_component_2faudioin_2fv1_2faudioin_2eproto_deps, 3, 3, + schemas, file_default_instances, TableStruct_component_2faudioin_2fv1_2faudioin_2eproto::offsets, + file_level_metadata_component_2faudioin_2fv1_2faudioin_2eproto, file_level_enum_descriptors_component_2faudioin_2fv1_2faudioin_2eproto, + file_level_service_descriptors_component_2faudioin_2fv1_2faudioin_2eproto, +}; +PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_component_2faudioin_2fv1_2faudioin_2eproto_getter() { + return &descriptor_table_component_2faudioin_2fv1_2faudioin_2eproto; +} + +// Force running AddDescriptors() at dynamic initialization time. +PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::_pbi::AddDescriptorsRunner dynamic_init_dummy_component_2faudioin_2fv1_2faudioin_2eproto(&descriptor_table_component_2faudioin_2fv1_2faudioin_2eproto); +namespace viam { +namespace component { +namespace audioin { +namespace v1 { + +// =================================================================== + +class GetAudioRequest::_Internal { + public: + static const ::PROTOBUF_NAMESPACE_ID::Struct& extra(const GetAudioRequest* msg); +}; + +const ::PROTOBUF_NAMESPACE_ID::Struct& +GetAudioRequest::_Internal::extra(const GetAudioRequest* msg) { + return *msg->extra_; +} +void GetAudioRequest::clear_extra() { + if (GetArenaForAllocation() == nullptr && extra_ != nullptr) { + delete extra_; + } + extra_ = nullptr; +} +GetAudioRequest::GetAudioRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(); + // @@protoc_insertion_point(arena_constructor:viam.component.audioin.v1.GetAudioRequest) +} +GetAudioRequest::GetAudioRequest(const GetAudioRequest& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + name_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + name_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_name().empty()) { + name_.Set(from._internal_name(), + GetArenaForAllocation()); + } + codec_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + codec_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_codec().empty()) { + codec_.Set(from._internal_codec(), + GetArenaForAllocation()); + } + request_id_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + request_id_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_request_id().empty()) { + request_id_.Set(from._internal_request_id(), + GetArenaForAllocation()); + } + if (from._internal_has_extra()) { + extra_ = new ::PROTOBUF_NAMESPACE_ID::Struct(*from.extra_); + } else { + extra_ = nullptr; + } + ::memcpy(&previous_timestamp_nanoseconds_, &from.previous_timestamp_nanoseconds_, + static_cast(reinterpret_cast(&duration_seconds_) - + reinterpret_cast(&previous_timestamp_nanoseconds_)) + sizeof(duration_seconds_)); + // @@protoc_insertion_point(copy_constructor:viam.component.audioin.v1.GetAudioRequest) +} + +inline void GetAudioRequest::SharedCtor() { +name_.InitDefault(); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + name_.Set("", GetArenaForAllocation()); +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +codec_.InitDefault(); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + codec_.Set("", GetArenaForAllocation()); +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +request_id_.InitDefault(); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + request_id_.Set("", GetArenaForAllocation()); +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +::memset(reinterpret_cast(this) + static_cast( + reinterpret_cast(&extra_) - reinterpret_cast(this)), + 0, static_cast(reinterpret_cast(&duration_seconds_) - + reinterpret_cast(&extra_)) + sizeof(duration_seconds_)); +} + +GetAudioRequest::~GetAudioRequest() { + // @@protoc_insertion_point(destructor:viam.component.audioin.v1.GetAudioRequest) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void GetAudioRequest::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + name_.Destroy(); + codec_.Destroy(); + request_id_.Destroy(); + if (this != internal_default_instance()) delete extra_; +} + +void GetAudioRequest::SetCachedSize(int size) const { + _cached_size_.Set(size); +} + +void GetAudioRequest::Clear() { +// @@protoc_insertion_point(message_clear_start:viam.component.audioin.v1.GetAudioRequest) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + name_.ClearToEmpty(); + codec_.ClearToEmpty(); + request_id_.ClearToEmpty(); + if (GetArenaForAllocation() == nullptr && extra_ != nullptr) { + delete extra_; + } + extra_ = nullptr; + ::memset(&previous_timestamp_nanoseconds_, 0, static_cast( + reinterpret_cast(&duration_seconds_) - + reinterpret_cast(&previous_timestamp_nanoseconds_)) + sizeof(duration_seconds_)); + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* GetAudioRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // string name = 1 [json_name = "name"]; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_name(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "viam.component.audioin.v1.GetAudioRequest.name")); + } else + goto handle_unusual; + continue; + // float duration_seconds = 2 [json_name = "durationSeconds"]; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 21)) { + duration_seconds_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad(ptr); + ptr += sizeof(float); + } else + goto handle_unusual; + continue; + // string codec = 3 [json_name = "codec"]; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 26)) { + auto str = _internal_mutable_codec(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "viam.component.audioin.v1.GetAudioRequest.codec")); + } else + goto handle_unusual; + continue; + // string request_id = 4 [json_name = "requestId"]; + case 4: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 34)) { + auto str = _internal_mutable_request_id(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "viam.component.audioin.v1.GetAudioRequest.request_id")); + } else + goto handle_unusual; + continue; + // int64 previous_timestamp_nanoseconds = 5 [json_name = "previousTimestampNanoseconds"]; + case 5: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 40)) { + previous_timestamp_nanoseconds_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // .google.protobuf.Struct extra = 99 [json_name = "extra"]; + case 99: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 26)) { + ptr = ctx->ParseMessage(_internal_mutable_extra(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* GetAudioRequest::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:viam.component.audioin.v1.GetAudioRequest) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // string name = 1 [json_name = "name"]; + if (!this->_internal_name().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_name().data(), static_cast(this->_internal_name().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "viam.component.audioin.v1.GetAudioRequest.name"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_name(), target); + } + + // float duration_seconds = 2 [json_name = "durationSeconds"]; + static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size."); + float tmp_duration_seconds = this->_internal_duration_seconds(); + uint32_t raw_duration_seconds; + memcpy(&raw_duration_seconds, &tmp_duration_seconds, sizeof(tmp_duration_seconds)); + if (raw_duration_seconds != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteFloatToArray(2, this->_internal_duration_seconds(), target); + } + + // string codec = 3 [json_name = "codec"]; + if (!this->_internal_codec().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_codec().data(), static_cast(this->_internal_codec().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "viam.component.audioin.v1.GetAudioRequest.codec"); + target = stream->WriteStringMaybeAliased( + 3, this->_internal_codec(), target); + } + + // string request_id = 4 [json_name = "requestId"]; + if (!this->_internal_request_id().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_request_id().data(), static_cast(this->_internal_request_id().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "viam.component.audioin.v1.GetAudioRequest.request_id"); + target = stream->WriteStringMaybeAliased( + 4, this->_internal_request_id(), target); + } + + // int64 previous_timestamp_nanoseconds = 5 [json_name = "previousTimestampNanoseconds"]; + if (this->_internal_previous_timestamp_nanoseconds() != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteInt64ToArray(5, this->_internal_previous_timestamp_nanoseconds(), target); + } + + // .google.protobuf.Struct extra = 99 [json_name = "extra"]; + if (this->_internal_has_extra()) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(99, _Internal::extra(this), + _Internal::extra(this).GetCachedSize(), target, stream); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:viam.component.audioin.v1.GetAudioRequest) + return target; +} + +size_t GetAudioRequest::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:viam.component.audioin.v1.GetAudioRequest) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string name = 1 [json_name = "name"]; + if (!this->_internal_name().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_name()); + } + + // string codec = 3 [json_name = "codec"]; + if (!this->_internal_codec().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_codec()); + } + + // string request_id = 4 [json_name = "requestId"]; + if (!this->_internal_request_id().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_request_id()); + } + + // .google.protobuf.Struct extra = 99 [json_name = "extra"]; + if (this->_internal_has_extra()) { + total_size += 2 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *extra_); + } + + // int64 previous_timestamp_nanoseconds = 5 [json_name = "previousTimestampNanoseconds"]; + if (this->_internal_previous_timestamp_nanoseconds() != 0) { + total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_previous_timestamp_nanoseconds()); + } + + // float duration_seconds = 2 [json_name = "durationSeconds"]; + static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size."); + float tmp_duration_seconds = this->_internal_duration_seconds(); + uint32_t raw_duration_seconds; + memcpy(&raw_duration_seconds, &tmp_duration_seconds, sizeof(tmp_duration_seconds)); + if (raw_duration_seconds != 0) { + total_size += 1 + 4; + } + + return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData GetAudioRequest::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck, + GetAudioRequest::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetAudioRequest::GetClassData() const { return &_class_data_; } + +void GetAudioRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, + const ::PROTOBUF_NAMESPACE_ID::Message& from) { + static_cast(to)->MergeFrom( + static_cast(from)); +} + + +void GetAudioRequest::MergeFrom(const GetAudioRequest& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:viam.component.audioin.v1.GetAudioRequest) + GOOGLE_DCHECK_NE(&from, this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_name().empty()) { + _internal_set_name(from._internal_name()); + } + if (!from._internal_codec().empty()) { + _internal_set_codec(from._internal_codec()); + } + if (!from._internal_request_id().empty()) { + _internal_set_request_id(from._internal_request_id()); + } + if (from._internal_has_extra()) { + _internal_mutable_extra()->::PROTOBUF_NAMESPACE_ID::Struct::MergeFrom(from._internal_extra()); + } + if (from._internal_previous_timestamp_nanoseconds() != 0) { + _internal_set_previous_timestamp_nanoseconds(from._internal_previous_timestamp_nanoseconds()); + } + static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size."); + float tmp_duration_seconds = from._internal_duration_seconds(); + uint32_t raw_duration_seconds; + memcpy(&raw_duration_seconds, &tmp_duration_seconds, sizeof(tmp_duration_seconds)); + if (raw_duration_seconds != 0) { + _internal_set_duration_seconds(from._internal_duration_seconds()); + } + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void GetAudioRequest::CopyFrom(const GetAudioRequest& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:viam.component.audioin.v1.GetAudioRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool GetAudioRequest::IsInitialized() const { + return true; +} + +void GetAudioRequest::InternalSwap(GetAudioRequest* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &name_, lhs_arena, + &other->name_, rhs_arena + ); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &codec_, lhs_arena, + &other->codec_, rhs_arena + ); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &request_id_, lhs_arena, + &other->request_id_, rhs_arena + ); + ::PROTOBUF_NAMESPACE_ID::internal::memswap< + PROTOBUF_FIELD_OFFSET(GetAudioRequest, duration_seconds_) + + sizeof(GetAudioRequest::duration_seconds_) + - PROTOBUF_FIELD_OFFSET(GetAudioRequest, extra_)>( + reinterpret_cast(&extra_), + reinterpret_cast(&other->extra_)); +} + +::PROTOBUF_NAMESPACE_ID::Metadata GetAudioRequest::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_component_2faudioin_2fv1_2faudioin_2eproto_getter, &descriptor_table_component_2faudioin_2fv1_2faudioin_2eproto_once, + file_level_metadata_component_2faudioin_2fv1_2faudioin_2eproto[0]); +} + +// =================================================================== + +class GetAudioResponse::_Internal { + public: + static const ::viam::component::audioin::v1::AudioChunk& audio(const GetAudioResponse* msg); +}; + +const ::viam::component::audioin::v1::AudioChunk& +GetAudioResponse::_Internal::audio(const GetAudioResponse* msg) { + return *msg->audio_; +} +GetAudioResponse::GetAudioResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(); + // @@protoc_insertion_point(arena_constructor:viam.component.audioin.v1.GetAudioResponse) +} +GetAudioResponse::GetAudioResponse(const GetAudioResponse& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + request_id_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + request_id_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_request_id().empty()) { + request_id_.Set(from._internal_request_id(), + GetArenaForAllocation()); + } + if (from._internal_has_audio()) { + audio_ = new ::viam::component::audioin::v1::AudioChunk(*from.audio_); + } else { + audio_ = nullptr; + } + // @@protoc_insertion_point(copy_constructor:viam.component.audioin.v1.GetAudioResponse) +} + +inline void GetAudioResponse::SharedCtor() { +request_id_.InitDefault(); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + request_id_.Set("", GetArenaForAllocation()); +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +audio_ = nullptr; +} + +GetAudioResponse::~GetAudioResponse() { + // @@protoc_insertion_point(destructor:viam.component.audioin.v1.GetAudioResponse) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void GetAudioResponse::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + request_id_.Destroy(); + if (this != internal_default_instance()) delete audio_; +} + +void GetAudioResponse::SetCachedSize(int size) const { + _cached_size_.Set(size); +} + +void GetAudioResponse::Clear() { +// @@protoc_insertion_point(message_clear_start:viam.component.audioin.v1.GetAudioResponse) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + request_id_.ClearToEmpty(); + if (GetArenaForAllocation() == nullptr && audio_ != nullptr) { + delete audio_; + } + audio_ = nullptr; + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* GetAudioResponse::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // .viam.component.audioin.v1.AudioChunk audio = 1 [json_name = "audio"]; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + ptr = ctx->ParseMessage(_internal_mutable_audio(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // string request_id = 2 [json_name = "requestId"]; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { + auto str = _internal_mutable_request_id(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "viam.component.audioin.v1.GetAudioResponse.request_id")); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* GetAudioResponse::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:viam.component.audioin.v1.GetAudioResponse) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // .viam.component.audioin.v1.AudioChunk audio = 1 [json_name = "audio"]; + if (this->_internal_has_audio()) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(1, _Internal::audio(this), + _Internal::audio(this).GetCachedSize(), target, stream); + } + + // string request_id = 2 [json_name = "requestId"]; + if (!this->_internal_request_id().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_request_id().data(), static_cast(this->_internal_request_id().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "viam.component.audioin.v1.GetAudioResponse.request_id"); + target = stream->WriteStringMaybeAliased( + 2, this->_internal_request_id(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:viam.component.audioin.v1.GetAudioResponse) + return target; +} + +size_t GetAudioResponse::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:viam.component.audioin.v1.GetAudioResponse) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string request_id = 2 [json_name = "requestId"]; + if (!this->_internal_request_id().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_request_id()); + } + + // .viam.component.audioin.v1.AudioChunk audio = 1 [json_name = "audio"]; + if (this->_internal_has_audio()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *audio_); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData GetAudioResponse::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck, + GetAudioResponse::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetAudioResponse::GetClassData() const { return &_class_data_; } + +void GetAudioResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, + const ::PROTOBUF_NAMESPACE_ID::Message& from) { + static_cast(to)->MergeFrom( + static_cast(from)); +} + + +void GetAudioResponse::MergeFrom(const GetAudioResponse& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:viam.component.audioin.v1.GetAudioResponse) + GOOGLE_DCHECK_NE(&from, this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_request_id().empty()) { + _internal_set_request_id(from._internal_request_id()); + } + if (from._internal_has_audio()) { + _internal_mutable_audio()->::viam::component::audioin::v1::AudioChunk::MergeFrom(from._internal_audio()); + } + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void GetAudioResponse::CopyFrom(const GetAudioResponse& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:viam.component.audioin.v1.GetAudioResponse) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool GetAudioResponse::IsInitialized() const { + return true; +} + +void GetAudioResponse::InternalSwap(GetAudioResponse* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &request_id_, lhs_arena, + &other->request_id_, rhs_arena + ); + swap(audio_, other->audio_); +} + +::PROTOBUF_NAMESPACE_ID::Metadata GetAudioResponse::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_component_2faudioin_2fv1_2faudioin_2eproto_getter, &descriptor_table_component_2faudioin_2fv1_2faudioin_2eproto_once, + file_level_metadata_component_2faudioin_2fv1_2faudioin_2eproto[1]); +} + +// =================================================================== + +class AudioChunk::_Internal { + public: + static const ::viam::common::v1::AudioInfo& audio_info(const AudioChunk* msg); +}; + +const ::viam::common::v1::AudioInfo& +AudioChunk::_Internal::audio_info(const AudioChunk* msg) { + return *msg->audio_info_; +} +void AudioChunk::clear_audio_info() { + if (GetArenaForAllocation() == nullptr && audio_info_ != nullptr) { + delete audio_info_; + } + audio_info_ = nullptr; +} +AudioChunk::AudioChunk(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(); + // @@protoc_insertion_point(arena_constructor:viam.component.audioin.v1.AudioChunk) +} +AudioChunk::AudioChunk(const AudioChunk& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + audio_data_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + audio_data_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_audio_data().empty()) { + audio_data_.Set(from._internal_audio_data(), + GetArenaForAllocation()); + } + if (from._internal_has_audio_info()) { + audio_info_ = new ::viam::common::v1::AudioInfo(*from.audio_info_); + } else { + audio_info_ = nullptr; + } + ::memcpy(&start_timestamp_nanoseconds_, &from.start_timestamp_nanoseconds_, + static_cast(reinterpret_cast(&sequence_) - + reinterpret_cast(&start_timestamp_nanoseconds_)) + sizeof(sequence_)); + // @@protoc_insertion_point(copy_constructor:viam.component.audioin.v1.AudioChunk) +} + +inline void AudioChunk::SharedCtor() { +audio_data_.InitDefault(); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + audio_data_.Set("", GetArenaForAllocation()); +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +::memset(reinterpret_cast(this) + static_cast( + reinterpret_cast(&audio_info_) - reinterpret_cast(this)), + 0, static_cast(reinterpret_cast(&sequence_) - + reinterpret_cast(&audio_info_)) + sizeof(sequence_)); +} + +AudioChunk::~AudioChunk() { + // @@protoc_insertion_point(destructor:viam.component.audioin.v1.AudioChunk) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void AudioChunk::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + audio_data_.Destroy(); + if (this != internal_default_instance()) delete audio_info_; +} + +void AudioChunk::SetCachedSize(int size) const { + _cached_size_.Set(size); +} + +void AudioChunk::Clear() { +// @@protoc_insertion_point(message_clear_start:viam.component.audioin.v1.AudioChunk) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + audio_data_.ClearToEmpty(); + if (GetArenaForAllocation() == nullptr && audio_info_ != nullptr) { + delete audio_info_; + } + audio_info_ = nullptr; + ::memset(&start_timestamp_nanoseconds_, 0, static_cast( + reinterpret_cast(&sequence_) - + reinterpret_cast(&start_timestamp_nanoseconds_)) + sizeof(sequence_)); + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* AudioChunk::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // bytes audio_data = 1 [json_name = "audioData"]; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_audio_data(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // .viam.common.v1.AudioInfo audio_info = 2 [json_name = "audioInfo"]; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { + ptr = ctx->ParseMessage(_internal_mutable_audio_info(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // int64 start_timestamp_nanoseconds = 3 [json_name = "startTimestampNanoseconds"]; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 24)) { + start_timestamp_nanoseconds_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // int64 end_timestamp_nanoseconds = 4 [json_name = "endTimestampNanoseconds"]; + case 4: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 32)) { + end_timestamp_nanoseconds_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // int32 sequence = 5 [json_name = "sequence"]; + case 5: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 40)) { + sequence_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* AudioChunk::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:viam.component.audioin.v1.AudioChunk) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // bytes audio_data = 1 [json_name = "audioData"]; + if (!this->_internal_audio_data().empty()) { + target = stream->WriteBytesMaybeAliased( + 1, this->_internal_audio_data(), target); + } + + // .viam.common.v1.AudioInfo audio_info = 2 [json_name = "audioInfo"]; + if (this->_internal_has_audio_info()) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(2, _Internal::audio_info(this), + _Internal::audio_info(this).GetCachedSize(), target, stream); + } + + // int64 start_timestamp_nanoseconds = 3 [json_name = "startTimestampNanoseconds"]; + if (this->_internal_start_timestamp_nanoseconds() != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteInt64ToArray(3, this->_internal_start_timestamp_nanoseconds(), target); + } + + // int64 end_timestamp_nanoseconds = 4 [json_name = "endTimestampNanoseconds"]; + if (this->_internal_end_timestamp_nanoseconds() != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteInt64ToArray(4, this->_internal_end_timestamp_nanoseconds(), target); + } + + // int32 sequence = 5 [json_name = "sequence"]; + if (this->_internal_sequence() != 0) { + target = stream->EnsureSpace(target); + target = ::_pbi::WireFormatLite::WriteInt32ToArray(5, this->_internal_sequence(), target); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:viam.component.audioin.v1.AudioChunk) + return target; +} + +size_t AudioChunk::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:viam.component.audioin.v1.AudioChunk) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // bytes audio_data = 1 [json_name = "audioData"]; + if (!this->_internal_audio_data().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize( + this->_internal_audio_data()); + } + + // .viam.common.v1.AudioInfo audio_info = 2 [json_name = "audioInfo"]; + if (this->_internal_has_audio_info()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *audio_info_); + } + + // int64 start_timestamp_nanoseconds = 3 [json_name = "startTimestampNanoseconds"]; + if (this->_internal_start_timestamp_nanoseconds() != 0) { + total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_start_timestamp_nanoseconds()); + } + + // int64 end_timestamp_nanoseconds = 4 [json_name = "endTimestampNanoseconds"]; + if (this->_internal_end_timestamp_nanoseconds() != 0) { + total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_end_timestamp_nanoseconds()); + } + + // int32 sequence = 5 [json_name = "sequence"]; + if (this->_internal_sequence() != 0) { + total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_sequence()); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AudioChunk::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck, + AudioChunk::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AudioChunk::GetClassData() const { return &_class_data_; } + +void AudioChunk::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, + const ::PROTOBUF_NAMESPACE_ID::Message& from) { + static_cast(to)->MergeFrom( + static_cast(from)); +} + + +void AudioChunk::MergeFrom(const AudioChunk& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:viam.component.audioin.v1.AudioChunk) + GOOGLE_DCHECK_NE(&from, this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_audio_data().empty()) { + _internal_set_audio_data(from._internal_audio_data()); + } + if (from._internal_has_audio_info()) { + _internal_mutable_audio_info()->::viam::common::v1::AudioInfo::MergeFrom(from._internal_audio_info()); + } + if (from._internal_start_timestamp_nanoseconds() != 0) { + _internal_set_start_timestamp_nanoseconds(from._internal_start_timestamp_nanoseconds()); + } + if (from._internal_end_timestamp_nanoseconds() != 0) { + _internal_set_end_timestamp_nanoseconds(from._internal_end_timestamp_nanoseconds()); + } + if (from._internal_sequence() != 0) { + _internal_set_sequence(from._internal_sequence()); + } + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void AudioChunk::CopyFrom(const AudioChunk& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:viam.component.audioin.v1.AudioChunk) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool AudioChunk::IsInitialized() const { + return true; +} + +void AudioChunk::InternalSwap(AudioChunk* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &audio_data_, lhs_arena, + &other->audio_data_, rhs_arena + ); + ::PROTOBUF_NAMESPACE_ID::internal::memswap< + PROTOBUF_FIELD_OFFSET(AudioChunk, sequence_) + + sizeof(AudioChunk::sequence_) + - PROTOBUF_FIELD_OFFSET(AudioChunk, audio_info_)>( + reinterpret_cast(&audio_info_), + reinterpret_cast(&other->audio_info_)); +} + +::PROTOBUF_NAMESPACE_ID::Metadata AudioChunk::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_component_2faudioin_2fv1_2faudioin_2eproto_getter, &descriptor_table_component_2faudioin_2fv1_2faudioin_2eproto_once, + file_level_metadata_component_2faudioin_2fv1_2faudioin_2eproto[2]); +} + +// @@protoc_insertion_point(namespace_scope) +} // namespace v1 +} // namespace audioin +} // namespace component +} // namespace viam +PROTOBUF_NAMESPACE_OPEN +template<> PROTOBUF_NOINLINE ::viam::component::audioin::v1::GetAudioRequest* +Arena::CreateMaybeMessage< ::viam::component::audioin::v1::GetAudioRequest >(Arena* arena) { + return Arena::CreateMessageInternal< ::viam::component::audioin::v1::GetAudioRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::viam::component::audioin::v1::GetAudioResponse* +Arena::CreateMaybeMessage< ::viam::component::audioin::v1::GetAudioResponse >(Arena* arena) { + return Arena::CreateMessageInternal< ::viam::component::audioin::v1::GetAudioResponse >(arena); +} +template<> PROTOBUF_NOINLINE ::viam::component::audioin::v1::AudioChunk* +Arena::CreateMaybeMessage< ::viam::component::audioin::v1::AudioChunk >(Arena* arena) { + return Arena::CreateMessageInternal< ::viam::component::audioin::v1::AudioChunk >(arena); +} +PROTOBUF_NAMESPACE_CLOSE + +// @@protoc_insertion_point(global_scope) +#include diff --git a/src/viam/api/component/audioin/v1/audioin.pb.h b/src/viam/api/component/audioin/v1/audioin.pb.h new file mode 100644 index 000000000..e750f8ea6 --- /dev/null +++ b/src/viam/api/component/audioin/v1/audioin.pb.h @@ -0,0 +1,1315 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: component/audioin/v1/audioin.proto + +#ifndef GOOGLE_PROTOBUF_INCLUDED_component_2faudioin_2fv1_2faudioin_2eproto +#define GOOGLE_PROTOBUF_INCLUDED_component_2faudioin_2fv1_2faudioin_2eproto + +#include +#include + +#include +#if PROTOBUF_VERSION < 3020000 +#error This file was generated by a newer version of protoc which is +#error incompatible with your Protocol Buffer headers. Please update +#error your headers. +#endif +#if 3020003 < PROTOBUF_MIN_PROTOC_VERSION +#error This file was generated by an older version of protoc which is +#error incompatible with your Protocol Buffer headers. Please +#error regenerate this file with a newer version of protoc. +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include // IWYU pragma: export +#include // IWYU pragma: export +#include +#include "common/v1/common.pb.h" +#include "google/api/annotations.pb.h" +#include +// @@protoc_insertion_point(includes) +#include +#define PROTOBUF_INTERNAL_EXPORT_component_2faudioin_2fv1_2faudioin_2eproto +PROTOBUF_NAMESPACE_OPEN +namespace internal { +class AnyMetadata; +} // namespace internal +PROTOBUF_NAMESPACE_CLOSE + +// Internal implementation detail -- do not use these members. +struct TableStruct_component_2faudioin_2fv1_2faudioin_2eproto { + static const uint32_t offsets[]; +}; +extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_component_2faudioin_2fv1_2faudioin_2eproto; +namespace viam { +namespace component { +namespace audioin { +namespace v1 { +class AudioChunk; +struct AudioChunkDefaultTypeInternal; +extern AudioChunkDefaultTypeInternal _AudioChunk_default_instance_; +class GetAudioRequest; +struct GetAudioRequestDefaultTypeInternal; +extern GetAudioRequestDefaultTypeInternal _GetAudioRequest_default_instance_; +class GetAudioResponse; +struct GetAudioResponseDefaultTypeInternal; +extern GetAudioResponseDefaultTypeInternal _GetAudioResponse_default_instance_; +} // namespace v1 +} // namespace audioin +} // namespace component +} // namespace viam +PROTOBUF_NAMESPACE_OPEN +template<> ::viam::component::audioin::v1::AudioChunk* Arena::CreateMaybeMessage<::viam::component::audioin::v1::AudioChunk>(Arena*); +template<> ::viam::component::audioin::v1::GetAudioRequest* Arena::CreateMaybeMessage<::viam::component::audioin::v1::GetAudioRequest>(Arena*); +template<> ::viam::component::audioin::v1::GetAudioResponse* Arena::CreateMaybeMessage<::viam::component::audioin::v1::GetAudioResponse>(Arena*); +PROTOBUF_NAMESPACE_CLOSE +namespace viam { +namespace component { +namespace audioin { +namespace v1 { + +// =================================================================== + +class GetAudioRequest final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:viam.component.audioin.v1.GetAudioRequest) */ { + public: + inline GetAudioRequest() : GetAudioRequest(nullptr) {} + ~GetAudioRequest() override; + explicit PROTOBUF_CONSTEXPR GetAudioRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + GetAudioRequest(const GetAudioRequest& from); + GetAudioRequest(GetAudioRequest&& from) noexcept + : GetAudioRequest() { + *this = ::std::move(from); + } + + inline GetAudioRequest& operator=(const GetAudioRequest& from) { + CopyFrom(from); + return *this; + } + inline GetAudioRequest& operator=(GetAudioRequest&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const GetAudioRequest& default_instance() { + return *internal_default_instance(); + } + static inline const GetAudioRequest* internal_default_instance() { + return reinterpret_cast( + &_GetAudioRequest_default_instance_); + } + static constexpr int kIndexInFileMessages = + 0; + + friend void swap(GetAudioRequest& a, GetAudioRequest& b) { + a.Swap(&b); + } + inline void Swap(GetAudioRequest* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(GetAudioRequest* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + GetAudioRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const GetAudioRequest& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom(const GetAudioRequest& from); + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + void SharedCtor(); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(GetAudioRequest* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "viam.component.audioin.v1.GetAudioRequest"; + } + protected: + explicit GetAudioRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kNameFieldNumber = 1, + kCodecFieldNumber = 3, + kRequestIdFieldNumber = 4, + kExtraFieldNumber = 99, + kPreviousTimestampNanosecondsFieldNumber = 5, + kDurationSecondsFieldNumber = 2, + }; + // string name = 1 [json_name = "name"]; + void clear_name(); + const std::string& name() const; + template + void set_name(ArgT0&& arg0, ArgT... args); + std::string* mutable_name(); + PROTOBUF_NODISCARD std::string* release_name(); + void set_allocated_name(std::string* name); + private: + const std::string& _internal_name() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(const std::string& value); + std::string* _internal_mutable_name(); + public: + + // string codec = 3 [json_name = "codec"]; + void clear_codec(); + const std::string& codec() const; + template + void set_codec(ArgT0&& arg0, ArgT... args); + std::string* mutable_codec(); + PROTOBUF_NODISCARD std::string* release_codec(); + void set_allocated_codec(std::string* codec); + private: + const std::string& _internal_codec() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_codec(const std::string& value); + std::string* _internal_mutable_codec(); + public: + + // string request_id = 4 [json_name = "requestId"]; + void clear_request_id(); + const std::string& request_id() const; + template + void set_request_id(ArgT0&& arg0, ArgT... args); + std::string* mutable_request_id(); + PROTOBUF_NODISCARD std::string* release_request_id(); + void set_allocated_request_id(std::string* request_id); + private: + const std::string& _internal_request_id() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_request_id(const std::string& value); + std::string* _internal_mutable_request_id(); + public: + + // .google.protobuf.Struct extra = 99 [json_name = "extra"]; + bool has_extra() const; + private: + bool _internal_has_extra() const; + public: + void clear_extra(); + const ::PROTOBUF_NAMESPACE_ID::Struct& extra() const; + PROTOBUF_NODISCARD ::PROTOBUF_NAMESPACE_ID::Struct* release_extra(); + ::PROTOBUF_NAMESPACE_ID::Struct* mutable_extra(); + void set_allocated_extra(::PROTOBUF_NAMESPACE_ID::Struct* extra); + private: + const ::PROTOBUF_NAMESPACE_ID::Struct& _internal_extra() const; + ::PROTOBUF_NAMESPACE_ID::Struct* _internal_mutable_extra(); + public: + void unsafe_arena_set_allocated_extra( + ::PROTOBUF_NAMESPACE_ID::Struct* extra); + ::PROTOBUF_NAMESPACE_ID::Struct* unsafe_arena_release_extra(); + + // int64 previous_timestamp_nanoseconds = 5 [json_name = "previousTimestampNanoseconds"]; + void clear_previous_timestamp_nanoseconds(); + int64_t previous_timestamp_nanoseconds() const; + void set_previous_timestamp_nanoseconds(int64_t value); + private: + int64_t _internal_previous_timestamp_nanoseconds() const; + void _internal_set_previous_timestamp_nanoseconds(int64_t value); + public: + + // float duration_seconds = 2 [json_name = "durationSeconds"]; + void clear_duration_seconds(); + float duration_seconds() const; + void set_duration_seconds(float value); + private: + float _internal_duration_seconds() const; + void _internal_set_duration_seconds(float value); + public: + + // @@protoc_insertion_point(class_scope:viam.component.audioin.v1.GetAudioRequest) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr codec_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr request_id_; + ::PROTOBUF_NAMESPACE_ID::Struct* extra_; + int64_t previous_timestamp_nanoseconds_; + float duration_seconds_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_component_2faudioin_2fv1_2faudioin_2eproto; +}; +// ------------------------------------------------------------------- + +class GetAudioResponse final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:viam.component.audioin.v1.GetAudioResponse) */ { + public: + inline GetAudioResponse() : GetAudioResponse(nullptr) {} + ~GetAudioResponse() override; + explicit PROTOBUF_CONSTEXPR GetAudioResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + GetAudioResponse(const GetAudioResponse& from); + GetAudioResponse(GetAudioResponse&& from) noexcept + : GetAudioResponse() { + *this = ::std::move(from); + } + + inline GetAudioResponse& operator=(const GetAudioResponse& from) { + CopyFrom(from); + return *this; + } + inline GetAudioResponse& operator=(GetAudioResponse&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const GetAudioResponse& default_instance() { + return *internal_default_instance(); + } + static inline const GetAudioResponse* internal_default_instance() { + return reinterpret_cast( + &_GetAudioResponse_default_instance_); + } + static constexpr int kIndexInFileMessages = + 1; + + friend void swap(GetAudioResponse& a, GetAudioResponse& b) { + a.Swap(&b); + } + inline void Swap(GetAudioResponse* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(GetAudioResponse* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + GetAudioResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const GetAudioResponse& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom(const GetAudioResponse& from); + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + void SharedCtor(); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(GetAudioResponse* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "viam.component.audioin.v1.GetAudioResponse"; + } + protected: + explicit GetAudioResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kRequestIdFieldNumber = 2, + kAudioFieldNumber = 1, + }; + // string request_id = 2 [json_name = "requestId"]; + void clear_request_id(); + const std::string& request_id() const; + template + void set_request_id(ArgT0&& arg0, ArgT... args); + std::string* mutable_request_id(); + PROTOBUF_NODISCARD std::string* release_request_id(); + void set_allocated_request_id(std::string* request_id); + private: + const std::string& _internal_request_id() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_request_id(const std::string& value); + std::string* _internal_mutable_request_id(); + public: + + // .viam.component.audioin.v1.AudioChunk audio = 1 [json_name = "audio"]; + bool has_audio() const; + private: + bool _internal_has_audio() const; + public: + void clear_audio(); + const ::viam::component::audioin::v1::AudioChunk& audio() const; + PROTOBUF_NODISCARD ::viam::component::audioin::v1::AudioChunk* release_audio(); + ::viam::component::audioin::v1::AudioChunk* mutable_audio(); + void set_allocated_audio(::viam::component::audioin::v1::AudioChunk* audio); + private: + const ::viam::component::audioin::v1::AudioChunk& _internal_audio() const; + ::viam::component::audioin::v1::AudioChunk* _internal_mutable_audio(); + public: + void unsafe_arena_set_allocated_audio( + ::viam::component::audioin::v1::AudioChunk* audio); + ::viam::component::audioin::v1::AudioChunk* unsafe_arena_release_audio(); + + // @@protoc_insertion_point(class_scope:viam.component.audioin.v1.GetAudioResponse) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr request_id_; + ::viam::component::audioin::v1::AudioChunk* audio_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_component_2faudioin_2fv1_2faudioin_2eproto; +}; +// ------------------------------------------------------------------- + +class AudioChunk final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:viam.component.audioin.v1.AudioChunk) */ { + public: + inline AudioChunk() : AudioChunk(nullptr) {} + ~AudioChunk() override; + explicit PROTOBUF_CONSTEXPR AudioChunk(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + AudioChunk(const AudioChunk& from); + AudioChunk(AudioChunk&& from) noexcept + : AudioChunk() { + *this = ::std::move(from); + } + + inline AudioChunk& operator=(const AudioChunk& from) { + CopyFrom(from); + return *this; + } + inline AudioChunk& operator=(AudioChunk&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const AudioChunk& default_instance() { + return *internal_default_instance(); + } + static inline const AudioChunk* internal_default_instance() { + return reinterpret_cast( + &_AudioChunk_default_instance_); + } + static constexpr int kIndexInFileMessages = + 2; + + friend void swap(AudioChunk& a, AudioChunk& b) { + a.Swap(&b); + } + inline void Swap(AudioChunk* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(AudioChunk* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + AudioChunk* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const AudioChunk& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom(const AudioChunk& from); + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + void SharedCtor(); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(AudioChunk* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "viam.component.audioin.v1.AudioChunk"; + } + protected: + explicit AudioChunk(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kAudioDataFieldNumber = 1, + kAudioInfoFieldNumber = 2, + kStartTimestampNanosecondsFieldNumber = 3, + kEndTimestampNanosecondsFieldNumber = 4, + kSequenceFieldNumber = 5, + }; + // bytes audio_data = 1 [json_name = "audioData"]; + void clear_audio_data(); + const std::string& audio_data() const; + template + void set_audio_data(ArgT0&& arg0, ArgT... args); + std::string* mutable_audio_data(); + PROTOBUF_NODISCARD std::string* release_audio_data(); + void set_allocated_audio_data(std::string* audio_data); + private: + const std::string& _internal_audio_data() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_audio_data(const std::string& value); + std::string* _internal_mutable_audio_data(); + public: + + // .viam.common.v1.AudioInfo audio_info = 2 [json_name = "audioInfo"]; + bool has_audio_info() const; + private: + bool _internal_has_audio_info() const; + public: + void clear_audio_info(); + const ::viam::common::v1::AudioInfo& audio_info() const; + PROTOBUF_NODISCARD ::viam::common::v1::AudioInfo* release_audio_info(); + ::viam::common::v1::AudioInfo* mutable_audio_info(); + void set_allocated_audio_info(::viam::common::v1::AudioInfo* audio_info); + private: + const ::viam::common::v1::AudioInfo& _internal_audio_info() const; + ::viam::common::v1::AudioInfo* _internal_mutable_audio_info(); + public: + void unsafe_arena_set_allocated_audio_info( + ::viam::common::v1::AudioInfo* audio_info); + ::viam::common::v1::AudioInfo* unsafe_arena_release_audio_info(); + + // int64 start_timestamp_nanoseconds = 3 [json_name = "startTimestampNanoseconds"]; + void clear_start_timestamp_nanoseconds(); + int64_t start_timestamp_nanoseconds() const; + void set_start_timestamp_nanoseconds(int64_t value); + private: + int64_t _internal_start_timestamp_nanoseconds() const; + void _internal_set_start_timestamp_nanoseconds(int64_t value); + public: + + // int64 end_timestamp_nanoseconds = 4 [json_name = "endTimestampNanoseconds"]; + void clear_end_timestamp_nanoseconds(); + int64_t end_timestamp_nanoseconds() const; + void set_end_timestamp_nanoseconds(int64_t value); + private: + int64_t _internal_end_timestamp_nanoseconds() const; + void _internal_set_end_timestamp_nanoseconds(int64_t value); + public: + + // int32 sequence = 5 [json_name = "sequence"]; + void clear_sequence(); + int32_t sequence() const; + void set_sequence(int32_t value); + private: + int32_t _internal_sequence() const; + void _internal_set_sequence(int32_t value); + public: + + // @@protoc_insertion_point(class_scope:viam.component.audioin.v1.AudioChunk) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr audio_data_; + ::viam::common::v1::AudioInfo* audio_info_; + int64_t start_timestamp_nanoseconds_; + int64_t end_timestamp_nanoseconds_; + int32_t sequence_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_component_2faudioin_2fv1_2faudioin_2eproto; +}; +// =================================================================== + + +// =================================================================== + +#ifdef __GNUC__ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wstrict-aliasing" +#endif // __GNUC__ +// GetAudioRequest + +// string name = 1 [json_name = "name"]; +inline void GetAudioRequest::clear_name() { + name_.ClearToEmpty(); +} +inline const std::string& GetAudioRequest::name() const { + // @@protoc_insertion_point(field_get:viam.component.audioin.v1.GetAudioRequest.name) + return _internal_name(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void GetAudioRequest::set_name(ArgT0&& arg0, ArgT... args) { + + name_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:viam.component.audioin.v1.GetAudioRequest.name) +} +inline std::string* GetAudioRequest::mutable_name() { + std::string* _s = _internal_mutable_name(); + // @@protoc_insertion_point(field_mutable:viam.component.audioin.v1.GetAudioRequest.name) + return _s; +} +inline const std::string& GetAudioRequest::_internal_name() const { + return name_.Get(); +} +inline void GetAudioRequest::_internal_set_name(const std::string& value) { + + name_.Set(value, GetArenaForAllocation()); +} +inline std::string* GetAudioRequest::_internal_mutable_name() { + + return name_.Mutable(GetArenaForAllocation()); +} +inline std::string* GetAudioRequest::release_name() { + // @@protoc_insertion_point(field_release:viam.component.audioin.v1.GetAudioRequest.name) + return name_.Release(); +} +inline void GetAudioRequest::set_allocated_name(std::string* name) { + if (name != nullptr) { + + } else { + + } + name_.SetAllocated(name, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (name_.IsDefault()) { + name_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:viam.component.audioin.v1.GetAudioRequest.name) +} + +// float duration_seconds = 2 [json_name = "durationSeconds"]; +inline void GetAudioRequest::clear_duration_seconds() { + duration_seconds_ = 0; +} +inline float GetAudioRequest::_internal_duration_seconds() const { + return duration_seconds_; +} +inline float GetAudioRequest::duration_seconds() const { + // @@protoc_insertion_point(field_get:viam.component.audioin.v1.GetAudioRequest.duration_seconds) + return _internal_duration_seconds(); +} +inline void GetAudioRequest::_internal_set_duration_seconds(float value) { + + duration_seconds_ = value; +} +inline void GetAudioRequest::set_duration_seconds(float value) { + _internal_set_duration_seconds(value); + // @@protoc_insertion_point(field_set:viam.component.audioin.v1.GetAudioRequest.duration_seconds) +} + +// string codec = 3 [json_name = "codec"]; +inline void GetAudioRequest::clear_codec() { + codec_.ClearToEmpty(); +} +inline const std::string& GetAudioRequest::codec() const { + // @@protoc_insertion_point(field_get:viam.component.audioin.v1.GetAudioRequest.codec) + return _internal_codec(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void GetAudioRequest::set_codec(ArgT0&& arg0, ArgT... args) { + + codec_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:viam.component.audioin.v1.GetAudioRequest.codec) +} +inline std::string* GetAudioRequest::mutable_codec() { + std::string* _s = _internal_mutable_codec(); + // @@protoc_insertion_point(field_mutable:viam.component.audioin.v1.GetAudioRequest.codec) + return _s; +} +inline const std::string& GetAudioRequest::_internal_codec() const { + return codec_.Get(); +} +inline void GetAudioRequest::_internal_set_codec(const std::string& value) { + + codec_.Set(value, GetArenaForAllocation()); +} +inline std::string* GetAudioRequest::_internal_mutable_codec() { + + return codec_.Mutable(GetArenaForAllocation()); +} +inline std::string* GetAudioRequest::release_codec() { + // @@protoc_insertion_point(field_release:viam.component.audioin.v1.GetAudioRequest.codec) + return codec_.Release(); +} +inline void GetAudioRequest::set_allocated_codec(std::string* codec) { + if (codec != nullptr) { + + } else { + + } + codec_.SetAllocated(codec, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (codec_.IsDefault()) { + codec_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:viam.component.audioin.v1.GetAudioRequest.codec) +} + +// string request_id = 4 [json_name = "requestId"]; +inline void GetAudioRequest::clear_request_id() { + request_id_.ClearToEmpty(); +} +inline const std::string& GetAudioRequest::request_id() const { + // @@protoc_insertion_point(field_get:viam.component.audioin.v1.GetAudioRequest.request_id) + return _internal_request_id(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void GetAudioRequest::set_request_id(ArgT0&& arg0, ArgT... args) { + + request_id_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:viam.component.audioin.v1.GetAudioRequest.request_id) +} +inline std::string* GetAudioRequest::mutable_request_id() { + std::string* _s = _internal_mutable_request_id(); + // @@protoc_insertion_point(field_mutable:viam.component.audioin.v1.GetAudioRequest.request_id) + return _s; +} +inline const std::string& GetAudioRequest::_internal_request_id() const { + return request_id_.Get(); +} +inline void GetAudioRequest::_internal_set_request_id(const std::string& value) { + + request_id_.Set(value, GetArenaForAllocation()); +} +inline std::string* GetAudioRequest::_internal_mutable_request_id() { + + return request_id_.Mutable(GetArenaForAllocation()); +} +inline std::string* GetAudioRequest::release_request_id() { + // @@protoc_insertion_point(field_release:viam.component.audioin.v1.GetAudioRequest.request_id) + return request_id_.Release(); +} +inline void GetAudioRequest::set_allocated_request_id(std::string* request_id) { + if (request_id != nullptr) { + + } else { + + } + request_id_.SetAllocated(request_id, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (request_id_.IsDefault()) { + request_id_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:viam.component.audioin.v1.GetAudioRequest.request_id) +} + +// int64 previous_timestamp_nanoseconds = 5 [json_name = "previousTimestampNanoseconds"]; +inline void GetAudioRequest::clear_previous_timestamp_nanoseconds() { + previous_timestamp_nanoseconds_ = int64_t{0}; +} +inline int64_t GetAudioRequest::_internal_previous_timestamp_nanoseconds() const { + return previous_timestamp_nanoseconds_; +} +inline int64_t GetAudioRequest::previous_timestamp_nanoseconds() const { + // @@protoc_insertion_point(field_get:viam.component.audioin.v1.GetAudioRequest.previous_timestamp_nanoseconds) + return _internal_previous_timestamp_nanoseconds(); +} +inline void GetAudioRequest::_internal_set_previous_timestamp_nanoseconds(int64_t value) { + + previous_timestamp_nanoseconds_ = value; +} +inline void GetAudioRequest::set_previous_timestamp_nanoseconds(int64_t value) { + _internal_set_previous_timestamp_nanoseconds(value); + // @@protoc_insertion_point(field_set:viam.component.audioin.v1.GetAudioRequest.previous_timestamp_nanoseconds) +} + +// .google.protobuf.Struct extra = 99 [json_name = "extra"]; +inline bool GetAudioRequest::_internal_has_extra() const { + return this != internal_default_instance() && extra_ != nullptr; +} +inline bool GetAudioRequest::has_extra() const { + return _internal_has_extra(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Struct& GetAudioRequest::_internal_extra() const { + const ::PROTOBUF_NAMESPACE_ID::Struct* p = extra_; + return p != nullptr ? *p : reinterpret_cast( + ::PROTOBUF_NAMESPACE_ID::_Struct_default_instance_); +} +inline const ::PROTOBUF_NAMESPACE_ID::Struct& GetAudioRequest::extra() const { + // @@protoc_insertion_point(field_get:viam.component.audioin.v1.GetAudioRequest.extra) + return _internal_extra(); +} +inline void GetAudioRequest::unsafe_arena_set_allocated_extra( + ::PROTOBUF_NAMESPACE_ID::Struct* extra) { + if (GetArenaForAllocation() == nullptr) { + delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(extra_); + } + extra_ = extra; + if (extra) { + + } else { + + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:viam.component.audioin.v1.GetAudioRequest.extra) +} +inline ::PROTOBUF_NAMESPACE_ID::Struct* GetAudioRequest::release_extra() { + + ::PROTOBUF_NAMESPACE_ID::Struct* temp = extra_; + extra_ = nullptr; +#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE + auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + if (GetArenaForAllocation() == nullptr) { delete old; } +#else // PROTOBUF_FORCE_COPY_IN_RELEASE + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } +#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE + return temp; +} +inline ::PROTOBUF_NAMESPACE_ID::Struct* GetAudioRequest::unsafe_arena_release_extra() { + // @@protoc_insertion_point(field_release:viam.component.audioin.v1.GetAudioRequest.extra) + + ::PROTOBUF_NAMESPACE_ID::Struct* temp = extra_; + extra_ = nullptr; + return temp; +} +inline ::PROTOBUF_NAMESPACE_ID::Struct* GetAudioRequest::_internal_mutable_extra() { + + if (extra_ == nullptr) { + auto* p = CreateMaybeMessage<::PROTOBUF_NAMESPACE_ID::Struct>(GetArenaForAllocation()); + extra_ = p; + } + return extra_; +} +inline ::PROTOBUF_NAMESPACE_ID::Struct* GetAudioRequest::mutable_extra() { + ::PROTOBUF_NAMESPACE_ID::Struct* _msg = _internal_mutable_extra(); + // @@protoc_insertion_point(field_mutable:viam.component.audioin.v1.GetAudioRequest.extra) + return _msg; +} +inline void GetAudioRequest::set_allocated_extra(::PROTOBUF_NAMESPACE_ID::Struct* extra) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + if (message_arena == nullptr) { + delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(extra_); + } + if (extra) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena( + reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(extra)); + if (message_arena != submessage_arena) { + extra = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, extra, submessage_arena); + } + + } else { + + } + extra_ = extra; + // @@protoc_insertion_point(field_set_allocated:viam.component.audioin.v1.GetAudioRequest.extra) +} + +// ------------------------------------------------------------------- + +// GetAudioResponse + +// .viam.component.audioin.v1.AudioChunk audio = 1 [json_name = "audio"]; +inline bool GetAudioResponse::_internal_has_audio() const { + return this != internal_default_instance() && audio_ != nullptr; +} +inline bool GetAudioResponse::has_audio() const { + return _internal_has_audio(); +} +inline void GetAudioResponse::clear_audio() { + if (GetArenaForAllocation() == nullptr && audio_ != nullptr) { + delete audio_; + } + audio_ = nullptr; +} +inline const ::viam::component::audioin::v1::AudioChunk& GetAudioResponse::_internal_audio() const { + const ::viam::component::audioin::v1::AudioChunk* p = audio_; + return p != nullptr ? *p : reinterpret_cast( + ::viam::component::audioin::v1::_AudioChunk_default_instance_); +} +inline const ::viam::component::audioin::v1::AudioChunk& GetAudioResponse::audio() const { + // @@protoc_insertion_point(field_get:viam.component.audioin.v1.GetAudioResponse.audio) + return _internal_audio(); +} +inline void GetAudioResponse::unsafe_arena_set_allocated_audio( + ::viam::component::audioin::v1::AudioChunk* audio) { + if (GetArenaForAllocation() == nullptr) { + delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(audio_); + } + audio_ = audio; + if (audio) { + + } else { + + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:viam.component.audioin.v1.GetAudioResponse.audio) +} +inline ::viam::component::audioin::v1::AudioChunk* GetAudioResponse::release_audio() { + + ::viam::component::audioin::v1::AudioChunk* temp = audio_; + audio_ = nullptr; +#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE + auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + if (GetArenaForAllocation() == nullptr) { delete old; } +#else // PROTOBUF_FORCE_COPY_IN_RELEASE + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } +#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE + return temp; +} +inline ::viam::component::audioin::v1::AudioChunk* GetAudioResponse::unsafe_arena_release_audio() { + // @@protoc_insertion_point(field_release:viam.component.audioin.v1.GetAudioResponse.audio) + + ::viam::component::audioin::v1::AudioChunk* temp = audio_; + audio_ = nullptr; + return temp; +} +inline ::viam::component::audioin::v1::AudioChunk* GetAudioResponse::_internal_mutable_audio() { + + if (audio_ == nullptr) { + auto* p = CreateMaybeMessage<::viam::component::audioin::v1::AudioChunk>(GetArenaForAllocation()); + audio_ = p; + } + return audio_; +} +inline ::viam::component::audioin::v1::AudioChunk* GetAudioResponse::mutable_audio() { + ::viam::component::audioin::v1::AudioChunk* _msg = _internal_mutable_audio(); + // @@protoc_insertion_point(field_mutable:viam.component.audioin.v1.GetAudioResponse.audio) + return _msg; +} +inline void GetAudioResponse::set_allocated_audio(::viam::component::audioin::v1::AudioChunk* audio) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + if (message_arena == nullptr) { + delete audio_; + } + if (audio) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(audio); + if (message_arena != submessage_arena) { + audio = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, audio, submessage_arena); + } + + } else { + + } + audio_ = audio; + // @@protoc_insertion_point(field_set_allocated:viam.component.audioin.v1.GetAudioResponse.audio) +} + +// string request_id = 2 [json_name = "requestId"]; +inline void GetAudioResponse::clear_request_id() { + request_id_.ClearToEmpty(); +} +inline const std::string& GetAudioResponse::request_id() const { + // @@protoc_insertion_point(field_get:viam.component.audioin.v1.GetAudioResponse.request_id) + return _internal_request_id(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void GetAudioResponse::set_request_id(ArgT0&& arg0, ArgT... args) { + + request_id_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:viam.component.audioin.v1.GetAudioResponse.request_id) +} +inline std::string* GetAudioResponse::mutable_request_id() { + std::string* _s = _internal_mutable_request_id(); + // @@protoc_insertion_point(field_mutable:viam.component.audioin.v1.GetAudioResponse.request_id) + return _s; +} +inline const std::string& GetAudioResponse::_internal_request_id() const { + return request_id_.Get(); +} +inline void GetAudioResponse::_internal_set_request_id(const std::string& value) { + + request_id_.Set(value, GetArenaForAllocation()); +} +inline std::string* GetAudioResponse::_internal_mutable_request_id() { + + return request_id_.Mutable(GetArenaForAllocation()); +} +inline std::string* GetAudioResponse::release_request_id() { + // @@protoc_insertion_point(field_release:viam.component.audioin.v1.GetAudioResponse.request_id) + return request_id_.Release(); +} +inline void GetAudioResponse::set_allocated_request_id(std::string* request_id) { + if (request_id != nullptr) { + + } else { + + } + request_id_.SetAllocated(request_id, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (request_id_.IsDefault()) { + request_id_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:viam.component.audioin.v1.GetAudioResponse.request_id) +} + +// ------------------------------------------------------------------- + +// AudioChunk + +// bytes audio_data = 1 [json_name = "audioData"]; +inline void AudioChunk::clear_audio_data() { + audio_data_.ClearToEmpty(); +} +inline const std::string& AudioChunk::audio_data() const { + // @@protoc_insertion_point(field_get:viam.component.audioin.v1.AudioChunk.audio_data) + return _internal_audio_data(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void AudioChunk::set_audio_data(ArgT0&& arg0, ArgT... args) { + + audio_data_.SetBytes(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:viam.component.audioin.v1.AudioChunk.audio_data) +} +inline std::string* AudioChunk::mutable_audio_data() { + std::string* _s = _internal_mutable_audio_data(); + // @@protoc_insertion_point(field_mutable:viam.component.audioin.v1.AudioChunk.audio_data) + return _s; +} +inline const std::string& AudioChunk::_internal_audio_data() const { + return audio_data_.Get(); +} +inline void AudioChunk::_internal_set_audio_data(const std::string& value) { + + audio_data_.Set(value, GetArenaForAllocation()); +} +inline std::string* AudioChunk::_internal_mutable_audio_data() { + + return audio_data_.Mutable(GetArenaForAllocation()); +} +inline std::string* AudioChunk::release_audio_data() { + // @@protoc_insertion_point(field_release:viam.component.audioin.v1.AudioChunk.audio_data) + return audio_data_.Release(); +} +inline void AudioChunk::set_allocated_audio_data(std::string* audio_data) { + if (audio_data != nullptr) { + + } else { + + } + audio_data_.SetAllocated(audio_data, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (audio_data_.IsDefault()) { + audio_data_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:viam.component.audioin.v1.AudioChunk.audio_data) +} + +// .viam.common.v1.AudioInfo audio_info = 2 [json_name = "audioInfo"]; +inline bool AudioChunk::_internal_has_audio_info() const { + return this != internal_default_instance() && audio_info_ != nullptr; +} +inline bool AudioChunk::has_audio_info() const { + return _internal_has_audio_info(); +} +inline const ::viam::common::v1::AudioInfo& AudioChunk::_internal_audio_info() const { + const ::viam::common::v1::AudioInfo* p = audio_info_; + return p != nullptr ? *p : reinterpret_cast( + ::viam::common::v1::_AudioInfo_default_instance_); +} +inline const ::viam::common::v1::AudioInfo& AudioChunk::audio_info() const { + // @@protoc_insertion_point(field_get:viam.component.audioin.v1.AudioChunk.audio_info) + return _internal_audio_info(); +} +inline void AudioChunk::unsafe_arena_set_allocated_audio_info( + ::viam::common::v1::AudioInfo* audio_info) { + if (GetArenaForAllocation() == nullptr) { + delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(audio_info_); + } + audio_info_ = audio_info; + if (audio_info) { + + } else { + + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:viam.component.audioin.v1.AudioChunk.audio_info) +} +inline ::viam::common::v1::AudioInfo* AudioChunk::release_audio_info() { + + ::viam::common::v1::AudioInfo* temp = audio_info_; + audio_info_ = nullptr; +#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE + auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + if (GetArenaForAllocation() == nullptr) { delete old; } +#else // PROTOBUF_FORCE_COPY_IN_RELEASE + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } +#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE + return temp; +} +inline ::viam::common::v1::AudioInfo* AudioChunk::unsafe_arena_release_audio_info() { + // @@protoc_insertion_point(field_release:viam.component.audioin.v1.AudioChunk.audio_info) + + ::viam::common::v1::AudioInfo* temp = audio_info_; + audio_info_ = nullptr; + return temp; +} +inline ::viam::common::v1::AudioInfo* AudioChunk::_internal_mutable_audio_info() { + + if (audio_info_ == nullptr) { + auto* p = CreateMaybeMessage<::viam::common::v1::AudioInfo>(GetArenaForAllocation()); + audio_info_ = p; + } + return audio_info_; +} +inline ::viam::common::v1::AudioInfo* AudioChunk::mutable_audio_info() { + ::viam::common::v1::AudioInfo* _msg = _internal_mutable_audio_info(); + // @@protoc_insertion_point(field_mutable:viam.component.audioin.v1.AudioChunk.audio_info) + return _msg; +} +inline void AudioChunk::set_allocated_audio_info(::viam::common::v1::AudioInfo* audio_info) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + if (message_arena == nullptr) { + delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(audio_info_); + } + if (audio_info) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena( + reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(audio_info)); + if (message_arena != submessage_arena) { + audio_info = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, audio_info, submessage_arena); + } + + } else { + + } + audio_info_ = audio_info; + // @@protoc_insertion_point(field_set_allocated:viam.component.audioin.v1.AudioChunk.audio_info) +} + +// int64 start_timestamp_nanoseconds = 3 [json_name = "startTimestampNanoseconds"]; +inline void AudioChunk::clear_start_timestamp_nanoseconds() { + start_timestamp_nanoseconds_ = int64_t{0}; +} +inline int64_t AudioChunk::_internal_start_timestamp_nanoseconds() const { + return start_timestamp_nanoseconds_; +} +inline int64_t AudioChunk::start_timestamp_nanoseconds() const { + // @@protoc_insertion_point(field_get:viam.component.audioin.v1.AudioChunk.start_timestamp_nanoseconds) + return _internal_start_timestamp_nanoseconds(); +} +inline void AudioChunk::_internal_set_start_timestamp_nanoseconds(int64_t value) { + + start_timestamp_nanoseconds_ = value; +} +inline void AudioChunk::set_start_timestamp_nanoseconds(int64_t value) { + _internal_set_start_timestamp_nanoseconds(value); + // @@protoc_insertion_point(field_set:viam.component.audioin.v1.AudioChunk.start_timestamp_nanoseconds) +} + +// int64 end_timestamp_nanoseconds = 4 [json_name = "endTimestampNanoseconds"]; +inline void AudioChunk::clear_end_timestamp_nanoseconds() { + end_timestamp_nanoseconds_ = int64_t{0}; +} +inline int64_t AudioChunk::_internal_end_timestamp_nanoseconds() const { + return end_timestamp_nanoseconds_; +} +inline int64_t AudioChunk::end_timestamp_nanoseconds() const { + // @@protoc_insertion_point(field_get:viam.component.audioin.v1.AudioChunk.end_timestamp_nanoseconds) + return _internal_end_timestamp_nanoseconds(); +} +inline void AudioChunk::_internal_set_end_timestamp_nanoseconds(int64_t value) { + + end_timestamp_nanoseconds_ = value; +} +inline void AudioChunk::set_end_timestamp_nanoseconds(int64_t value) { + _internal_set_end_timestamp_nanoseconds(value); + // @@protoc_insertion_point(field_set:viam.component.audioin.v1.AudioChunk.end_timestamp_nanoseconds) +} + +// int32 sequence = 5 [json_name = "sequence"]; +inline void AudioChunk::clear_sequence() { + sequence_ = 0; +} +inline int32_t AudioChunk::_internal_sequence() const { + return sequence_; +} +inline int32_t AudioChunk::sequence() const { + // @@protoc_insertion_point(field_get:viam.component.audioin.v1.AudioChunk.sequence) + return _internal_sequence(); +} +inline void AudioChunk::_internal_set_sequence(int32_t value) { + + sequence_ = value; +} +inline void AudioChunk::set_sequence(int32_t value) { + _internal_set_sequence(value); + // @@protoc_insertion_point(field_set:viam.component.audioin.v1.AudioChunk.sequence) +} + +#ifdef __GNUC__ + #pragma GCC diagnostic pop +#endif // __GNUC__ +// ------------------------------------------------------------------- + +// ------------------------------------------------------------------- + + +// @@protoc_insertion_point(namespace_scope) + +} // namespace v1 +} // namespace audioin +} // namespace component +} // namespace viam + +// @@protoc_insertion_point(global_scope) + +#include +#endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_component_2faudioin_2fv1_2faudioin_2eproto diff --git a/src/viam/api/component/audioout/v1/audioout.grpc.pb.cc b/src/viam/api/component/audioout/v1/audioout.grpc.pb.cc new file mode 100644 index 000000000..f436dc2bf --- /dev/null +++ b/src/viam/api/component/audioout/v1/audioout.grpc.pb.cc @@ -0,0 +1,218 @@ +// Generated by the gRPC C++ plugin. +// If you make any local change, they will be lost. +// source: component/audioout/v1/audioout.proto + +#include "component/audioout/v1/audioout.pb.h" +#include "component/audioout/v1/audioout.grpc.pb.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +namespace viam { +namespace component { +namespace audioout { +namespace v1 { + +static const char* AudioOutService_method_names[] = { + "/viam.component.audioout.v1.AudioOutService/Play", + "/viam.component.audioout.v1.AudioOutService/GetProperties", + "/viam.component.audioout.v1.AudioOutService/DoCommand", + "/viam.component.audioout.v1.AudioOutService/GetGeometries", +}; + +std::unique_ptr< AudioOutService::Stub> AudioOutService::NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) { + (void)options; + std::unique_ptr< AudioOutService::Stub> stub(new AudioOutService::Stub(channel, options)); + return stub; +} + +AudioOutService::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) + : channel_(channel), rpcmethod_Play_(AudioOutService_method_names[0], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_GetProperties_(AudioOutService_method_names[1], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_DoCommand_(AudioOutService_method_names[2], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + , rpcmethod_GetGeometries_(AudioOutService_method_names[3], options.suffix_for_stats(),::grpc::internal::RpcMethod::NORMAL_RPC, channel) + {} + +::grpc::Status AudioOutService::Stub::Play(::grpc::ClientContext* context, const ::viam::component::audioout::v1::PlayRequest& request, ::viam::component::audioout::v1::PlayResponse* response) { + return ::grpc::internal::BlockingUnaryCall< ::viam::component::audioout::v1::PlayRequest, ::viam::component::audioout::v1::PlayResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_Play_, context, request, response); +} + +void AudioOutService::Stub::async::Play(::grpc::ClientContext* context, const ::viam::component::audioout::v1::PlayRequest* request, ::viam::component::audioout::v1::PlayResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall< ::viam::component::audioout::v1::PlayRequest, ::viam::component::audioout::v1::PlayResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_Play_, context, request, response, std::move(f)); +} + +void AudioOutService::Stub::async::Play(::grpc::ClientContext* context, const ::viam::component::audioout::v1::PlayRequest* request, ::viam::component::audioout::v1::PlayResponse* response, ::grpc::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_Play_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::viam::component::audioout::v1::PlayResponse>* AudioOutService::Stub::PrepareAsyncPlayRaw(::grpc::ClientContext* context, const ::viam::component::audioout::v1::PlayRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::viam::component::audioout::v1::PlayResponse, ::viam::component::audioout::v1::PlayRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_Play_, context, request); +} + +::grpc::ClientAsyncResponseReader< ::viam::component::audioout::v1::PlayResponse>* AudioOutService::Stub::AsyncPlayRaw(::grpc::ClientContext* context, const ::viam::component::audioout::v1::PlayRequest& request, ::grpc::CompletionQueue* cq) { + auto* result = + this->PrepareAsyncPlayRaw(context, request, cq); + result->StartCall(); + return result; +} + +::grpc::Status AudioOutService::Stub::GetProperties(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest& request, ::viam::common::v1::GetPropertiesResponse* response) { + return ::grpc::internal::BlockingUnaryCall< ::viam::common::v1::GetPropertiesRequest, ::viam::common::v1::GetPropertiesResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_GetProperties_, context, request, response); +} + +void AudioOutService::Stub::async::GetProperties(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest* request, ::viam::common::v1::GetPropertiesResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall< ::viam::common::v1::GetPropertiesRequest, ::viam::common::v1::GetPropertiesResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetProperties_, context, request, response, std::move(f)); +} + +void AudioOutService::Stub::async::GetProperties(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest* request, ::viam::common::v1::GetPropertiesResponse* response, ::grpc::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetProperties_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::viam::common::v1::GetPropertiesResponse>* AudioOutService::Stub::PrepareAsyncGetPropertiesRaw(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::viam::common::v1::GetPropertiesResponse, ::viam::common::v1::GetPropertiesRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_GetProperties_, context, request); +} + +::grpc::ClientAsyncResponseReader< ::viam::common::v1::GetPropertiesResponse>* AudioOutService::Stub::AsyncGetPropertiesRaw(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest& request, ::grpc::CompletionQueue* cq) { + auto* result = + this->PrepareAsyncGetPropertiesRaw(context, request, cq); + result->StartCall(); + return result; +} + +::grpc::Status AudioOutService::Stub::DoCommand(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest& request, ::viam::common::v1::DoCommandResponse* response) { + return ::grpc::internal::BlockingUnaryCall< ::viam::common::v1::DoCommandRequest, ::viam::common::v1::DoCommandResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_DoCommand_, context, request, response); +} + +void AudioOutService::Stub::async::DoCommand(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest* request, ::viam::common::v1::DoCommandResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall< ::viam::common::v1::DoCommandRequest, ::viam::common::v1::DoCommandResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_DoCommand_, context, request, response, std::move(f)); +} + +void AudioOutService::Stub::async::DoCommand(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest* request, ::viam::common::v1::DoCommandResponse* response, ::grpc::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_DoCommand_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::viam::common::v1::DoCommandResponse>* AudioOutService::Stub::PrepareAsyncDoCommandRaw(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::viam::common::v1::DoCommandResponse, ::viam::common::v1::DoCommandRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_DoCommand_, context, request); +} + +::grpc::ClientAsyncResponseReader< ::viam::common::v1::DoCommandResponse>* AudioOutService::Stub::AsyncDoCommandRaw(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest& request, ::grpc::CompletionQueue* cq) { + auto* result = + this->PrepareAsyncDoCommandRaw(context, request, cq); + result->StartCall(); + return result; +} + +::grpc::Status AudioOutService::Stub::GetGeometries(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest& request, ::viam::common::v1::GetGeometriesResponse* response) { + return ::grpc::internal::BlockingUnaryCall< ::viam::common::v1::GetGeometriesRequest, ::viam::common::v1::GetGeometriesResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), rpcmethod_GetGeometries_, context, request, response); +} + +void AudioOutService::Stub::async::GetGeometries(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest* request, ::viam::common::v1::GetGeometriesResponse* response, std::function f) { + ::grpc::internal::CallbackUnaryCall< ::viam::common::v1::GetGeometriesRequest, ::viam::common::v1::GetGeometriesResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetGeometries_, context, request, response, std::move(f)); +} + +void AudioOutService::Stub::async::GetGeometries(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest* request, ::viam::common::v1::GetGeometriesResponse* response, ::grpc::ClientUnaryReactor* reactor) { + ::grpc::internal::ClientCallbackUnaryFactory::Create< ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(stub_->channel_.get(), stub_->rpcmethod_GetGeometries_, context, request, response, reactor); +} + +::grpc::ClientAsyncResponseReader< ::viam::common::v1::GetGeometriesResponse>* AudioOutService::Stub::PrepareAsyncGetGeometriesRaw(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest& request, ::grpc::CompletionQueue* cq) { + return ::grpc::internal::ClientAsyncResponseReaderHelper::Create< ::viam::common::v1::GetGeometriesResponse, ::viam::common::v1::GetGeometriesRequest, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>(channel_.get(), cq, rpcmethod_GetGeometries_, context, request); +} + +::grpc::ClientAsyncResponseReader< ::viam::common::v1::GetGeometriesResponse>* AudioOutService::Stub::AsyncGetGeometriesRaw(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest& request, ::grpc::CompletionQueue* cq) { + auto* result = + this->PrepareAsyncGetGeometriesRaw(context, request, cq); + result->StartCall(); + return result; +} + +AudioOutService::Service::Service() { + AddMethod(new ::grpc::internal::RpcServiceMethod( + AudioOutService_method_names[0], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< AudioOutService::Service, ::viam::component::audioout::v1::PlayRequest, ::viam::component::audioout::v1::PlayResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( + [](AudioOutService::Service* service, + ::grpc::ServerContext* ctx, + const ::viam::component::audioout::v1::PlayRequest* req, + ::viam::component::audioout::v1::PlayResponse* resp) { + return service->Play(ctx, req, resp); + }, this))); + AddMethod(new ::grpc::internal::RpcServiceMethod( + AudioOutService_method_names[1], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< AudioOutService::Service, ::viam::common::v1::GetPropertiesRequest, ::viam::common::v1::GetPropertiesResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( + [](AudioOutService::Service* service, + ::grpc::ServerContext* ctx, + const ::viam::common::v1::GetPropertiesRequest* req, + ::viam::common::v1::GetPropertiesResponse* resp) { + return service->GetProperties(ctx, req, resp); + }, this))); + AddMethod(new ::grpc::internal::RpcServiceMethod( + AudioOutService_method_names[2], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< AudioOutService::Service, ::viam::common::v1::DoCommandRequest, ::viam::common::v1::DoCommandResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( + [](AudioOutService::Service* service, + ::grpc::ServerContext* ctx, + const ::viam::common::v1::DoCommandRequest* req, + ::viam::common::v1::DoCommandResponse* resp) { + return service->DoCommand(ctx, req, resp); + }, this))); + AddMethod(new ::grpc::internal::RpcServiceMethod( + AudioOutService_method_names[3], + ::grpc::internal::RpcMethod::NORMAL_RPC, + new ::grpc::internal::RpcMethodHandler< AudioOutService::Service, ::viam::common::v1::GetGeometriesRequest, ::viam::common::v1::GetGeometriesResponse, ::grpc::protobuf::MessageLite, ::grpc::protobuf::MessageLite>( + [](AudioOutService::Service* service, + ::grpc::ServerContext* ctx, + const ::viam::common::v1::GetGeometriesRequest* req, + ::viam::common::v1::GetGeometriesResponse* resp) { + return service->GetGeometries(ctx, req, resp); + }, this))); +} + +AudioOutService::Service::~Service() { +} + +::grpc::Status AudioOutService::Service::Play(::grpc::ServerContext* context, const ::viam::component::audioout::v1::PlayRequest* request, ::viam::component::audioout::v1::PlayResponse* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + +::grpc::Status AudioOutService::Service::GetProperties(::grpc::ServerContext* context, const ::viam::common::v1::GetPropertiesRequest* request, ::viam::common::v1::GetPropertiesResponse* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + +::grpc::Status AudioOutService::Service::DoCommand(::grpc::ServerContext* context, const ::viam::common::v1::DoCommandRequest* request, ::viam::common::v1::DoCommandResponse* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + +::grpc::Status AudioOutService::Service::GetGeometries(::grpc::ServerContext* context, const ::viam::common::v1::GetGeometriesRequest* request, ::viam::common::v1::GetGeometriesResponse* response) { + (void) context; + (void) request; + (void) response; + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); +} + + +} // namespace viam +} // namespace component +} // namespace audioout +} // namespace v1 + diff --git a/src/viam/api/component/audioout/v1/audioout.grpc.pb.h b/src/viam/api/component/audioout/v1/audioout.grpc.pb.h new file mode 100644 index 000000000..06b0eb953 --- /dev/null +++ b/src/viam/api/component/audioout/v1/audioout.grpc.pb.h @@ -0,0 +1,730 @@ +// Generated by the gRPC C++ plugin. +// If you make any local change, they will be lost. +// source: component/audioout/v1/audioout.proto +#ifndef GRPC_component_2faudioout_2fv1_2faudioout_2eproto__INCLUDED +#define GRPC_component_2faudioout_2fv1_2faudioout_2eproto__INCLUDED + +#include "component/audioout/v1/audioout.pb.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace viam { +namespace component { +namespace audioout { +namespace v1 { + +// An AudioOutService services all audio outputs associated with a robot +class AudioOutService final { + public: + static constexpr char const* service_full_name() { + return "viam.component.audioout.v1.AudioOutService"; + } + class StubInterface { + public: + virtual ~StubInterface() {} + // Play plays audio from the audioout component. + virtual ::grpc::Status Play(::grpc::ClientContext* context, const ::viam::component::audioout::v1::PlayRequest& request, ::viam::component::audioout::v1::PlayResponse* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::viam::component::audioout::v1::PlayResponse>> AsyncPlay(::grpc::ClientContext* context, const ::viam::component::audioout::v1::PlayRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::viam::component::audioout::v1::PlayResponse>>(AsyncPlayRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::viam::component::audioout::v1::PlayResponse>> PrepareAsyncPlay(::grpc::ClientContext* context, const ::viam::component::audioout::v1::PlayRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::viam::component::audioout::v1::PlayResponse>>(PrepareAsyncPlayRaw(context, request, cq)); + } + // GetProperties returns the properties of the audioout. + virtual ::grpc::Status GetProperties(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest& request, ::viam::common::v1::GetPropertiesResponse* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::GetPropertiesResponse>> AsyncGetProperties(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::GetPropertiesResponse>>(AsyncGetPropertiesRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::GetPropertiesResponse>> PrepareAsyncGetProperties(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::GetPropertiesResponse>>(PrepareAsyncGetPropertiesRaw(context, request, cq)); + } + // DoCommand sends/receives arbitrary commands + virtual ::grpc::Status DoCommand(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest& request, ::viam::common::v1::DoCommandResponse* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::DoCommandResponse>> AsyncDoCommand(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::DoCommandResponse>>(AsyncDoCommandRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::DoCommandResponse>> PrepareAsyncDoCommand(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::DoCommandResponse>>(PrepareAsyncDoCommandRaw(context, request, cq)); + } + // GetGeometries returns the geometries of the component in their current configuration + virtual ::grpc::Status GetGeometries(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest& request, ::viam::common::v1::GetGeometriesResponse* response) = 0; + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::GetGeometriesResponse>> AsyncGetGeometries(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::GetGeometriesResponse>>(AsyncGetGeometriesRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::GetGeometriesResponse>> PrepareAsyncGetGeometries(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::GetGeometriesResponse>>(PrepareAsyncGetGeometriesRaw(context, request, cq)); + } + class async_interface { + public: + virtual ~async_interface() {} + // Play plays audio from the audioout component. + virtual void Play(::grpc::ClientContext* context, const ::viam::component::audioout::v1::PlayRequest* request, ::viam::component::audioout::v1::PlayResponse* response, std::function) = 0; + virtual void Play(::grpc::ClientContext* context, const ::viam::component::audioout::v1::PlayRequest* request, ::viam::component::audioout::v1::PlayResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0; + // GetProperties returns the properties of the audioout. + virtual void GetProperties(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest* request, ::viam::common::v1::GetPropertiesResponse* response, std::function) = 0; + virtual void GetProperties(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest* request, ::viam::common::v1::GetPropertiesResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0; + // DoCommand sends/receives arbitrary commands + virtual void DoCommand(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest* request, ::viam::common::v1::DoCommandResponse* response, std::function) = 0; + virtual void DoCommand(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest* request, ::viam::common::v1::DoCommandResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0; + // GetGeometries returns the geometries of the component in their current configuration + virtual void GetGeometries(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest* request, ::viam::common::v1::GetGeometriesResponse* response, std::function) = 0; + virtual void GetGeometries(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest* request, ::viam::common::v1::GetGeometriesResponse* response, ::grpc::ClientUnaryReactor* reactor) = 0; + }; + typedef class async_interface experimental_async_interface; + virtual class async_interface* async() { return nullptr; } + class async_interface* experimental_async() { return async(); } + private: + virtual ::grpc::ClientAsyncResponseReaderInterface< ::viam::component::audioout::v1::PlayResponse>* AsyncPlayRaw(::grpc::ClientContext* context, const ::viam::component::audioout::v1::PlayRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::viam::component::audioout::v1::PlayResponse>* PrepareAsyncPlayRaw(::grpc::ClientContext* context, const ::viam::component::audioout::v1::PlayRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::GetPropertiesResponse>* AsyncGetPropertiesRaw(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::GetPropertiesResponse>* PrepareAsyncGetPropertiesRaw(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::DoCommandResponse>* AsyncDoCommandRaw(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::DoCommandResponse>* PrepareAsyncDoCommandRaw(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::GetGeometriesResponse>* AsyncGetGeometriesRaw(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientAsyncResponseReaderInterface< ::viam::common::v1::GetGeometriesResponse>* PrepareAsyncGetGeometriesRaw(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest& request, ::grpc::CompletionQueue* cq) = 0; + }; + class Stub final : public StubInterface { + public: + Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); + ::grpc::Status Play(::grpc::ClientContext* context, const ::viam::component::audioout::v1::PlayRequest& request, ::viam::component::audioout::v1::PlayResponse* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::viam::component::audioout::v1::PlayResponse>> AsyncPlay(::grpc::ClientContext* context, const ::viam::component::audioout::v1::PlayRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::viam::component::audioout::v1::PlayResponse>>(AsyncPlayRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::viam::component::audioout::v1::PlayResponse>> PrepareAsyncPlay(::grpc::ClientContext* context, const ::viam::component::audioout::v1::PlayRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::viam::component::audioout::v1::PlayResponse>>(PrepareAsyncPlayRaw(context, request, cq)); + } + ::grpc::Status GetProperties(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest& request, ::viam::common::v1::GetPropertiesResponse* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::viam::common::v1::GetPropertiesResponse>> AsyncGetProperties(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::viam::common::v1::GetPropertiesResponse>>(AsyncGetPropertiesRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::viam::common::v1::GetPropertiesResponse>> PrepareAsyncGetProperties(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::viam::common::v1::GetPropertiesResponse>>(PrepareAsyncGetPropertiesRaw(context, request, cq)); + } + ::grpc::Status DoCommand(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest& request, ::viam::common::v1::DoCommandResponse* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::viam::common::v1::DoCommandResponse>> AsyncDoCommand(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::viam::common::v1::DoCommandResponse>>(AsyncDoCommandRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::viam::common::v1::DoCommandResponse>> PrepareAsyncDoCommand(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::viam::common::v1::DoCommandResponse>>(PrepareAsyncDoCommandRaw(context, request, cq)); + } + ::grpc::Status GetGeometries(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest& request, ::viam::common::v1::GetGeometriesResponse* response) override; + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::viam::common::v1::GetGeometriesResponse>> AsyncGetGeometries(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::viam::common::v1::GetGeometriesResponse>>(AsyncGetGeometriesRaw(context, request, cq)); + } + std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::viam::common::v1::GetGeometriesResponse>> PrepareAsyncGetGeometries(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest& request, ::grpc::CompletionQueue* cq) { + return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::viam::common::v1::GetGeometriesResponse>>(PrepareAsyncGetGeometriesRaw(context, request, cq)); + } + class async final : + public StubInterface::async_interface { + public: + void Play(::grpc::ClientContext* context, const ::viam::component::audioout::v1::PlayRequest* request, ::viam::component::audioout::v1::PlayResponse* response, std::function) override; + void Play(::grpc::ClientContext* context, const ::viam::component::audioout::v1::PlayRequest* request, ::viam::component::audioout::v1::PlayResponse* response, ::grpc::ClientUnaryReactor* reactor) override; + void GetProperties(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest* request, ::viam::common::v1::GetPropertiesResponse* response, std::function) override; + void GetProperties(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest* request, ::viam::common::v1::GetPropertiesResponse* response, ::grpc::ClientUnaryReactor* reactor) override; + void DoCommand(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest* request, ::viam::common::v1::DoCommandResponse* response, std::function) override; + void DoCommand(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest* request, ::viam::common::v1::DoCommandResponse* response, ::grpc::ClientUnaryReactor* reactor) override; + void GetGeometries(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest* request, ::viam::common::v1::GetGeometriesResponse* response, std::function) override; + void GetGeometries(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest* request, ::viam::common::v1::GetGeometriesResponse* response, ::grpc::ClientUnaryReactor* reactor) override; + private: + friend class Stub; + explicit async(Stub* stub): stub_(stub) { } + Stub* stub() { return stub_; } + Stub* stub_; + }; + class async* async() override { return &async_stub_; } + + private: + std::shared_ptr< ::grpc::ChannelInterface> channel_; + class async async_stub_{this}; + ::grpc::ClientAsyncResponseReader< ::viam::component::audioout::v1::PlayResponse>* AsyncPlayRaw(::grpc::ClientContext* context, const ::viam::component::audioout::v1::PlayRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::viam::component::audioout::v1::PlayResponse>* PrepareAsyncPlayRaw(::grpc::ClientContext* context, const ::viam::component::audioout::v1::PlayRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::viam::common::v1::GetPropertiesResponse>* AsyncGetPropertiesRaw(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::viam::common::v1::GetPropertiesResponse>* PrepareAsyncGetPropertiesRaw(::grpc::ClientContext* context, const ::viam::common::v1::GetPropertiesRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::viam::common::v1::DoCommandResponse>* AsyncDoCommandRaw(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::viam::common::v1::DoCommandResponse>* PrepareAsyncDoCommandRaw(::grpc::ClientContext* context, const ::viam::common::v1::DoCommandRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::viam::common::v1::GetGeometriesResponse>* AsyncGetGeometriesRaw(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientAsyncResponseReader< ::viam::common::v1::GetGeometriesResponse>* PrepareAsyncGetGeometriesRaw(::grpc::ClientContext* context, const ::viam::common::v1::GetGeometriesRequest& request, ::grpc::CompletionQueue* cq) override; + const ::grpc::internal::RpcMethod rpcmethod_Play_; + const ::grpc::internal::RpcMethod rpcmethod_GetProperties_; + const ::grpc::internal::RpcMethod rpcmethod_DoCommand_; + const ::grpc::internal::RpcMethod rpcmethod_GetGeometries_; + }; + static std::unique_ptr NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions()); + + class Service : public ::grpc::Service { + public: + Service(); + virtual ~Service(); + // Play plays audio from the audioout component. + virtual ::grpc::Status Play(::grpc::ServerContext* context, const ::viam::component::audioout::v1::PlayRequest* request, ::viam::component::audioout::v1::PlayResponse* response); + // GetProperties returns the properties of the audioout. + virtual ::grpc::Status GetProperties(::grpc::ServerContext* context, const ::viam::common::v1::GetPropertiesRequest* request, ::viam::common::v1::GetPropertiesResponse* response); + // DoCommand sends/receives arbitrary commands + virtual ::grpc::Status DoCommand(::grpc::ServerContext* context, const ::viam::common::v1::DoCommandRequest* request, ::viam::common::v1::DoCommandResponse* response); + // GetGeometries returns the geometries of the component in their current configuration + virtual ::grpc::Status GetGeometries(::grpc::ServerContext* context, const ::viam::common::v1::GetGeometriesRequest* request, ::viam::common::v1::GetGeometriesResponse* response); + }; + template + class WithAsyncMethod_Play : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_Play() { + ::grpc::Service::MarkMethodAsync(0); + } + ~WithAsyncMethod_Play() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status Play(::grpc::ServerContext* /*context*/, const ::viam::component::audioout::v1::PlayRequest* /*request*/, ::viam::component::audioout::v1::PlayResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestPlay(::grpc::ServerContext* context, ::viam::component::audioout::v1::PlayRequest* request, ::grpc::ServerAsyncResponseWriter< ::viam::component::audioout::v1::PlayResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithAsyncMethod_GetProperties : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_GetProperties() { + ::grpc::Service::MarkMethodAsync(1); + } + ~WithAsyncMethod_GetProperties() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetProperties(::grpc::ServerContext* /*context*/, const ::viam::common::v1::GetPropertiesRequest* /*request*/, ::viam::common::v1::GetPropertiesResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestGetProperties(::grpc::ServerContext* context, ::viam::common::v1::GetPropertiesRequest* request, ::grpc::ServerAsyncResponseWriter< ::viam::common::v1::GetPropertiesResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(1, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithAsyncMethod_DoCommand : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_DoCommand() { + ::grpc::Service::MarkMethodAsync(2); + } + ~WithAsyncMethod_DoCommand() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status DoCommand(::grpc::ServerContext* /*context*/, const ::viam::common::v1::DoCommandRequest* /*request*/, ::viam::common::v1::DoCommandResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestDoCommand(::grpc::ServerContext* context, ::viam::common::v1::DoCommandRequest* request, ::grpc::ServerAsyncResponseWriter< ::viam::common::v1::DoCommandResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(2, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithAsyncMethod_GetGeometries : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithAsyncMethod_GetGeometries() { + ::grpc::Service::MarkMethodAsync(3); + } + ~WithAsyncMethod_GetGeometries() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetGeometries(::grpc::ServerContext* /*context*/, const ::viam::common::v1::GetGeometriesRequest* /*request*/, ::viam::common::v1::GetGeometriesResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestGetGeometries(::grpc::ServerContext* context, ::viam::common::v1::GetGeometriesRequest* request, ::grpc::ServerAsyncResponseWriter< ::viam::common::v1::GetGeometriesResponse>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(3, context, request, response, new_call_cq, notification_cq, tag); + } + }; + typedef WithAsyncMethod_Play > > > AsyncService; + template + class WithCallbackMethod_Play : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithCallbackMethod_Play() { + ::grpc::Service::MarkMethodCallback(0, + new ::grpc::internal::CallbackUnaryHandler< ::viam::component::audioout::v1::PlayRequest, ::viam::component::audioout::v1::PlayResponse>( + [this]( + ::grpc::CallbackServerContext* context, const ::viam::component::audioout::v1::PlayRequest* request, ::viam::component::audioout::v1::PlayResponse* response) { return this->Play(context, request, response); }));} + void SetMessageAllocatorFor_Play( + ::grpc::MessageAllocator< ::viam::component::audioout::v1::PlayRequest, ::viam::component::audioout::v1::PlayResponse>* allocator) { + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(0); + static_cast<::grpc::internal::CallbackUnaryHandler< ::viam::component::audioout::v1::PlayRequest, ::viam::component::audioout::v1::PlayResponse>*>(handler) + ->SetMessageAllocator(allocator); + } + ~WithCallbackMethod_Play() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status Play(::grpc::ServerContext* /*context*/, const ::viam::component::audioout::v1::PlayRequest* /*request*/, ::viam::component::audioout::v1::PlayResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* Play( + ::grpc::CallbackServerContext* /*context*/, const ::viam::component::audioout::v1::PlayRequest* /*request*/, ::viam::component::audioout::v1::PlayResponse* /*response*/) { return nullptr; } + }; + template + class WithCallbackMethod_GetProperties : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithCallbackMethod_GetProperties() { + ::grpc::Service::MarkMethodCallback(1, + new ::grpc::internal::CallbackUnaryHandler< ::viam::common::v1::GetPropertiesRequest, ::viam::common::v1::GetPropertiesResponse>( + [this]( + ::grpc::CallbackServerContext* context, const ::viam::common::v1::GetPropertiesRequest* request, ::viam::common::v1::GetPropertiesResponse* response) { return this->GetProperties(context, request, response); }));} + void SetMessageAllocatorFor_GetProperties( + ::grpc::MessageAllocator< ::viam::common::v1::GetPropertiesRequest, ::viam::common::v1::GetPropertiesResponse>* allocator) { + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(1); + static_cast<::grpc::internal::CallbackUnaryHandler< ::viam::common::v1::GetPropertiesRequest, ::viam::common::v1::GetPropertiesResponse>*>(handler) + ->SetMessageAllocator(allocator); + } + ~WithCallbackMethod_GetProperties() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetProperties(::grpc::ServerContext* /*context*/, const ::viam::common::v1::GetPropertiesRequest* /*request*/, ::viam::common::v1::GetPropertiesResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* GetProperties( + ::grpc::CallbackServerContext* /*context*/, const ::viam::common::v1::GetPropertiesRequest* /*request*/, ::viam::common::v1::GetPropertiesResponse* /*response*/) { return nullptr; } + }; + template + class WithCallbackMethod_DoCommand : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithCallbackMethod_DoCommand() { + ::grpc::Service::MarkMethodCallback(2, + new ::grpc::internal::CallbackUnaryHandler< ::viam::common::v1::DoCommandRequest, ::viam::common::v1::DoCommandResponse>( + [this]( + ::grpc::CallbackServerContext* context, const ::viam::common::v1::DoCommandRequest* request, ::viam::common::v1::DoCommandResponse* response) { return this->DoCommand(context, request, response); }));} + void SetMessageAllocatorFor_DoCommand( + ::grpc::MessageAllocator< ::viam::common::v1::DoCommandRequest, ::viam::common::v1::DoCommandResponse>* allocator) { + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(2); + static_cast<::grpc::internal::CallbackUnaryHandler< ::viam::common::v1::DoCommandRequest, ::viam::common::v1::DoCommandResponse>*>(handler) + ->SetMessageAllocator(allocator); + } + ~WithCallbackMethod_DoCommand() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status DoCommand(::grpc::ServerContext* /*context*/, const ::viam::common::v1::DoCommandRequest* /*request*/, ::viam::common::v1::DoCommandResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* DoCommand( + ::grpc::CallbackServerContext* /*context*/, const ::viam::common::v1::DoCommandRequest* /*request*/, ::viam::common::v1::DoCommandResponse* /*response*/) { return nullptr; } + }; + template + class WithCallbackMethod_GetGeometries : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithCallbackMethod_GetGeometries() { + ::grpc::Service::MarkMethodCallback(3, + new ::grpc::internal::CallbackUnaryHandler< ::viam::common::v1::GetGeometriesRequest, ::viam::common::v1::GetGeometriesResponse>( + [this]( + ::grpc::CallbackServerContext* context, const ::viam::common::v1::GetGeometriesRequest* request, ::viam::common::v1::GetGeometriesResponse* response) { return this->GetGeometries(context, request, response); }));} + void SetMessageAllocatorFor_GetGeometries( + ::grpc::MessageAllocator< ::viam::common::v1::GetGeometriesRequest, ::viam::common::v1::GetGeometriesResponse>* allocator) { + ::grpc::internal::MethodHandler* const handler = ::grpc::Service::GetHandler(3); + static_cast<::grpc::internal::CallbackUnaryHandler< ::viam::common::v1::GetGeometriesRequest, ::viam::common::v1::GetGeometriesResponse>*>(handler) + ->SetMessageAllocator(allocator); + } + ~WithCallbackMethod_GetGeometries() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetGeometries(::grpc::ServerContext* /*context*/, const ::viam::common::v1::GetGeometriesRequest* /*request*/, ::viam::common::v1::GetGeometriesResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* GetGeometries( + ::grpc::CallbackServerContext* /*context*/, const ::viam::common::v1::GetGeometriesRequest* /*request*/, ::viam::common::v1::GetGeometriesResponse* /*response*/) { return nullptr; } + }; + typedef WithCallbackMethod_Play > > > CallbackService; + typedef CallbackService ExperimentalCallbackService; + template + class WithGenericMethod_Play : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_Play() { + ::grpc::Service::MarkMethodGeneric(0); + } + ~WithGenericMethod_Play() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status Play(::grpc::ServerContext* /*context*/, const ::viam::component::audioout::v1::PlayRequest* /*request*/, ::viam::component::audioout::v1::PlayResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithGenericMethod_GetProperties : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_GetProperties() { + ::grpc::Service::MarkMethodGeneric(1); + } + ~WithGenericMethod_GetProperties() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetProperties(::grpc::ServerContext* /*context*/, const ::viam::common::v1::GetPropertiesRequest* /*request*/, ::viam::common::v1::GetPropertiesResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithGenericMethod_DoCommand : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_DoCommand() { + ::grpc::Service::MarkMethodGeneric(2); + } + ~WithGenericMethod_DoCommand() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status DoCommand(::grpc::ServerContext* /*context*/, const ::viam::common::v1::DoCommandRequest* /*request*/, ::viam::common::v1::DoCommandResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithGenericMethod_GetGeometries : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithGenericMethod_GetGeometries() { + ::grpc::Service::MarkMethodGeneric(3); + } + ~WithGenericMethod_GetGeometries() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetGeometries(::grpc::ServerContext* /*context*/, const ::viam::common::v1::GetGeometriesRequest* /*request*/, ::viam::common::v1::GetGeometriesResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + }; + template + class WithRawMethod_Play : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_Play() { + ::grpc::Service::MarkMethodRaw(0); + } + ~WithRawMethod_Play() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status Play(::grpc::ServerContext* /*context*/, const ::viam::component::audioout::v1::PlayRequest* /*request*/, ::viam::component::audioout::v1::PlayResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestPlay(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(0, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithRawMethod_GetProperties : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_GetProperties() { + ::grpc::Service::MarkMethodRaw(1); + } + ~WithRawMethod_GetProperties() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetProperties(::grpc::ServerContext* /*context*/, const ::viam::common::v1::GetPropertiesRequest* /*request*/, ::viam::common::v1::GetPropertiesResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestGetProperties(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(1, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithRawMethod_DoCommand : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_DoCommand() { + ::grpc::Service::MarkMethodRaw(2); + } + ~WithRawMethod_DoCommand() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status DoCommand(::grpc::ServerContext* /*context*/, const ::viam::common::v1::DoCommandRequest* /*request*/, ::viam::common::v1::DoCommandResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestDoCommand(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(2, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithRawMethod_GetGeometries : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawMethod_GetGeometries() { + ::grpc::Service::MarkMethodRaw(3); + } + ~WithRawMethod_GetGeometries() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetGeometries(::grpc::ServerContext* /*context*/, const ::viam::common::v1::GetGeometriesRequest* /*request*/, ::viam::common::v1::GetGeometriesResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + void RequestGetGeometries(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncResponseWriter< ::grpc::ByteBuffer>* response, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + ::grpc::Service::RequestAsyncUnary(3, context, request, response, new_call_cq, notification_cq, tag); + } + }; + template + class WithRawCallbackMethod_Play : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawCallbackMethod_Play() { + ::grpc::Service::MarkMethodRawCallback(0, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->Play(context, request, response); })); + } + ~WithRawCallbackMethod_Play() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status Play(::grpc::ServerContext* /*context*/, const ::viam::component::audioout::v1::PlayRequest* /*request*/, ::viam::component::audioout::v1::PlayResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* Play( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } + }; + template + class WithRawCallbackMethod_GetProperties : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawCallbackMethod_GetProperties() { + ::grpc::Service::MarkMethodRawCallback(1, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->GetProperties(context, request, response); })); + } + ~WithRawCallbackMethod_GetProperties() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetProperties(::grpc::ServerContext* /*context*/, const ::viam::common::v1::GetPropertiesRequest* /*request*/, ::viam::common::v1::GetPropertiesResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* GetProperties( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } + }; + template + class WithRawCallbackMethod_DoCommand : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawCallbackMethod_DoCommand() { + ::grpc::Service::MarkMethodRawCallback(2, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->DoCommand(context, request, response); })); + } + ~WithRawCallbackMethod_DoCommand() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status DoCommand(::grpc::ServerContext* /*context*/, const ::viam::common::v1::DoCommandRequest* /*request*/, ::viam::common::v1::DoCommandResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* DoCommand( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } + }; + template + class WithRawCallbackMethod_GetGeometries : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithRawCallbackMethod_GetGeometries() { + ::grpc::Service::MarkMethodRawCallback(3, + new ::grpc::internal::CallbackUnaryHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>( + [this]( + ::grpc::CallbackServerContext* context, const ::grpc::ByteBuffer* request, ::grpc::ByteBuffer* response) { return this->GetGeometries(context, request, response); })); + } + ~WithRawCallbackMethod_GetGeometries() override { + BaseClassMustBeDerivedFromService(this); + } + // disable synchronous version of this method + ::grpc::Status GetGeometries(::grpc::ServerContext* /*context*/, const ::viam::common::v1::GetGeometriesRequest* /*request*/, ::viam::common::v1::GetGeometriesResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + virtual ::grpc::ServerUnaryReactor* GetGeometries( + ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/, ::grpc::ByteBuffer* /*response*/) { return nullptr; } + }; + template + class WithStreamedUnaryMethod_Play : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithStreamedUnaryMethod_Play() { + ::grpc::Service::MarkMethodStreamed(0, + new ::grpc::internal::StreamedUnaryHandler< + ::viam::component::audioout::v1::PlayRequest, ::viam::component::audioout::v1::PlayResponse>( + [this](::grpc::ServerContext* context, + ::grpc::ServerUnaryStreamer< + ::viam::component::audioout::v1::PlayRequest, ::viam::component::audioout::v1::PlayResponse>* streamer) { + return this->StreamedPlay(context, + streamer); + })); + } + ~WithStreamedUnaryMethod_Play() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status Play(::grpc::ServerContext* /*context*/, const ::viam::component::audioout::v1::PlayRequest* /*request*/, ::viam::component::audioout::v1::PlayResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedPlay(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::viam::component::audioout::v1::PlayRequest,::viam::component::audioout::v1::PlayResponse>* server_unary_streamer) = 0; + }; + template + class WithStreamedUnaryMethod_GetProperties : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithStreamedUnaryMethod_GetProperties() { + ::grpc::Service::MarkMethodStreamed(1, + new ::grpc::internal::StreamedUnaryHandler< + ::viam::common::v1::GetPropertiesRequest, ::viam::common::v1::GetPropertiesResponse>( + [this](::grpc::ServerContext* context, + ::grpc::ServerUnaryStreamer< + ::viam::common::v1::GetPropertiesRequest, ::viam::common::v1::GetPropertiesResponse>* streamer) { + return this->StreamedGetProperties(context, + streamer); + })); + } + ~WithStreamedUnaryMethod_GetProperties() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status GetProperties(::grpc::ServerContext* /*context*/, const ::viam::common::v1::GetPropertiesRequest* /*request*/, ::viam::common::v1::GetPropertiesResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedGetProperties(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::viam::common::v1::GetPropertiesRequest,::viam::common::v1::GetPropertiesResponse>* server_unary_streamer) = 0; + }; + template + class WithStreamedUnaryMethod_DoCommand : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithStreamedUnaryMethod_DoCommand() { + ::grpc::Service::MarkMethodStreamed(2, + new ::grpc::internal::StreamedUnaryHandler< + ::viam::common::v1::DoCommandRequest, ::viam::common::v1::DoCommandResponse>( + [this](::grpc::ServerContext* context, + ::grpc::ServerUnaryStreamer< + ::viam::common::v1::DoCommandRequest, ::viam::common::v1::DoCommandResponse>* streamer) { + return this->StreamedDoCommand(context, + streamer); + })); + } + ~WithStreamedUnaryMethod_DoCommand() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status DoCommand(::grpc::ServerContext* /*context*/, const ::viam::common::v1::DoCommandRequest* /*request*/, ::viam::common::v1::DoCommandResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedDoCommand(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::viam::common::v1::DoCommandRequest,::viam::common::v1::DoCommandResponse>* server_unary_streamer) = 0; + }; + template + class WithStreamedUnaryMethod_GetGeometries : public BaseClass { + private: + void BaseClassMustBeDerivedFromService(const Service* /*service*/) {} + public: + WithStreamedUnaryMethod_GetGeometries() { + ::grpc::Service::MarkMethodStreamed(3, + new ::grpc::internal::StreamedUnaryHandler< + ::viam::common::v1::GetGeometriesRequest, ::viam::common::v1::GetGeometriesResponse>( + [this](::grpc::ServerContext* context, + ::grpc::ServerUnaryStreamer< + ::viam::common::v1::GetGeometriesRequest, ::viam::common::v1::GetGeometriesResponse>* streamer) { + return this->StreamedGetGeometries(context, + streamer); + })); + } + ~WithStreamedUnaryMethod_GetGeometries() override { + BaseClassMustBeDerivedFromService(this); + } + // disable regular version of this method + ::grpc::Status GetGeometries(::grpc::ServerContext* /*context*/, const ::viam::common::v1::GetGeometriesRequest* /*request*/, ::viam::common::v1::GetGeometriesResponse* /*response*/) override { + abort(); + return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); + } + // replace default version of method with streamed unary + virtual ::grpc::Status StreamedGetGeometries(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::viam::common::v1::GetGeometriesRequest,::viam::common::v1::GetGeometriesResponse>* server_unary_streamer) = 0; + }; + typedef WithStreamedUnaryMethod_Play > > > StreamedUnaryService; + typedef Service SplitStreamedService; + typedef WithStreamedUnaryMethod_Play > > > StreamedService; +}; + +} // namespace v1 +} // namespace audioout +} // namespace component +} // namespace viam + + +#endif // GRPC_component_2faudioout_2fv1_2faudioout_2eproto__INCLUDED diff --git a/src/viam/api/component/audioout/v1/audioout.pb.cc b/src/viam/api/component/audioout/v1/audioout.pb.cc new file mode 100644 index 000000000..e55ff0a1e --- /dev/null +++ b/src/viam/api/component/audioout/v1/audioout.pb.cc @@ -0,0 +1,538 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: component/audioout/v1/audioout.proto + +#include "component/audioout/v1/audioout.pb.h" + +#include + +#include +#include +#include +#include +#include +#include +#include +// @@protoc_insertion_point(includes) +#include + +PROTOBUF_PRAGMA_INIT_SEG + +namespace _pb = ::PROTOBUF_NAMESPACE_ID; +namespace _pbi = _pb::internal; + +namespace viam { +namespace component { +namespace audioout { +namespace v1 { +PROTOBUF_CONSTEXPR PlayRequest::PlayRequest( + ::_pbi::ConstantInitialized) + : name_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}) + , audio_data_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}) + , audio_info_(nullptr) + , extra_(nullptr){} +struct PlayRequestDefaultTypeInternal { + PROTOBUF_CONSTEXPR PlayRequestDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~PlayRequestDefaultTypeInternal() {} + union { + PlayRequest _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PlayRequestDefaultTypeInternal _PlayRequest_default_instance_; +PROTOBUF_CONSTEXPR PlayResponse::PlayResponse( + ::_pbi::ConstantInitialized){} +struct PlayResponseDefaultTypeInternal { + PROTOBUF_CONSTEXPR PlayResponseDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~PlayResponseDefaultTypeInternal() {} + union { + PlayResponse _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PlayResponseDefaultTypeInternal _PlayResponse_default_instance_; +} // namespace v1 +} // namespace audioout +} // namespace component +} // namespace viam +static ::_pb::Metadata file_level_metadata_component_2faudioout_2fv1_2faudioout_2eproto[2]; +static constexpr ::_pb::EnumDescriptor const** file_level_enum_descriptors_component_2faudioout_2fv1_2faudioout_2eproto = nullptr; +static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_component_2faudioout_2fv1_2faudioout_2eproto = nullptr; + +const uint32_t TableStruct_component_2faudioout_2fv1_2faudioout_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::viam::component::audioout::v1::PlayRequest, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::viam::component::audioout::v1::PlayRequest, name_), + PROTOBUF_FIELD_OFFSET(::viam::component::audioout::v1::PlayRequest, audio_data_), + PROTOBUF_FIELD_OFFSET(::viam::component::audioout::v1::PlayRequest, audio_info_), + PROTOBUF_FIELD_OFFSET(::viam::component::audioout::v1::PlayRequest, extra_), + ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::viam::component::audioout::v1::PlayResponse, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ +}; +static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { + { 0, -1, -1, sizeof(::viam::component::audioout::v1::PlayRequest)}, + { 10, -1, -1, sizeof(::viam::component::audioout::v1::PlayResponse)}, +}; + +static const ::_pb::Message* const file_default_instances[] = { + &::viam::component::audioout::v1::_PlayRequest_default_instance_._instance, + &::viam::component::audioout::v1::_PlayResponse_default_instance_._instance, +}; + +const char descriptor_table_protodef_component_2faudioout_2fv1_2faudioout_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = + "\n$component/audioout/v1/audioout.proto\022\032" + "viam.component.audioout.v1\032\026common/v1/co" + "mmon.proto\032\034google/api/annotations.proto" + "\032\034google/protobuf/struct.proto\"\251\001\n\013PlayR" + "equest\022\022\n\004name\030\001 \001(\tR\004name\022\035\n\naudio_data" + "\030\002 \001(\014R\taudioData\0228\n\naudio_info\030\003 \001(\0132\031." + "viam.common.v1.AudioInfoR\taudioInfo\022-\n\005e" + "xtra\030c \001(\0132\027.google.protobuf.StructR\005ext" + "ra\"\016\n\014PlayResponse2\342\004\n\017AudioOutService\022\216" + "\001\n\004Play\022\'.viam.component.audioout.v1.Pla" + "yRequest\032(.viam.component.audioout.v1.Pl" + "ayResponse\"3\202\323\344\223\002-\"+/viam/api/v1/compone" + "nt/audioout/{name}/play\022\227\001\n\rGetPropertie" + "s\022$.viam.common.v1.GetPropertiesRequest\032" + "%.viam.common.v1.GetPropertiesResponse\"9" + "\202\323\344\223\0023\0221/viam/api/v1/component/audioout/" + "{name}/properties\022\211\001\n\tDoCommand\022 .viam.c" + "ommon.v1.DoCommandRequest\032!.viam.common." + "v1.DoCommandResponse\"7\202\323\344\223\0021\"//viam/api/" + "v1/service/audioout/{name}/do_command\022\227\001" + "\n\rGetGeometries\022$.viam.common.v1.GetGeom" + "etriesRequest\032%.viam.common.v1.GetGeomet" + "riesResponse\"9\202\323\344\223\0023\0221/viam/api/v1/compo" + "nent/audioout/{name}/geometriesBG\n\036com.v" + "iam.component.audioout.v1Z%go.viam.com/a" + "pi/component/audioout/v1b\006proto3" + ; +static const ::_pbi::DescriptorTable* const descriptor_table_component_2faudioout_2fv1_2faudioout_2eproto_deps[3] = { + &::descriptor_table_common_2fv1_2fcommon_2eproto, + &::descriptor_table_google_2fapi_2fannotations_2eproto, + &::descriptor_table_google_2fprotobuf_2fstruct_2eproto, +}; +static ::_pbi::once_flag descriptor_table_component_2faudioout_2fv1_2faudioout_2eproto_once; +const ::_pbi::DescriptorTable descriptor_table_component_2faudioout_2fv1_2faudioout_2eproto = { + false, false, 1032, descriptor_table_protodef_component_2faudioout_2fv1_2faudioout_2eproto, + "component/audioout/v1/audioout.proto", + &descriptor_table_component_2faudioout_2fv1_2faudioout_2eproto_once, descriptor_table_component_2faudioout_2fv1_2faudioout_2eproto_deps, 3, 2, + schemas, file_default_instances, TableStruct_component_2faudioout_2fv1_2faudioout_2eproto::offsets, + file_level_metadata_component_2faudioout_2fv1_2faudioout_2eproto, file_level_enum_descriptors_component_2faudioout_2fv1_2faudioout_2eproto, + file_level_service_descriptors_component_2faudioout_2fv1_2faudioout_2eproto, +}; +PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_component_2faudioout_2fv1_2faudioout_2eproto_getter() { + return &descriptor_table_component_2faudioout_2fv1_2faudioout_2eproto; +} + +// Force running AddDescriptors() at dynamic initialization time. +PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::_pbi::AddDescriptorsRunner dynamic_init_dummy_component_2faudioout_2fv1_2faudioout_2eproto(&descriptor_table_component_2faudioout_2fv1_2faudioout_2eproto); +namespace viam { +namespace component { +namespace audioout { +namespace v1 { + +// =================================================================== + +class PlayRequest::_Internal { + public: + static const ::viam::common::v1::AudioInfo& audio_info(const PlayRequest* msg); + static const ::PROTOBUF_NAMESPACE_ID::Struct& extra(const PlayRequest* msg); +}; + +const ::viam::common::v1::AudioInfo& +PlayRequest::_Internal::audio_info(const PlayRequest* msg) { + return *msg->audio_info_; +} +const ::PROTOBUF_NAMESPACE_ID::Struct& +PlayRequest::_Internal::extra(const PlayRequest* msg) { + return *msg->extra_; +} +void PlayRequest::clear_audio_info() { + if (GetArenaForAllocation() == nullptr && audio_info_ != nullptr) { + delete audio_info_; + } + audio_info_ = nullptr; +} +void PlayRequest::clear_extra() { + if (GetArenaForAllocation() == nullptr && extra_ != nullptr) { + delete extra_; + } + extra_ = nullptr; +} +PlayRequest::PlayRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(); + // @@protoc_insertion_point(arena_constructor:viam.component.audioout.v1.PlayRequest) +} +PlayRequest::PlayRequest(const PlayRequest& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + name_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + name_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_name().empty()) { + name_.Set(from._internal_name(), + GetArenaForAllocation()); + } + audio_data_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + audio_data_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_audio_data().empty()) { + audio_data_.Set(from._internal_audio_data(), + GetArenaForAllocation()); + } + if (from._internal_has_audio_info()) { + audio_info_ = new ::viam::common::v1::AudioInfo(*from.audio_info_); + } else { + audio_info_ = nullptr; + } + if (from._internal_has_extra()) { + extra_ = new ::PROTOBUF_NAMESPACE_ID::Struct(*from.extra_); + } else { + extra_ = nullptr; + } + // @@protoc_insertion_point(copy_constructor:viam.component.audioout.v1.PlayRequest) +} + +inline void PlayRequest::SharedCtor() { +name_.InitDefault(); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + name_.Set("", GetArenaForAllocation()); +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +audio_data_.InitDefault(); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + audio_data_.Set("", GetArenaForAllocation()); +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +::memset(reinterpret_cast(this) + static_cast( + reinterpret_cast(&audio_info_) - reinterpret_cast(this)), + 0, static_cast(reinterpret_cast(&extra_) - + reinterpret_cast(&audio_info_)) + sizeof(extra_)); +} + +PlayRequest::~PlayRequest() { + // @@protoc_insertion_point(destructor:viam.component.audioout.v1.PlayRequest) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void PlayRequest::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + name_.Destroy(); + audio_data_.Destroy(); + if (this != internal_default_instance()) delete audio_info_; + if (this != internal_default_instance()) delete extra_; +} + +void PlayRequest::SetCachedSize(int size) const { + _cached_size_.Set(size); +} + +void PlayRequest::Clear() { +// @@protoc_insertion_point(message_clear_start:viam.component.audioout.v1.PlayRequest) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + name_.ClearToEmpty(); + audio_data_.ClearToEmpty(); + if (GetArenaForAllocation() == nullptr && audio_info_ != nullptr) { + delete audio_info_; + } + audio_info_ = nullptr; + if (GetArenaForAllocation() == nullptr && extra_ != nullptr) { + delete extra_; + } + extra_ = nullptr; + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* PlayRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // string name = 1 [json_name = "name"]; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_name(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "viam.component.audioout.v1.PlayRequest.name")); + } else + goto handle_unusual; + continue; + // bytes audio_data = 2 [json_name = "audioData"]; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { + auto str = _internal_mutable_audio_data(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // .viam.common.v1.AudioInfo audio_info = 3 [json_name = "audioInfo"]; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 26)) { + ptr = ctx->ParseMessage(_internal_mutable_audio_info(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + // .google.protobuf.Struct extra = 99 [json_name = "extra"]; + case 99: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 26)) { + ptr = ctx->ParseMessage(_internal_mutable_extra(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* PlayRequest::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:viam.component.audioout.v1.PlayRequest) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // string name = 1 [json_name = "name"]; + if (!this->_internal_name().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_name().data(), static_cast(this->_internal_name().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "viam.component.audioout.v1.PlayRequest.name"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_name(), target); + } + + // bytes audio_data = 2 [json_name = "audioData"]; + if (!this->_internal_audio_data().empty()) { + target = stream->WriteBytesMaybeAliased( + 2, this->_internal_audio_data(), target); + } + + // .viam.common.v1.AudioInfo audio_info = 3 [json_name = "audioInfo"]; + if (this->_internal_has_audio_info()) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(3, _Internal::audio_info(this), + _Internal::audio_info(this).GetCachedSize(), target, stream); + } + + // .google.protobuf.Struct extra = 99 [json_name = "extra"]; + if (this->_internal_has_extra()) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(99, _Internal::extra(this), + _Internal::extra(this).GetCachedSize(), target, stream); + } + + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { + target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:viam.component.audioout.v1.PlayRequest) + return target; +} + +size_t PlayRequest::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:viam.component.audioout.v1.PlayRequest) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string name = 1 [json_name = "name"]; + if (!this->_internal_name().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_name()); + } + + // bytes audio_data = 2 [json_name = "audioData"]; + if (!this->_internal_audio_data().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize( + this->_internal_audio_data()); + } + + // .viam.common.v1.AudioInfo audio_info = 3 [json_name = "audioInfo"]; + if (this->_internal_has_audio_info()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *audio_info_); + } + + // .google.protobuf.Struct extra = 99 [json_name = "extra"]; + if (this->_internal_has_extra()) { + total_size += 2 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *extra_); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData PlayRequest::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck, + PlayRequest::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*PlayRequest::GetClassData() const { return &_class_data_; } + +void PlayRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, + const ::PROTOBUF_NAMESPACE_ID::Message& from) { + static_cast(to)->MergeFrom( + static_cast(from)); +} + + +void PlayRequest::MergeFrom(const PlayRequest& from) { +// @@protoc_insertion_point(class_specific_merge_from_start:viam.component.audioout.v1.PlayRequest) + GOOGLE_DCHECK_NE(&from, this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_name().empty()) { + _internal_set_name(from._internal_name()); + } + if (!from._internal_audio_data().empty()) { + _internal_set_audio_data(from._internal_audio_data()); + } + if (from._internal_has_audio_info()) { + _internal_mutable_audio_info()->::viam::common::v1::AudioInfo::MergeFrom(from._internal_audio_info()); + } + if (from._internal_has_extra()) { + _internal_mutable_extra()->::PROTOBUF_NAMESPACE_ID::Struct::MergeFrom(from._internal_extra()); + } + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void PlayRequest::CopyFrom(const PlayRequest& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:viam.component.audioout.v1.PlayRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool PlayRequest::IsInitialized() const { + return true; +} + +void PlayRequest::InternalSwap(PlayRequest* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &name_, lhs_arena, + &other->name_, rhs_arena + ); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &audio_data_, lhs_arena, + &other->audio_data_, rhs_arena + ); + ::PROTOBUF_NAMESPACE_ID::internal::memswap< + PROTOBUF_FIELD_OFFSET(PlayRequest, extra_) + + sizeof(PlayRequest::extra_) + - PROTOBUF_FIELD_OFFSET(PlayRequest, audio_info_)>( + reinterpret_cast(&audio_info_), + reinterpret_cast(&other->audio_info_)); +} + +::PROTOBUF_NAMESPACE_ID::Metadata PlayRequest::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_component_2faudioout_2fv1_2faudioout_2eproto_getter, &descriptor_table_component_2faudioout_2fv1_2faudioout_2eproto_once, + file_level_metadata_component_2faudioout_2fv1_2faudioout_2eproto[0]); +} + +// =================================================================== + +class PlayResponse::_Internal { + public: +}; + +PlayResponse::PlayResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase(arena, is_message_owned) { + // @@protoc_insertion_point(arena_constructor:viam.component.audioout.v1.PlayResponse) +} +PlayResponse::PlayResponse(const PlayResponse& from) + : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase() { + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + // @@protoc_insertion_point(copy_constructor:viam.component.audioout.v1.PlayResponse) +} + + + + + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData PlayResponse::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl, + ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl, +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*PlayResponse::GetClassData() const { return &_class_data_; } + + + + + + + +::PROTOBUF_NAMESPACE_ID::Metadata PlayResponse::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_component_2faudioout_2fv1_2faudioout_2eproto_getter, &descriptor_table_component_2faudioout_2fv1_2faudioout_2eproto_once, + file_level_metadata_component_2faudioout_2fv1_2faudioout_2eproto[1]); +} + +// @@protoc_insertion_point(namespace_scope) +} // namespace v1 +} // namespace audioout +} // namespace component +} // namespace viam +PROTOBUF_NAMESPACE_OPEN +template<> PROTOBUF_NOINLINE ::viam::component::audioout::v1::PlayRequest* +Arena::CreateMaybeMessage< ::viam::component::audioout::v1::PlayRequest >(Arena* arena) { + return Arena::CreateMessageInternal< ::viam::component::audioout::v1::PlayRequest >(arena); +} +template<> PROTOBUF_NOINLINE ::viam::component::audioout::v1::PlayResponse* +Arena::CreateMaybeMessage< ::viam::component::audioout::v1::PlayResponse >(Arena* arena) { + return Arena::CreateMessageInternal< ::viam::component::audioout::v1::PlayResponse >(arena); +} +PROTOBUF_NAMESPACE_CLOSE + +// @@protoc_insertion_point(global_scope) +#include diff --git a/src/viam/api/component/audioout/v1/audioout.pb.h b/src/viam/api/component/audioout/v1/audioout.pb.h new file mode 100644 index 000000000..1495e8f45 --- /dev/null +++ b/src/viam/api/component/audioout/v1/audioout.pb.h @@ -0,0 +1,695 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: component/audioout/v1/audioout.proto + +#ifndef GOOGLE_PROTOBUF_INCLUDED_component_2faudioout_2fv1_2faudioout_2eproto +#define GOOGLE_PROTOBUF_INCLUDED_component_2faudioout_2fv1_2faudioout_2eproto + +#include +#include + +#include +#if PROTOBUF_VERSION < 3020000 +#error This file was generated by a newer version of protoc which is +#error incompatible with your Protocol Buffer headers. Please update +#error your headers. +#endif +#if 3020003 < PROTOBUF_MIN_PROTOC_VERSION +#error This file was generated by an older version of protoc which is +#error incompatible with your Protocol Buffer headers. Please +#error regenerate this file with a newer version of protoc. +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include // IWYU pragma: export +#include // IWYU pragma: export +#include +#include "common/v1/common.pb.h" +#include "google/api/annotations.pb.h" +#include +// @@protoc_insertion_point(includes) +#include +#define PROTOBUF_INTERNAL_EXPORT_component_2faudioout_2fv1_2faudioout_2eproto +PROTOBUF_NAMESPACE_OPEN +namespace internal { +class AnyMetadata; +} // namespace internal +PROTOBUF_NAMESPACE_CLOSE + +// Internal implementation detail -- do not use these members. +struct TableStruct_component_2faudioout_2fv1_2faudioout_2eproto { + static const uint32_t offsets[]; +}; +extern const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_component_2faudioout_2fv1_2faudioout_2eproto; +namespace viam { +namespace component { +namespace audioout { +namespace v1 { +class PlayRequest; +struct PlayRequestDefaultTypeInternal; +extern PlayRequestDefaultTypeInternal _PlayRequest_default_instance_; +class PlayResponse; +struct PlayResponseDefaultTypeInternal; +extern PlayResponseDefaultTypeInternal _PlayResponse_default_instance_; +} // namespace v1 +} // namespace audioout +} // namespace component +} // namespace viam +PROTOBUF_NAMESPACE_OPEN +template<> ::viam::component::audioout::v1::PlayRequest* Arena::CreateMaybeMessage<::viam::component::audioout::v1::PlayRequest>(Arena*); +template<> ::viam::component::audioout::v1::PlayResponse* Arena::CreateMaybeMessage<::viam::component::audioout::v1::PlayResponse>(Arena*); +PROTOBUF_NAMESPACE_CLOSE +namespace viam { +namespace component { +namespace audioout { +namespace v1 { + +// =================================================================== + +class PlayRequest final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:viam.component.audioout.v1.PlayRequest) */ { + public: + inline PlayRequest() : PlayRequest(nullptr) {} + ~PlayRequest() override; + explicit PROTOBUF_CONSTEXPR PlayRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + PlayRequest(const PlayRequest& from); + PlayRequest(PlayRequest&& from) noexcept + : PlayRequest() { + *this = ::std::move(from); + } + + inline PlayRequest& operator=(const PlayRequest& from) { + CopyFrom(from); + return *this; + } + inline PlayRequest& operator=(PlayRequest&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const PlayRequest& default_instance() { + return *internal_default_instance(); + } + static inline const PlayRequest* internal_default_instance() { + return reinterpret_cast( + &_PlayRequest_default_instance_); + } + static constexpr int kIndexInFileMessages = + 0; + + friend void swap(PlayRequest& a, PlayRequest& b) { + a.Swap(&b); + } + inline void Swap(PlayRequest* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(PlayRequest* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + PlayRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const PlayRequest& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom(const PlayRequest& from); + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to, const ::PROTOBUF_NAMESPACE_ID::Message& from); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _cached_size_.Get(); } + + private: + void SharedCtor(); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(PlayRequest* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "viam.component.audioout.v1.PlayRequest"; + } + protected: + explicit PlayRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + enum : int { + kNameFieldNumber = 1, + kAudioDataFieldNumber = 2, + kAudioInfoFieldNumber = 3, + kExtraFieldNumber = 99, + }; + // string name = 1 [json_name = "name"]; + void clear_name(); + const std::string& name() const; + template + void set_name(ArgT0&& arg0, ArgT... args); + std::string* mutable_name(); + PROTOBUF_NODISCARD std::string* release_name(); + void set_allocated_name(std::string* name); + private: + const std::string& _internal_name() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_name(const std::string& value); + std::string* _internal_mutable_name(); + public: + + // bytes audio_data = 2 [json_name = "audioData"]; + void clear_audio_data(); + const std::string& audio_data() const; + template + void set_audio_data(ArgT0&& arg0, ArgT... args); + std::string* mutable_audio_data(); + PROTOBUF_NODISCARD std::string* release_audio_data(); + void set_allocated_audio_data(std::string* audio_data); + private: + const std::string& _internal_audio_data() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_audio_data(const std::string& value); + std::string* _internal_mutable_audio_data(); + public: + + // .viam.common.v1.AudioInfo audio_info = 3 [json_name = "audioInfo"]; + bool has_audio_info() const; + private: + bool _internal_has_audio_info() const; + public: + void clear_audio_info(); + const ::viam::common::v1::AudioInfo& audio_info() const; + PROTOBUF_NODISCARD ::viam::common::v1::AudioInfo* release_audio_info(); + ::viam::common::v1::AudioInfo* mutable_audio_info(); + void set_allocated_audio_info(::viam::common::v1::AudioInfo* audio_info); + private: + const ::viam::common::v1::AudioInfo& _internal_audio_info() const; + ::viam::common::v1::AudioInfo* _internal_mutable_audio_info(); + public: + void unsafe_arena_set_allocated_audio_info( + ::viam::common::v1::AudioInfo* audio_info); + ::viam::common::v1::AudioInfo* unsafe_arena_release_audio_info(); + + // .google.protobuf.Struct extra = 99 [json_name = "extra"]; + bool has_extra() const; + private: + bool _internal_has_extra() const; + public: + void clear_extra(); + const ::PROTOBUF_NAMESPACE_ID::Struct& extra() const; + PROTOBUF_NODISCARD ::PROTOBUF_NAMESPACE_ID::Struct* release_extra(); + ::PROTOBUF_NAMESPACE_ID::Struct* mutable_extra(); + void set_allocated_extra(::PROTOBUF_NAMESPACE_ID::Struct* extra); + private: + const ::PROTOBUF_NAMESPACE_ID::Struct& _internal_extra() const; + ::PROTOBUF_NAMESPACE_ID::Struct* _internal_mutable_extra(); + public: + void unsafe_arena_set_allocated_extra( + ::PROTOBUF_NAMESPACE_ID::Struct* extra); + ::PROTOBUF_NAMESPACE_ID::Struct* unsafe_arena_release_extra(); + + // @@protoc_insertion_point(class_scope:viam.component.audioout.v1.PlayRequest) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr name_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr audio_data_; + ::viam::common::v1::AudioInfo* audio_info_; + ::PROTOBUF_NAMESPACE_ID::Struct* extra_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + friend struct ::TableStruct_component_2faudioout_2fv1_2faudioout_2eproto; +}; +// ------------------------------------------------------------------- + +class PlayResponse final : + public ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase /* @@protoc_insertion_point(class_definition:viam.component.audioout.v1.PlayResponse) */ { + public: + inline PlayResponse() : PlayResponse(nullptr) {} + explicit PROTOBUF_CONSTEXPR PlayResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + PlayResponse(const PlayResponse& from); + PlayResponse(PlayResponse&& from) noexcept + : PlayResponse() { + *this = ::std::move(from); + } + + inline PlayResponse& operator=(const PlayResponse& from) { + CopyFrom(from); + return *this; + } + inline PlayResponse& operator=(PlayResponse&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const PlayResponse& default_instance() { + return *internal_default_instance(); + } + static inline const PlayResponse* internal_default_instance() { + return reinterpret_cast( + &_PlayResponse_default_instance_); + } + static constexpr int kIndexInFileMessages = + 1; + + friend void swap(PlayResponse& a, PlayResponse& b) { + a.Swap(&b); + } + inline void Swap(PlayResponse* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(PlayResponse* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + PlayResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyFrom; + inline void CopyFrom(const PlayResponse& from) { + ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl(this, from); + } + using ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeFrom; + void MergeFrom(const PlayResponse& from) { + ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl(this, from); + } + public: + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "viam.component.audioout.v1.PlayResponse"; + } + protected: + explicit PlayResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + // @@protoc_insertion_point(class_scope:viam.component.audioout.v1.PlayResponse) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + friend struct ::TableStruct_component_2faudioout_2fv1_2faudioout_2eproto; +}; +// =================================================================== + + +// =================================================================== + +#ifdef __GNUC__ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wstrict-aliasing" +#endif // __GNUC__ +// PlayRequest + +// string name = 1 [json_name = "name"]; +inline void PlayRequest::clear_name() { + name_.ClearToEmpty(); +} +inline const std::string& PlayRequest::name() const { + // @@protoc_insertion_point(field_get:viam.component.audioout.v1.PlayRequest.name) + return _internal_name(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void PlayRequest::set_name(ArgT0&& arg0, ArgT... args) { + + name_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:viam.component.audioout.v1.PlayRequest.name) +} +inline std::string* PlayRequest::mutable_name() { + std::string* _s = _internal_mutable_name(); + // @@protoc_insertion_point(field_mutable:viam.component.audioout.v1.PlayRequest.name) + return _s; +} +inline const std::string& PlayRequest::_internal_name() const { + return name_.Get(); +} +inline void PlayRequest::_internal_set_name(const std::string& value) { + + name_.Set(value, GetArenaForAllocation()); +} +inline std::string* PlayRequest::_internal_mutable_name() { + + return name_.Mutable(GetArenaForAllocation()); +} +inline std::string* PlayRequest::release_name() { + // @@protoc_insertion_point(field_release:viam.component.audioout.v1.PlayRequest.name) + return name_.Release(); +} +inline void PlayRequest::set_allocated_name(std::string* name) { + if (name != nullptr) { + + } else { + + } + name_.SetAllocated(name, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (name_.IsDefault()) { + name_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:viam.component.audioout.v1.PlayRequest.name) +} + +// bytes audio_data = 2 [json_name = "audioData"]; +inline void PlayRequest::clear_audio_data() { + audio_data_.ClearToEmpty(); +} +inline const std::string& PlayRequest::audio_data() const { + // @@protoc_insertion_point(field_get:viam.component.audioout.v1.PlayRequest.audio_data) + return _internal_audio_data(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void PlayRequest::set_audio_data(ArgT0&& arg0, ArgT... args) { + + audio_data_.SetBytes(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:viam.component.audioout.v1.PlayRequest.audio_data) +} +inline std::string* PlayRequest::mutable_audio_data() { + std::string* _s = _internal_mutable_audio_data(); + // @@protoc_insertion_point(field_mutable:viam.component.audioout.v1.PlayRequest.audio_data) + return _s; +} +inline const std::string& PlayRequest::_internal_audio_data() const { + return audio_data_.Get(); +} +inline void PlayRequest::_internal_set_audio_data(const std::string& value) { + + audio_data_.Set(value, GetArenaForAllocation()); +} +inline std::string* PlayRequest::_internal_mutable_audio_data() { + + return audio_data_.Mutable(GetArenaForAllocation()); +} +inline std::string* PlayRequest::release_audio_data() { + // @@protoc_insertion_point(field_release:viam.component.audioout.v1.PlayRequest.audio_data) + return audio_data_.Release(); +} +inline void PlayRequest::set_allocated_audio_data(std::string* audio_data) { + if (audio_data != nullptr) { + + } else { + + } + audio_data_.SetAllocated(audio_data, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (audio_data_.IsDefault()) { + audio_data_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:viam.component.audioout.v1.PlayRequest.audio_data) +} + +// .viam.common.v1.AudioInfo audio_info = 3 [json_name = "audioInfo"]; +inline bool PlayRequest::_internal_has_audio_info() const { + return this != internal_default_instance() && audio_info_ != nullptr; +} +inline bool PlayRequest::has_audio_info() const { + return _internal_has_audio_info(); +} +inline const ::viam::common::v1::AudioInfo& PlayRequest::_internal_audio_info() const { + const ::viam::common::v1::AudioInfo* p = audio_info_; + return p != nullptr ? *p : reinterpret_cast( + ::viam::common::v1::_AudioInfo_default_instance_); +} +inline const ::viam::common::v1::AudioInfo& PlayRequest::audio_info() const { + // @@protoc_insertion_point(field_get:viam.component.audioout.v1.PlayRequest.audio_info) + return _internal_audio_info(); +} +inline void PlayRequest::unsafe_arena_set_allocated_audio_info( + ::viam::common::v1::AudioInfo* audio_info) { + if (GetArenaForAllocation() == nullptr) { + delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(audio_info_); + } + audio_info_ = audio_info; + if (audio_info) { + + } else { + + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:viam.component.audioout.v1.PlayRequest.audio_info) +} +inline ::viam::common::v1::AudioInfo* PlayRequest::release_audio_info() { + + ::viam::common::v1::AudioInfo* temp = audio_info_; + audio_info_ = nullptr; +#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE + auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + if (GetArenaForAllocation() == nullptr) { delete old; } +#else // PROTOBUF_FORCE_COPY_IN_RELEASE + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } +#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE + return temp; +} +inline ::viam::common::v1::AudioInfo* PlayRequest::unsafe_arena_release_audio_info() { + // @@protoc_insertion_point(field_release:viam.component.audioout.v1.PlayRequest.audio_info) + + ::viam::common::v1::AudioInfo* temp = audio_info_; + audio_info_ = nullptr; + return temp; +} +inline ::viam::common::v1::AudioInfo* PlayRequest::_internal_mutable_audio_info() { + + if (audio_info_ == nullptr) { + auto* p = CreateMaybeMessage<::viam::common::v1::AudioInfo>(GetArenaForAllocation()); + audio_info_ = p; + } + return audio_info_; +} +inline ::viam::common::v1::AudioInfo* PlayRequest::mutable_audio_info() { + ::viam::common::v1::AudioInfo* _msg = _internal_mutable_audio_info(); + // @@protoc_insertion_point(field_mutable:viam.component.audioout.v1.PlayRequest.audio_info) + return _msg; +} +inline void PlayRequest::set_allocated_audio_info(::viam::common::v1::AudioInfo* audio_info) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + if (message_arena == nullptr) { + delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(audio_info_); + } + if (audio_info) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena( + reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(audio_info)); + if (message_arena != submessage_arena) { + audio_info = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, audio_info, submessage_arena); + } + + } else { + + } + audio_info_ = audio_info; + // @@protoc_insertion_point(field_set_allocated:viam.component.audioout.v1.PlayRequest.audio_info) +} + +// .google.protobuf.Struct extra = 99 [json_name = "extra"]; +inline bool PlayRequest::_internal_has_extra() const { + return this != internal_default_instance() && extra_ != nullptr; +} +inline bool PlayRequest::has_extra() const { + return _internal_has_extra(); +} +inline const ::PROTOBUF_NAMESPACE_ID::Struct& PlayRequest::_internal_extra() const { + const ::PROTOBUF_NAMESPACE_ID::Struct* p = extra_; + return p != nullptr ? *p : reinterpret_cast( + ::PROTOBUF_NAMESPACE_ID::_Struct_default_instance_); +} +inline const ::PROTOBUF_NAMESPACE_ID::Struct& PlayRequest::extra() const { + // @@protoc_insertion_point(field_get:viam.component.audioout.v1.PlayRequest.extra) + return _internal_extra(); +} +inline void PlayRequest::unsafe_arena_set_allocated_extra( + ::PROTOBUF_NAMESPACE_ID::Struct* extra) { + if (GetArenaForAllocation() == nullptr) { + delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(extra_); + } + extra_ = extra; + if (extra) { + + } else { + + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:viam.component.audioout.v1.PlayRequest.extra) +} +inline ::PROTOBUF_NAMESPACE_ID::Struct* PlayRequest::release_extra() { + + ::PROTOBUF_NAMESPACE_ID::Struct* temp = extra_; + extra_ = nullptr; +#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE + auto* old = reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp); + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + if (GetArenaForAllocation() == nullptr) { delete old; } +#else // PROTOBUF_FORCE_COPY_IN_RELEASE + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } +#endif // !PROTOBUF_FORCE_COPY_IN_RELEASE + return temp; +} +inline ::PROTOBUF_NAMESPACE_ID::Struct* PlayRequest::unsafe_arena_release_extra() { + // @@protoc_insertion_point(field_release:viam.component.audioout.v1.PlayRequest.extra) + + ::PROTOBUF_NAMESPACE_ID::Struct* temp = extra_; + extra_ = nullptr; + return temp; +} +inline ::PROTOBUF_NAMESPACE_ID::Struct* PlayRequest::_internal_mutable_extra() { + + if (extra_ == nullptr) { + auto* p = CreateMaybeMessage<::PROTOBUF_NAMESPACE_ID::Struct>(GetArenaForAllocation()); + extra_ = p; + } + return extra_; +} +inline ::PROTOBUF_NAMESPACE_ID::Struct* PlayRequest::mutable_extra() { + ::PROTOBUF_NAMESPACE_ID::Struct* _msg = _internal_mutable_extra(); + // @@protoc_insertion_point(field_mutable:viam.component.audioout.v1.PlayRequest.extra) + return _msg; +} +inline void PlayRequest::set_allocated_extra(::PROTOBUF_NAMESPACE_ID::Struct* extra) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + if (message_arena == nullptr) { + delete reinterpret_cast< ::PROTOBUF_NAMESPACE_ID::MessageLite*>(extra_); + } + if (extra) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena( + reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(extra)); + if (message_arena != submessage_arena) { + extra = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, extra, submessage_arena); + } + + } else { + + } + extra_ = extra; + // @@protoc_insertion_point(field_set_allocated:viam.component.audioout.v1.PlayRequest.extra) +} + +// ------------------------------------------------------------------- + +// PlayResponse + +#ifdef __GNUC__ + #pragma GCC diagnostic pop +#endif // __GNUC__ +// ------------------------------------------------------------------- + + +// @@protoc_insertion_point(namespace_scope) + +} // namespace v1 +} // namespace audioout +} // namespace component +} // namespace viam + +// @@protoc_insertion_point(global_scope) + +#include +#endif // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_component_2faudioout_2fv1_2faudioout_2eproto diff --git a/src/viam/sdk/CMakeLists.txt b/src/viam/sdk/CMakeLists.txt index b9af46039..46654e7f3 100644 --- a/src/viam/sdk/CMakeLists.txt +++ b/src/viam/sdk/CMakeLists.txt @@ -60,6 +60,7 @@ endif() target_sources(viamsdk PRIVATE + common/audio.cpp common/client_helper.cpp common/exception.cpp common/instance.cpp @@ -71,6 +72,7 @@ target_sources(viamsdk common/world_state.cpp common/private/service_helper.cpp components/arm.cpp + components/audio_out.cpp components/base.cpp components/board.cpp components/button.cpp @@ -86,6 +88,8 @@ target_sources(viamsdk components/power_sensor.cpp components/private/arm_client.cpp components/private/arm_server.cpp + components/private/audio_out_client.cpp + components/private/audio_out_server.cpp components/private/base_client.cpp components/private/base_server.cpp components/private/board_client.cpp @@ -164,6 +168,7 @@ target_sources(viamsdk ${CMAKE_CURRENT_BINARY_DIR}/../.. FILES ../../viam/sdk/common/client_helper.hpp + ../../viam/sdk/common/audio.hpp ../../viam/sdk/common/exception.hpp ../../viam/sdk/common/instance.hpp ../../viam/sdk/common/linear_algebra.hpp diff --git a/src/viam/sdk/common/audio.cpp b/src/viam/sdk/common/audio.cpp new file mode 100644 index 000000000..0ecc6dae2 --- /dev/null +++ b/src/viam/sdk/common/audio.cpp @@ -0,0 +1,14 @@ +#include + +namespace viam { +namespace sdk { + +bool operator==(const properties& lhs, const properties& rhs) { + return lhs.supported_codecs == rhs.supported_codecs && + lhs.sample_rate_hz == rhs.sample_rate_hz && + lhs.num_channels == rhs.num_channels; +} + +} // namespace sdk +} // namespace viam + diff --git a/src/viam/sdk/common/audio.hpp b/src/viam/sdk/common/audio.hpp new file mode 100644 index 000000000..37522705f --- /dev/null +++ b/src/viam/sdk/common/audio.hpp @@ -0,0 +1,34 @@ +#pragma once + +#include +#include +#include +#include + +namespace viam { +namespace sdk { + + /// @struct properties + /// @brief properties of the AudioIn component + struct properties { + std::vector supported_codecs; + int sample_rate_hz; + int num_channels; + }; + + /// @struct audio_info + /// @brief Information about a piece of audio data + struct audio_info { + std::string codec; + int sample_rate_hz; + int num_channels; + }; + + /// @brief Equality operator for properties + bool operator==(const properties& lhs, const properties& rhs); + + /// @brief Inequality operator for properties + bool operator!=(const properties& lhs, const properties& rhs); + +} // namespace sdk +} // namespace viam diff --git a/src/viam/sdk/components/audio_out.cpp b/src/viam/sdk/components/audio_out.cpp new file mode 100644 index 000000000..f57d138b0 --- /dev/null +++ b/src/viam/sdk/components/audio_out.cpp @@ -0,0 +1,22 @@ +#include + +#include +#include +#include +#include + +namespace viam { +namespace sdk { + +API AudioOut::api() const { + return API::get(); +} + +API API::traits::api() { + return {kRDK, kComponent, "audio_out"}; +} + +AudioOut::AudioOut(std::string name) : Component(std::move(name)) {} + +} // namespace sdk +} // namespace viam diff --git a/src/viam/sdk/components/audio_out.hpp b/src/viam/sdk/components/audio_out.hpp new file mode 100644 index 000000000..c6e9642dd --- /dev/null +++ b/src/viam/sdk/components/audio_out.hpp @@ -0,0 +1,79 @@ +/// @file components/audio_out.hpp +/// +/// @brief Defines an `AudioOut` component. +#pragma once + +#include + +#include +#include +#include +#include + +namespace viam { +namespace sdk { + +/// @defgroup AudioOut Classes related to the AudioOut component. + +/// @class AudioOut audio_out.hpp "components/audio_out.hpp" +/// @brief An `AudioOut` is a device that can output audio. +/// @ingroup AudioOut +/// +/// This acts as an abstract parent class to be inherited from by any drivers representing +/// specific AudioOut implementations. This class cannot be used on its own. +class AudioOut : public Component { + public: + using properties = viam::sdk::properties; + using audio_info = viam::sdk::audio_info; + + /// @brief Play audio data + /// @param audio_data The raw audio data to play as bytes + /// @param info Optional info about the audio_data (codec, sample rate, channels). Pass nullptr if not needed. + inline void play(std::vector const& audio_data, audio_info const* info = nullptr) { + return play(audio_data, info, {}); + } + + /// @brief Play audio through the audioout component + /// @param audio_data The audio data to play + /// @param info Optional info about the audio_data (codec, sample rate, channels). Pass nullptr if not needed. + /// @param extra Any additional arguments to the method + virtual void play(std::vector const& audio_data, audio_info const* info, const ProtoStruct& extra) = 0; + + /// @brief Returns properties of the audio out device (supported codecs, sample rate, number of channels) + inline properties get_properties() { + return get_properties({}); + } + + /// @brief Returns properties of the audio out device (supported codecs, sample rate, number of channels) + /// @param extra Any additional arguments to the method + virtual properties get_properties(const ProtoStruct& extra) = 0; + + /// @brief Send/receive arbitrary commands to the resource. + /// @param command the command to execute. + /// @return The result of the executed command. + virtual ProtoStruct do_command(const ProtoStruct& command) = 0; + + // @brief Returns `GeometryConfig`s associated with the calling audioout. + /// @return The requested `GeometryConfig`s associated with the component. + inline std::vector get_geometries() { + return get_geometries({}); + } + + /// @brief Returns `GeometryConfig`s associated with the calling audioout. + /// @param extra Any additional arguments to the method. + /// @return The requested `GeometryConfig`s associated with the component. + virtual std::vector get_geometries(const ProtoStruct& extra) = 0; + + API api() const override; + + protected: + explicit AudioOut(std::string name); +}; + +template <> +struct API::traits { + static API api(); +}; + +} // namespace sdk +} // namespace viam diff --git a/src/viam/sdk/components/private/audio_out_client.cpp b/src/viam/sdk/components/private/audio_out_client.cpp new file mode 100644 index 000000000..8e6a613e8 --- /dev/null +++ b/src/viam/sdk/components/private/audio_out_client.cpp @@ -0,0 +1,80 @@ +#include + +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +namespace viam { +namespace sdk { +namespace impl { + +AudioOutClient::AudioOutClient(std::string name, std::shared_ptr channel) + : AudioOut(std::move(name)), + stub_(viam::component::audioout::v1::AudioOutService::NewStub(channel)), + channel_(std::move(channel)) {} + +void AudioOutClient::play(std::vector const& audio_data, audio_info const* info, const ProtoStruct& extra) { + return make_client_helper(this, *stub_, &StubType::Play) + .with(extra, [&](auto& request) { + // Convert audio_data from std::vector to string + std::string audio_data_str; + audio_data_str.reserve(audio_data.size()); + for (const auto& byte : audio_data) { + audio_data_str.push_back(static_cast(byte)); + } + request.set_audio_data(std::move(audio_data_str)); + + if (info != nullptr) { + auto* proto_info = request.mutable_audio_info(); + proto_info->set_codec(info->codec); + proto_info->set_sample_rate_hz(info->sample_rate_hz); + proto_info->set_num_channels(info->num_channels); + } + }) + .invoke([](auto& response) {}); +} + +AudioOut::properties AudioOutClient::get_properties(const ProtoStruct& extra) { + return make_client_helper(this, *stub_, &StubType::GetProperties) + .with(extra) + .invoke([](auto& response) { + // Convert repeated field to vector + std::vector codecs; + codecs.reserve(response.supported_codecs_size()); + for (const auto& codec : response.supported_codecs()) { + codecs.push_back(codec); + } + + return properties{std::move(codecs), + response.sample_rate_hz(), + response.num_channels()}; + }); +} + +ProtoStruct AudioOutClient::do_command(const ProtoStruct& command) { + return make_client_helper(this, *stub_, &StubType::DoCommand) + .with([&](auto& request) { *request.mutable_command() = to_proto(command); }) + .invoke([](auto& response) { return from_proto(response.result()); }); +} + +std::vector AudioOutClient::get_geometries(const ProtoStruct& extra) { + return make_client_helper(this, *stub_, &StubType::GetGeometries) + .with(extra) + .invoke([](auto& response) { return from_proto(response); }); +}; + +} // namespace impl +} // namespace sdk +} // namespace viam diff --git a/src/viam/sdk/components/private/audio_out_client.hpp b/src/viam/sdk/components/private/audio_out_client.hpp new file mode 100644 index 000000000..a484f4ff3 --- /dev/null +++ b/src/viam/sdk/components/private/audio_out_client.hpp @@ -0,0 +1,51 @@ +/// @file components/private/audio_out_client.hpp +/// +/// @brief Implements a gRPC client for the `AudioOut` component +#pragma once + +#include + +#include + +#include + +namespace viam { +namespace sdk { +namespace impl { + +/// @class AudioOutClient +/// @brief gRPC client implementation of an `AudioOut` component. +/// @ingroup AudioOut +class AudioOutClient : public AudioOut { + public: + using interface_type = AudioOut; + AudioOutClient(std::string name, std::shared_ptr channel); + + void play(std::vector const& audio_data, audio_info const* info, const ProtoStruct& extra) override; + properties get_properties(const ProtoStruct& extra) override; + ProtoStruct do_command(const ProtoStruct& command) override; + std::vector get_geometries(const ProtoStruct& extra) override; + + + // the `extra` param is frequently unnecessary but needs to be supported. Ideally, we'd + // like to live in a world where implementers of derived classes don't need to go out of + // their way to support two versions of a method (an `extra` version and a non-`extra` + // version), and users don't need to pass an unnecessary parameters to all method calls. + // + // To do this, we define in the parent resource class a non-virtual version of the methods + // that calls the virtual method and passes a `nullptr` by default in place of the `extra` + // param. In order to access these versions of the methods within the client code, however, + // we need to include these `using` lines. + using AudioOut::play; + using AudioOut::get_properties; + using AudioOut::get_geometries; + + private: + using StubType = viam::component::audioout::v1::AudioOutService::StubInterface; + std::unique_ptr stub_; + std::shared_ptr channel_; +}; + +} // namespace impl +} // namespace sdk +} // namespace viam diff --git a/src/viam/sdk/components/private/audio_out_server.cpp b/src/viam/sdk/components/private/audio_out_server.cpp new file mode 100644 index 000000000..c5ea5271e --- /dev/null +++ b/src/viam/sdk/components/private/audio_out_server.cpp @@ -0,0 +1,83 @@ +#include + +#include +#include +#include +#include + +namespace viam { +namespace sdk { +namespace impl { + +AudioOutServer::AudioOutServer(std::shared_ptr manager) + : ResourceServer(std::move(manager)) {} + +::grpc::Status AudioOutServer::Play( + ::grpc::ServerContext*, + const ::viam::component::audioout::v1::PlayRequest* request, + ::viam::component::audioout::v1::PlayResponse*) noexcept { + return make_service_helper("AudioOutServer::Play", this, request)( + [&](auto& helper, auto& audio_out) { + // Convert audio_data from string to std::vector + const std::string& audio_data_str = request->audio_data(); + std::vector audio_data; + audio_data.reserve(audio_data_str.size()); + for (char c : audio_data_str) { + audio_data.push_back(static_cast(c)); + } + + info audio_info; + info.supported_codecs = + + + + audio_out->play(audio_data, helper.getExtra()); + }); +} + +::grpc::Status AudioOutServer::DoCommand( + ::grpc::ServerContext*, + const ::viam::common::v1::DoCommandRequest* request, + ::viam::common::v1::DoCommandResponse* response) noexcept { + return make_service_helper("AudioOutServer::DoCommand", this, request)( + [&](auto&, auto& audio_out) { + const ProtoStruct result = audio_out->do_command(from_proto(request->command())); + *response->mutable_result() = to_proto(result); + }); +} + +::grpc::Status AudioOutServer::GetGeometries( + ::grpc::ServerContext*, + const ::viam::common::v1::GetGeometriesRequest* request, + ::viam::common::v1::GetGeometriesResponse* response) noexcept { + return make_service_helper("AudioOutServer::GetGeometries", this, request)( + [&](auto& helper, auto& audio_out) { + const std::vector geometries = + audio_out->get_geometries(helper.getExtra()); + for (const auto& geometry : geometries) { + *response->mutable_geometries()->Add() = to_proto(geometry); + } + }); +} + +::grpc::Status AudioOutServer::GetProperties( + ::grpc::ServerContext*, + const ::viam::common::v1::GetPropertiesRequest* request, + ::viam::common::v1::GetPropertiesResponse* response) noexcept { + return make_service_helper("AudioOutServer::GetProperties", this, request)( + [&](auto& helper, auto& audio_out) { + const AudioOut::properties result = audio_out->get_properties(helper.getExtra()); + + // Copy supported_codecs vector to repeated field + for (const auto& codec : result.supported_codecs) { + response->add_supported_codecs(codec); + } + + response->set_sample_rate_hz(result.sample_rate_hz); + response->set_num_channels(result.num_channels); + }); +} + +} // namespace impl +} // namespace sdk +} // namespace viam diff --git a/src/viam/sdk/components/private/audio_out_server.hpp b/src/viam/sdk/components/private/audio_out_server.hpp new file mode 100644 index 000000000..370cbcd23 --- /dev/null +++ b/src/viam/sdk/components/private/audio_out_server.hpp @@ -0,0 +1,49 @@ +/// @file components/private/audio_out_server.hpp +/// +/// @brief Implements a gRPC server for the `AudioOut` component +#pragma once + +#include +#include + +#include +#include +#include + +namespace viam { +namespace sdk { +namespace impl { + +/// @class AudioOutServer +/// @brief gRPC server implementation of an `AudioOut` component. +/// @ingroup AudioOut +class AudioOutServer : public ResourceServer, + public viam::component::audioout::v1::AudioOutService::Service { + public: + using interface_type = AudioOut; + using service_type = viam::component::audioout::v1::AudioOutService; + + explicit AudioOutServer(std::shared_ptr manager); + + ::grpc::Status Play(::grpc::ServerContext* context, + const ::viam::component::audioout::v1::PlayRequest* request, + ::viam::component::audioout::v1::PlayResponse* response) noexcept override; + + ::grpc::Status DoCommand(::grpc::ServerContext* context, + const ::viam::common::v1::DoCommandRequest* request, + ::viam::common::v1::DoCommandResponse* response) noexcept override; + + ::grpc::Status GetGeometries( + ::grpc::ServerContext* context, + const ::viam::common::v1::GetGeometriesRequest* request, + ::viam::common::v1::GetGeometriesResponse* response) noexcept override; + + ::grpc::Status GetProperties( + ::grpc::ServerContext* context, + const ::viam::common::v1::GetPropertiesRequest* request, + ::viam::common::v1::GetPropertiesResponse* response) noexcept override; +}; + +} // namespace impl +} // namespace sdk +} // namespace viam diff --git a/src/viam/sdk/registry/registry.cpp b/src/viam/sdk/registry/registry.cpp index 792ceb0fe..498fe3ad4 100644 --- a/src/viam/sdk/registry/registry.cpp +++ b/src/viam/sdk/registry/registry.cpp @@ -14,6 +14,10 @@ #include #include #include +#include +#include +#include +#include #include #include #include @@ -201,6 +205,8 @@ const google::protobuf::ServiceDescriptor* ResourceServerRegistration::service_d void Registry::register_resources() { // Register all components register_resource(); + register_resource(); + register_resource(); register_resource(); register_resource(); register_resource(); diff --git a/src/viam/sdk/tests/CMakeLists.txt b/src/viam/sdk/tests/CMakeLists.txt index a054ed5b4..00d3349a8 100644 --- a/src/viam/sdk/tests/CMakeLists.txt +++ b/src/viam/sdk/tests/CMakeLists.txt @@ -22,6 +22,7 @@ target_sources(viamsdk_test mocks/generic_mocks.cpp mocks/mlmodel_mocks.cpp mocks/mock_arm.cpp + mocks/mock_audio_out.cpp mocks/mock_base.cpp mocks/mock_board.cpp mocks/mock_button.cpp @@ -55,6 +56,7 @@ target_link_libraries(viamsdk_test viamcppsdk_link_viam_api(viamsdk_test PUBLIC) viamcppsdk_add_boost_test(test_arm.cpp) +viamcppsdk_add_boost_test(test_audio_out.cpp) viamcppsdk_add_boost_test(test_base.cpp) viamcppsdk_add_boost_test(test_board.cpp) viamcppsdk_add_boost_test(test_button.cpp) diff --git a/src/viam/sdk/tests/mocks/mock_audio_out.cpp b/src/viam/sdk/tests/mocks/mock_audio_out.cpp new file mode 100644 index 000000000..642a000c8 --- /dev/null +++ b/src/viam/sdk/tests/mocks/mock_audio_out.cpp @@ -0,0 +1,48 @@ +#include + +#include +#include +#include +#include +#include + +namespace viam { +namespace sdktests { +namespace audioout { + +using namespace viam::sdk; + +void MockAudioOut::play(std::vector const& audio_data, const ProtoStruct& extra) { + // Store the audio data for verification in tests + last_played_audio_ = audio_data; +} + +AudioOut::properties MockAudioOut::get_properties(const ProtoStruct& extra) { + return properties_; +} + +ProtoStruct MockAudioOut::do_command(const ProtoStruct& command) { + return map_; +} + +std::shared_ptr MockAudioOut::get_mock_audio_out() { + auto audio_out = std::make_shared("mock_audio_out"); + + audio_out->properties_ = fake_properties(); + audio_out->map_ = fake_map(); + audio_out->geometries_ = fake_geometries(); + + return audio_out; +} + +properties fake_properties() { + properties props; + props.supported_codecs = {"pcm16", "pcm32"}; + props.sample_rate_hz = 48000; + props.num_channels = 2; + return props; +} + +} // namespace audioout +} // namespace sdktests +} // namespace viam diff --git a/src/viam/sdk/tests/mocks/mock_audio_out.hpp b/src/viam/sdk/tests/mocks/mock_audio_out.hpp new file mode 100644 index 000000000..3eca01cfb --- /dev/null +++ b/src/viam/sdk/tests/mocks/mock_audio_out.hpp @@ -0,0 +1,42 @@ +#pragma once + +#include +#include +#include +#include + +namespace viam { +namespace sdktests { +namespace audioout { + +using viam::sdk::AudioOut; +using viam::sdk::properties; + +class MockAudioOut : public AudioOut { + public: + void play(std::vector const& audio_data, + const sdk::ProtoStruct& extra) override; + + AudioOut::properties get_properties(const sdk::ProtoStruct& extra) override; + + viam::sdk::ProtoStruct do_command(const viam::sdk::ProtoStruct& command) override; + + static std::shared_ptr get_mock_audio_out(); + + MockAudioOut(std::string name) : AudioOut(std::move(name)) {} + + using AudioOut::play; + using AudioOut::get_properties; + + private: + properties properties_; + viam::sdk::ProtoStruct map_; + std::vector geometries_; + std::vector last_played_audio_; +}; + +properties fake_properties(); + +} // namespace audioout +} // namespace sdktests +} // namespace viam diff --git a/src/viam/sdk/tests/test_audio_out.cpp b/src/viam/sdk/tests/test_audio_out.cpp new file mode 100644 index 000000000..cd475c84f --- /dev/null +++ b/src/viam/sdk/tests/test_audio_out.cpp @@ -0,0 +1,79 @@ +#define BOOST_TEST_MODULE test module test_audio_out + +#include + +#include +#include +#include +#include + +namespace viam { +namespace sdktests { + +using namespace audioout; +using namespace viam::sdk; + +BOOST_AUTO_TEST_SUITE(test_audio_out) + +BOOST_AUTO_TEST_CASE(mock_get_api) { + const MockAudioOut audio_out("mock_audio_out"); + auto api = audio_out.api(); + auto static_api = API::get(); + + BOOST_CHECK_EQUAL(api, static_api); + BOOST_CHECK_EQUAL(static_api.resource_subtype(), "audio_out"); +} + +BOOST_AUTO_TEST_CASE(test_play) { + std::shared_ptr mock = MockAudioOut::get_mock_audio_out(); + client_to_mock_pipeline(mock, [](AudioOut& client) { + // Create some test audio data + std::vector audio_data; + audio_data.push_back(std::byte{0x01}); + audio_data.push_back(std::byte{0x02}); + audio_data.push_back(std::byte{0x03}); + audio_data.push_back(std::byte{0x04}); + + client.play(audio_data, {}); + // Note: We could verify the data was received by the mock if needed + }); +} + +BOOST_AUTO_TEST_CASE(test_get_properties) { + std::shared_ptr mock = MockAudioOut::get_mock_audio_out(); + client_to_mock_pipeline(mock, [](AudioOut& client) { + properties expected = fake_properties(); + + properties result = client.get_properties({}); + + BOOST_CHECK(result == expected); + }); +} + +BOOST_AUTO_TEST_CASE(test_do_command) { + std::shared_ptr mock = MockAudioOut::get_mock_audio_out(); + client_to_mock_pipeline(mock, [](AudioOut& client) { + ProtoStruct expected = fake_map(); + + ProtoStruct command = fake_map(); + ProtoStruct result_map = client.do_command(command); + + BOOST_CHECK(result_map.at("test") == expected.at("test")); + }); +} + +BOOST_AUTO_TEST_CASE(test_get_geometries) { + std::shared_ptr mock = MockAudioOut::get_mock_audio_out(); + client_to_mock_pipeline(mock, [](AudioOut& client) { + std::vector expected_geometries = fake_geometries(); + + std::vector result_geometries = client.get_geometries({}); + + BOOST_CHECK(result_geometries == expected_geometries); + }); +} + +BOOST_AUTO_TEST_SUITE_END() + +} // namespace sdktests +} // namespace viam From 84bbaa2888d63543b0996534270aef590d81162a Mon Sep 17 00:00:00 2001 From: oliviamiller <106617921+oliviamiller@users.noreply.github.com> Date: Wed, 22 Oct 2025 09:36:03 -0500 Subject: [PATCH 02/12] improve tests --- src/viam/sdk/common/audio.hpp | 11 +++++ .../components/private/audio_out_server.cpp | 11 +++-- src/viam/sdk/registry/registry.cpp | 3 -- src/viam/sdk/tests/mocks/mock_audio_out.cpp | 8 +++- src/viam/sdk/tests/mocks/mock_audio_out.hpp | 12 +++--- src/viam/sdk/tests/test_audio_out.cpp | 42 ++++++++++++++----- 6 files changed, 61 insertions(+), 26 deletions(-) diff --git a/src/viam/sdk/common/audio.hpp b/src/viam/sdk/common/audio.hpp index 37522705f..b244523d3 100644 --- a/src/viam/sdk/common/audio.hpp +++ b/src/viam/sdk/common/audio.hpp @@ -8,6 +8,17 @@ namespace viam { namespace sdk { + /// @brief Common audio codecs + namespace audio_codecs { + constexpr const char* PCM_16 = "pcm16"; + constexpr const char* PCM_32 = "pcm32"; + constexpr const char* PCM_32_FLOAT = "pcm32_float"; + constexpr const char* MP3 = "mp3"; + constexpr const char* AAC = "aac"; + constexpr const char* OPUS = "opus"; + constexpr const char* FLAC = "flac"; + } // namespace audio_codecs + /// @struct properties /// @brief properties of the AudioIn component struct properties { diff --git a/src/viam/sdk/components/private/audio_out_server.cpp b/src/viam/sdk/components/private/audio_out_server.cpp index c5ea5271e..998c01abe 100644 --- a/src/viam/sdk/components/private/audio_out_server.cpp +++ b/src/viam/sdk/components/private/audio_out_server.cpp @@ -26,12 +26,11 @@ ::grpc::Status AudioOutServer::Play( audio_data.push_back(static_cast(c)); } - info audio_info; - info.supported_codecs = - - - - audio_out->play(audio_data, helper.getExtra()); + audio_info info; + info.codec = request->audio_info().codec(); + info.sample_rate_hz = request->audio_info().sample_rate_hz(); + info.num_channels = request->audio_info().num_channels(); + audio_out->play(audio_data, &info, helper.getExtra()); }); } diff --git a/src/viam/sdk/registry/registry.cpp b/src/viam/sdk/registry/registry.cpp index 498fe3ad4..f5194dcb7 100644 --- a/src/viam/sdk/registry/registry.cpp +++ b/src/viam/sdk/registry/registry.cpp @@ -14,8 +14,6 @@ #include #include #include -#include -#include #include #include #include @@ -205,7 +203,6 @@ const google::protobuf::ServiceDescriptor* ResourceServerRegistration::service_d void Registry::register_resources() { // Register all components register_resource(); - register_resource(); register_resource(); register_resource(); register_resource(); diff --git a/src/viam/sdk/tests/mocks/mock_audio_out.cpp b/src/viam/sdk/tests/mocks/mock_audio_out.cpp index 642a000c8..d4769be6d 100644 --- a/src/viam/sdk/tests/mocks/mock_audio_out.cpp +++ b/src/viam/sdk/tests/mocks/mock_audio_out.cpp @@ -12,9 +12,9 @@ namespace audioout { using namespace viam::sdk; -void MockAudioOut::play(std::vector const& audio_data, const ProtoStruct& extra) { - // Store the audio data for verification in tests +void MockAudioOut::play(std::vector const& audio_data, audio_info const* info,const ProtoStruct& extra) { last_played_audio_ = audio_data; + last_played_audio_info_ = info; } AudioOut::properties MockAudioOut::get_properties(const ProtoStruct& extra) { @@ -25,6 +25,10 @@ ProtoStruct MockAudioOut::do_command(const ProtoStruct& command) { return map_; } +std::vector MockAudioOut::get_geometries(const ProtoStruct&) { + return geometries_; +} + std::shared_ptr MockAudioOut::get_mock_audio_out() { auto audio_out = std::make_shared("mock_audio_out"); diff --git a/src/viam/sdk/tests/mocks/mock_audio_out.hpp b/src/viam/sdk/tests/mocks/mock_audio_out.hpp index 3eca01cfb..8df4648c7 100644 --- a/src/viam/sdk/tests/mocks/mock_audio_out.hpp +++ b/src/viam/sdk/tests/mocks/mock_audio_out.hpp @@ -11,15 +11,16 @@ namespace audioout { using viam::sdk::AudioOut; using viam::sdk::properties; +using namespace viam::sdk; class MockAudioOut : public AudioOut { public: - void play(std::vector const& audio_data, + void play(std::vector const& audio_data, + audio_info const* info, const sdk::ProtoStruct& extra) override; - AudioOut::properties get_properties(const sdk::ProtoStruct& extra) override; - viam::sdk::ProtoStruct do_command(const viam::sdk::ProtoStruct& command) override; + std::vector get_geometries(const ProtoStruct& extra) override; static std::shared_ptr get_mock_audio_out(); @@ -28,11 +29,12 @@ class MockAudioOut : public AudioOut { using AudioOut::play; using AudioOut::get_properties; - private: properties properties_; viam::sdk::ProtoStruct map_; std::vector geometries_; - std::vector last_played_audio_; + std::vector last_played_audio_; + audio_info const* last_played_audio_info_; + }; properties fake_properties(); diff --git a/src/viam/sdk/tests/test_audio_out.cpp b/src/viam/sdk/tests/test_audio_out.cpp index cd475c84f..d2e817417 100644 --- a/src/viam/sdk/tests/test_audio_out.cpp +++ b/src/viam/sdk/tests/test_audio_out.cpp @@ -24,18 +24,40 @@ BOOST_AUTO_TEST_CASE(mock_get_api) { BOOST_CHECK_EQUAL(static_api.resource_subtype(), "audio_out"); } + BOOST_AUTO_TEST_CASE(test_play) { std::shared_ptr mock = MockAudioOut::get_mock_audio_out(); - client_to_mock_pipeline(mock, [](AudioOut& client) { - // Create some test audio data - std::vector audio_data; - audio_data.push_back(std::byte{0x01}); - audio_data.push_back(std::byte{0x02}); - audio_data.push_back(std::byte{0x03}); - audio_data.push_back(std::byte{0x04}); - - client.play(audio_data, {}); - // Note: We could verify the data was received by the mock if needed + client_to_mock_pipeline(mock, [mock](AudioOut& client) { + std::vector audio_data; + audio_data.push_back(1); + audio_data.push_back(2); + audio_data.push_back(3); + audio_data.push_back(4); + + audio_info info; + info.codec = audio_codecs::PCM_16; + info.sample_rate_hz = 44100; + info.num_channels = 1; + + client.play(audio_data, &info, {}); + BOOST_CHECK(mock->last_played_audio_ == audio_data); + BOOST_CHECK(mock->last_played_audio_info_ == &info); + + }); +} + +BOOST_AUTO_TEST_CASE(test_play_no_audio_info) { + std::shared_ptr mock = MockAudioOut::get_mock_audio_out(); + client_to_mock_pipeline(mock, [mock](AudioOut& client) { + std::vector audio_data; + audio_data.push_back(4); + audio_data.push_back(2); + audio_data.push_back(4); + audio_data.push_back(4); + + client.play(audio_data, nullptr, {}); + BOOST_CHECK(mock->last_played_audio_ == audio_data); + }); } From 1655c8ee51591c1da0dbf1956c2b03ba311a6107 Mon Sep 17 00:00:00 2001 From: oliviamiller <106617921+oliviamiller@users.noreply.github.com> Date: Wed, 22 Oct 2025 09:36:18 -0500 Subject: [PATCH 03/12] cmake --- src/viam/api/CMakeLists.txt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/viam/api/CMakeLists.txt b/src/viam/api/CMakeLists.txt index 88328b802..97e841b7a 100644 --- a/src/viam/api/CMakeLists.txt +++ b/src/viam/api/CMakeLists.txt @@ -132,6 +132,10 @@ if (VIAMCPPSDK_USE_DYNAMIC_PROTOS) ${PROTO_GEN_DIR}/component/arm/v1/arm.grpc.pb.h ${PROTO_GEN_DIR}/component/arm/v1/arm.pb.cc ${PROTO_GEN_DIR}/component/arm/v1/arm.pb.h + ${PROTO_GEN_DIR}/component/audioout/v1/audioout.grpc.pb.cc + ${PROTO_GEN_DIR}/component/audioout/v1/audioout.grpc.pb.h + ${PROTO_GEN_DIR}/component/audioout/v1/audioout.pb.cc + ${PROTO_GEN_DIR}/component/audioout/v1/audioout.pb.h ${PROTO_GEN_DIR}/component/base/v1/base.grpc.pb.cc ${PROTO_GEN_DIR}/component/base/v1/base.grpc.pb.h ${PROTO_GEN_DIR}/component/base/v1/base.pb.cc @@ -294,6 +298,8 @@ target_sources(viamapi ${PROTO_GEN_DIR}/common/v1/common.pb.cc ${PROTO_GEN_DIR}/component/arm/v1/arm.grpc.pb.cc ${PROTO_GEN_DIR}/component/arm/v1/arm.pb.cc + ${PROTO_GEN_DIR}/component/audioout/v1/audioout.grpc.pb.cc + ${PROTO_GEN_DIR}/component/audioout/v1/audioout.pb.cc ${PROTO_GEN_DIR}/component/base/v1/base.grpc.pb.cc ${PROTO_GEN_DIR}/component/base/v1/base.pb.cc ${PROTO_GEN_DIR}/component/board/v1/board.grpc.pb.cc @@ -358,6 +364,8 @@ target_sources(viamapi ${PROTO_GEN_DIR}/../../viam/api/common/v1/common.pb.h ${PROTO_GEN_DIR}/../../viam/api/component/arm/v1/arm.grpc.pb.h ${PROTO_GEN_DIR}/../../viam/api/component/arm/v1/arm.pb.h + ${PROTO_GEN_DIR}/../../viam/api/component/audioout/v1/audioout.grpc.pb.h + ${PROTO_GEN_DIR}/../../viam/api/component/audioout/v1/audioout.pb.h ${PROTO_GEN_DIR}/../../viam/api/component/base/v1/base.grpc.pb.h ${PROTO_GEN_DIR}/../../viam/api/component/base/v1/base.pb.h ${PROTO_GEN_DIR}/../../viam/api/component/board/v1/board.grpc.pb.h From 394d8db84b86eee378e9b6399fb9f8b2e8f9c1ce Mon Sep 17 00:00:00 2001 From: oliviamiller <106617921+oliviamiller@users.noreply.github.com> Date: Wed, 22 Oct 2025 11:33:46 -0500 Subject: [PATCH 04/12] clean up --- src/viam/sdk/common/audio.cpp | 72 +++++++++++++++++-- src/viam/sdk/common/audio.hpp | 72 ++++++++++--------- src/viam/sdk/components/audio_out.hpp | 10 +-- .../components/private/audio_out_client.cpp | 8 +-- .../components/private/audio_out_client.hpp | 13 +--- .../components/private/audio_out_server.cpp | 15 ++-- src/viam/sdk/tests/mocks/mock_audio_out.hpp | 12 ++-- src/viam/sdk/tests/test_audio_out.cpp | 18 ++--- 8 files changed, 143 insertions(+), 77 deletions(-) diff --git a/src/viam/sdk/common/audio.cpp b/src/viam/sdk/common/audio.cpp index 0ecc6dae2..186a83c75 100644 --- a/src/viam/sdk/common/audio.cpp +++ b/src/viam/sdk/common/audio.cpp @@ -1,14 +1,76 @@ #include +#include +#include +#include + namespace viam { namespace sdk { -bool operator==(const properties& lhs, const properties& rhs) { - return lhs.supported_codecs == rhs.supported_codecs && - lhs.sample_rate_hz == rhs.sample_rate_hz && - lhs.num_channels == rhs.num_channels; +namespace { +template +void write_value(std::ofstream& out, const T& value) { + out.write(reinterpret_cast(&value), sizeof(value)); +} +} // anonymous namespace + +bool operator==(const audio_properties& lhs, const audio_properties& rhs) { + return std::tie(lhs.supported_codecs, lhs.sample_rate_hz, lhs.num_channels) == + std::tie(rhs.supported_codecs, rhs.sample_rate_hz, rhs.num_channels); +} + +bool operator==(const audio_info& lhs, const audio_info& rhs) { + return std::tie(lhs.codec, lhs.sample_rate_hz, lhs.num_channels) == + std::tie(rhs.codec, rhs.sample_rate_hz, rhs.num_channels); +} + +uint16_t get_bits_per_sample(const std::string& codec) { + if (codec == audio_codecs::PCM_16) { + return 16; + } + if (codec == audio_codecs::PCM_32 || codec == audio_codecs::PCM_32_FLOAT) { + return 32; + } + throw std::runtime_error("Unsupported codec for WAV file: " + codec); +} + +void write_wav_file(const std::string& filename, + const std::vector& audio_data, + const std::string& codec, + uint32_t sample_rate_hz, + uint16_t num_channels) { + std::ofstream outfile(filename, std::ios::binary); + if (!outfile.is_open()) { + throw std::runtime_error("Failed to open file for writing: " + filename); + } + + const uint16_t bits_per_sample = get_bits_per_sample(codec); + const uint32_t data_size = audio_data.size(); + const uint32_t byte_rate = sample_rate_hz * num_channels * (bits_per_sample / 8); + const uint16_t block_align = num_channels * (bits_per_sample / 8); + + outfile.write("RIFF", 4); + const uint32_t chunk_size = 36 + data_size; + write_value(outfile, chunk_size); + outfile.write("WAVE", 4); + + outfile.write("fmt ", 4); + const uint32_t subchunk1_size = 16; + write_value(outfile, subchunk1_size); + const uint16_t audio_format = 1; + write_value(outfile, audio_format); + write_value(outfile, num_channels); + write_value(outfile, sample_rate_hz); + write_value(outfile, byte_rate); + write_value(outfile, block_align); + write_value(outfile, bits_per_sample); + + outfile.write("data", 4); + write_value(outfile, data_size); + outfile.write(reinterpret_cast(audio_data.data()), data_size); + + outfile.close(); } } // namespace sdk } // namespace viam - diff --git a/src/viam/sdk/common/audio.hpp b/src/viam/sdk/common/audio.hpp index b244523d3..e060d9733 100644 --- a/src/viam/sdk/common/audio.hpp +++ b/src/viam/sdk/common/audio.hpp @@ -8,38 +8,46 @@ namespace viam { namespace sdk { - /// @brief Common audio codecs - namespace audio_codecs { - constexpr const char* PCM_16 = "pcm16"; - constexpr const char* PCM_32 = "pcm32"; - constexpr const char* PCM_32_FLOAT = "pcm32_float"; - constexpr const char* MP3 = "mp3"; - constexpr const char* AAC = "aac"; - constexpr const char* OPUS = "opus"; - constexpr const char* FLAC = "flac"; - } // namespace audio_codecs - - /// @struct properties - /// @brief properties of the AudioIn component - struct properties { - std::vector supported_codecs; - int sample_rate_hz; - int num_channels; - }; - - /// @struct audio_info - /// @brief Information about a piece of audio data - struct audio_info { - std::string codec; - int sample_rate_hz; - int num_channels; - }; - - /// @brief Equality operator for properties - bool operator==(const properties& lhs, const properties& rhs); - - /// @brief Inequality operator for properties - bool operator!=(const properties& lhs, const properties& rhs); +/// @brief Common audio codecs +namespace audio_codecs { +constexpr const char* PCM_16 = "pcm16"; +constexpr const char* PCM_32 = "pcm32"; +constexpr const char* PCM_32_FLOAT = "pcm32_float"; +constexpr const char* MP3 = "mp3"; +constexpr const char* AAC = "aac"; +constexpr const char* OPUS = "opus"; +constexpr const char* FLAC = "flac"; +} // namespace audio_codecs + +/// @struct audio_properties +/// @brief Properties of an audio component (input or output) +struct audio_properties { + std::vector supported_codecs; + int sample_rate_hz; + int num_channels; +}; + +/// @struct audio_info +/// @brief Information about a piece of audio data +struct audio_info { + std::string codec; + int sample_rate_hz; + int num_channels; +}; + +/// @brief Equality operator for properties +bool operator==(const audio_properties& lhs, const audio_properties& rhs); + +/// @brief Equality operator for audio_info +bool operator==(const audio_info& lhs, const audio_info& rhs); + +uint16_t get_bits_per_sample(const std::string& codec); + +void write_wav_file(const std::string& filename, + const std::vector& audio_data, + const std::string& codec, + uint32_t sample_rate_hz, + uint16_t num_channels); } // namespace sdk } // namespace viam diff --git a/src/viam/sdk/components/audio_out.hpp b/src/viam/sdk/components/audio_out.hpp index c6e9642dd..ecefacd1d 100644 --- a/src/viam/sdk/components/audio_out.hpp +++ b/src/viam/sdk/components/audio_out.hpp @@ -3,6 +3,7 @@ /// @brief Defines an `AudioOut` component. #pragma once +#include #include #include @@ -23,13 +24,12 @@ namespace sdk { /// specific AudioOut implementations. This class cannot be used on its own. class AudioOut : public Component { public: - using properties = viam::sdk::properties; using audio_info = viam::sdk::audio_info; /// @brief Play audio data /// @param audio_data The raw audio data to play as bytes /// @param info Optional info about the audio_data (codec, sample rate, channels). Pass nullptr if not needed. - inline void play(std::vector const& audio_data, audio_info const* info = nullptr) { + inline void play(std::vector const& audio_data, std::shared_ptr info = nullptr) { return play(audio_data, info, {}); } @@ -37,16 +37,16 @@ class AudioOut : public Component { /// @param audio_data The audio data to play /// @param info Optional info about the audio_data (codec, sample rate, channels). Pass nullptr if not needed. /// @param extra Any additional arguments to the method - virtual void play(std::vector const& audio_data, audio_info const* info, const ProtoStruct& extra) = 0; + virtual void play(std::vector const& audio_data, std::shared_ptr info, const ProtoStruct& extra) = 0; /// @brief Returns properties of the audio out device (supported codecs, sample rate, number of channels) - inline properties get_properties() { + inline audio_properties get_properties() { return get_properties({}); } /// @brief Returns properties of the audio out device (supported codecs, sample rate, number of channels) /// @param extra Any additional arguments to the method - virtual properties get_properties(const ProtoStruct& extra) = 0; + virtual audio_properties get_properties(const ProtoStruct& extra) = 0; /// @brief Send/receive arbitrary commands to the resource. /// @param command the command to execute. diff --git a/src/viam/sdk/components/private/audio_out_client.cpp b/src/viam/sdk/components/private/audio_out_client.cpp index 8e6a613e8..d501d907f 100644 --- a/src/viam/sdk/components/private/audio_out_client.cpp +++ b/src/viam/sdk/components/private/audio_out_client.cpp @@ -25,7 +25,7 @@ AudioOutClient::AudioOutClient(std::string name, std::shared_ptr stub_(viam::component::audioout::v1::AudioOutService::NewStub(channel)), channel_(std::move(channel)) {} -void AudioOutClient::play(std::vector const& audio_data, audio_info const* info, const ProtoStruct& extra) { +void AudioOutClient::play(std::vector const& audio_data, std::shared_ptr info, const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::Play) .with(extra, [&](auto& request) { // Convert audio_data from std::vector to string @@ -36,7 +36,7 @@ void AudioOutClient::play(std::vector const& audio_data, audio_info con } request.set_audio_data(std::move(audio_data_str)); - if (info != nullptr) { + if (info) { auto* proto_info = request.mutable_audio_info(); proto_info->set_codec(info->codec); proto_info->set_sample_rate_hz(info->sample_rate_hz); @@ -46,7 +46,7 @@ void AudioOutClient::play(std::vector const& audio_data, audio_info con .invoke([](auto& response) {}); } -AudioOut::properties AudioOutClient::get_properties(const ProtoStruct& extra) { +audio_properties AudioOutClient::get_properties(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetProperties) .with(extra) .invoke([](auto& response) { @@ -57,7 +57,7 @@ AudioOut::properties AudioOutClient::get_properties(const ProtoStruct& extra) { codecs.push_back(codec); } - return properties{std::move(codecs), + return audio_properties{std::move(codecs), response.sample_rate_hz(), response.num_channels()}; }); diff --git a/src/viam/sdk/components/private/audio_out_client.hpp b/src/viam/sdk/components/private/audio_out_client.hpp index a484f4ff3..3c5645635 100644 --- a/src/viam/sdk/components/private/audio_out_client.hpp +++ b/src/viam/sdk/components/private/audio_out_client.hpp @@ -21,21 +21,12 @@ class AudioOutClient : public AudioOut { using interface_type = AudioOut; AudioOutClient(std::string name, std::shared_ptr channel); - void play(std::vector const& audio_data, audio_info const* info, const ProtoStruct& extra) override; - properties get_properties(const ProtoStruct& extra) override; + void play(std::vector const& audio_data, std::shared_ptr info, const ProtoStruct& extra) override; + audio_properties get_properties(const ProtoStruct& extra) override; ProtoStruct do_command(const ProtoStruct& command) override; std::vector get_geometries(const ProtoStruct& extra) override; - // the `extra` param is frequently unnecessary but needs to be supported. Ideally, we'd - // like to live in a world where implementers of derived classes don't need to go out of - // their way to support two versions of a method (an `extra` version and a non-`extra` - // version), and users don't need to pass an unnecessary parameters to all method calls. - // - // To do this, we define in the parent resource class a non-virtual version of the methods - // that calls the virtual method and passes a `nullptr` by default in place of the `extra` - // param. In order to access these versions of the methods within the client code, however, - // we need to include these `using` lines. using AudioOut::play; using AudioOut::get_properties; using AudioOut::get_geometries; diff --git a/src/viam/sdk/components/private/audio_out_server.cpp b/src/viam/sdk/components/private/audio_out_server.cpp index 998c01abe..e13aae545 100644 --- a/src/viam/sdk/components/private/audio_out_server.cpp +++ b/src/viam/sdk/components/private/audio_out_server.cpp @@ -26,11 +26,14 @@ ::grpc::Status AudioOutServer::Play( audio_data.push_back(static_cast(c)); } - audio_info info; - info.codec = request->audio_info().codec(); - info.sample_rate_hz = request->audio_info().sample_rate_hz(); - info.num_channels = request->audio_info().num_channels(); - audio_out->play(audio_data, &info, helper.getExtra()); + std::shared_ptr info_ptr; + if (request->has_audio_info()) { + info_ptr = std::make_shared(); + info_ptr->codec = request->audio_info().codec(); + info_ptr->sample_rate_hz = request->audio_info().sample_rate_hz(); + info_ptr->num_channels = request->audio_info().num_channels(); + } + audio_out->play(audio_data, info_ptr, helper.getExtra()); }); } @@ -65,7 +68,7 @@ ::grpc::Status AudioOutServer::GetProperties( ::viam::common::v1::GetPropertiesResponse* response) noexcept { return make_service_helper("AudioOutServer::GetProperties", this, request)( [&](auto& helper, auto& audio_out) { - const AudioOut::properties result = audio_out->get_properties(helper.getExtra()); + const audio_properties result = audio_out->get_properties(helper.getExtra()); // Copy supported_codecs vector to repeated field for (const auto& codec : result.supported_codecs) { diff --git a/src/viam/sdk/tests/mocks/mock_audio_out.hpp b/src/viam/sdk/tests/mocks/mock_audio_out.hpp index 8df4648c7..01bb22a2e 100644 --- a/src/viam/sdk/tests/mocks/mock_audio_out.hpp +++ b/src/viam/sdk/tests/mocks/mock_audio_out.hpp @@ -10,15 +10,14 @@ namespace sdktests { namespace audioout { using viam::sdk::AudioOut; -using viam::sdk::properties; using namespace viam::sdk; class MockAudioOut : public AudioOut { public: void play(std::vector const& audio_data, - audio_info const* info, + std::shared_ptr info, const sdk::ProtoStruct& extra) override; - AudioOut::properties get_properties(const sdk::ProtoStruct& extra) override; + audio_properties get_properties(const sdk::ProtoStruct& extra) override; viam::sdk::ProtoStruct do_command(const viam::sdk::ProtoStruct& command) override; std::vector get_geometries(const ProtoStruct& extra) override; @@ -28,16 +27,17 @@ class MockAudioOut : public AudioOut { using AudioOut::play; using AudioOut::get_properties; + using AudioOut::get_geometries; - properties properties_; + audio_properties properties_; viam::sdk::ProtoStruct map_; std::vector geometries_; std::vector last_played_audio_; - audio_info const* last_played_audio_info_; + std::shared_ptr last_played_audio_info_; }; -properties fake_properties(); +audio_properties fake_properties(); } // namespace audioout } // namespace sdktests diff --git a/src/viam/sdk/tests/test_audio_out.cpp b/src/viam/sdk/tests/test_audio_out.cpp index d2e817417..3b78f355a 100644 --- a/src/viam/sdk/tests/test_audio_out.cpp +++ b/src/viam/sdk/tests/test_audio_out.cpp @@ -34,14 +34,15 @@ BOOST_AUTO_TEST_CASE(test_play) { audio_data.push_back(3); audio_data.push_back(4); - audio_info info; - info.codec = audio_codecs::PCM_16; - info.sample_rate_hz = 44100; - info.num_channels = 1; + auto info = std::make_shared(); + info->codec = audio_codecs::PCM_16; + info->sample_rate_hz = 44100; + info->num_channels = 1; - client.play(audio_data, &info, {}); + client.play(audio_data, info, {}); BOOST_CHECK(mock->last_played_audio_ == audio_data); - BOOST_CHECK(mock->last_played_audio_info_ == &info); + BOOST_CHECK(mock->last_played_audio_info_ != nullptr); + BOOST_CHECK(*mock->last_played_audio_info_ == *info); }); } @@ -57,6 +58,7 @@ BOOST_AUTO_TEST_CASE(test_play_no_audio_info) { client.play(audio_data, nullptr, {}); BOOST_CHECK(mock->last_played_audio_ == audio_data); + BOOST_CHECK(mock->last_played_audio_info_ == nullptr); }); } @@ -64,9 +66,9 @@ BOOST_AUTO_TEST_CASE(test_play_no_audio_info) { BOOST_AUTO_TEST_CASE(test_get_properties) { std::shared_ptr mock = MockAudioOut::get_mock_audio_out(); client_to_mock_pipeline(mock, [](AudioOut& client) { - properties expected = fake_properties(); + audio_properties expected = fake_properties(); - properties result = client.get_properties({}); + audio_properties result = client.get_properties({}); BOOST_CHECK(result == expected); }); From 6f29f0069ff2783ff544fe609ac007b6a0a77ea5 Mon Sep 17 00:00:00 2001 From: oliviamiller <106617921+oliviamiller@users.noreply.github.com> Date: Wed, 22 Oct 2025 11:34:34 -0500 Subject: [PATCH 05/12] lint --- src/viam/sdk/tests/mocks/mock_audio_out.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/viam/sdk/tests/mocks/mock_audio_out.cpp b/src/viam/sdk/tests/mocks/mock_audio_out.cpp index d4769be6d..6dd7f59fd 100644 --- a/src/viam/sdk/tests/mocks/mock_audio_out.cpp +++ b/src/viam/sdk/tests/mocks/mock_audio_out.cpp @@ -12,12 +12,12 @@ namespace audioout { using namespace viam::sdk; -void MockAudioOut::play(std::vector const& audio_data, audio_info const* info,const ProtoStruct& extra) { +void MockAudioOut::play(std::vector const& audio_data, std::shared_ptr info, const ProtoStruct& extra) { last_played_audio_ = audio_data; last_played_audio_info_ = info; } -AudioOut::properties MockAudioOut::get_properties(const ProtoStruct& extra) { +audio_properties MockAudioOut::get_properties(const ProtoStruct& extra) { return properties_; } @@ -39,8 +39,8 @@ std::shared_ptr MockAudioOut::get_mock_audio_out() { return audio_out; } -properties fake_properties() { - properties props; +audio_properties fake_properties() { + audio_properties props; props.supported_codecs = {"pcm16", "pcm32"}; props.sample_rate_hz = 48000; props.num_channels = 2; From 31e7ff26ac7cb2856cd0678586a8d06483748b41 Mon Sep 17 00:00:00 2001 From: oliviamiller <106617921+oliviamiller@users.noreply.github.com> Date: Wed, 22 Oct 2025 11:38:40 -0500 Subject: [PATCH 06/12] lint --- src/viam/sdk/components/audio_out.hpp | 19 ++-- .../components/private/audio_out_client.cpp | 40 ++++---- .../components/private/audio_out_client.hpp | 9 +- .../components/private/audio_out_server.cpp | 97 +++++++++---------- .../components/private/audio_out_server.hpp | 4 +- src/viam/sdk/tests/mocks/mock_audio_out.hpp | 7 +- src/viam/sdk/tests/test_audio_out.cpp | 3 - 7 files changed, 91 insertions(+), 88 deletions(-) diff --git a/src/viam/sdk/components/audio_out.hpp b/src/viam/sdk/components/audio_out.hpp index ecefacd1d..b745a24d3 100644 --- a/src/viam/sdk/components/audio_out.hpp +++ b/src/viam/sdk/components/audio_out.hpp @@ -28,23 +28,30 @@ class AudioOut : public Component { /// @brief Play audio data /// @param audio_data The raw audio data to play as bytes - /// @param info Optional info about the audio_data (codec, sample rate, channels). Pass nullptr if not needed. - inline void play(std::vector const& audio_data, std::shared_ptr info = nullptr) { + /// @param info Optional info about the audio_data (codec, sample rate, channels). Pass nullptr + /// if not needed. + inline void play(std::vector const& audio_data, + std::shared_ptr info = nullptr) { return play(audio_data, info, {}); } /// @brief Play audio through the audioout component /// @param audio_data The audio data to play - /// @param info Optional info about the audio_data (codec, sample rate, channels). Pass nullptr if not needed. + /// @param info Optional info about the audio_data (codec, sample rate, channels). Pass nullptr + /// if not needed. /// @param extra Any additional arguments to the method - virtual void play(std::vector const& audio_data, std::shared_ptr info, const ProtoStruct& extra) = 0; + virtual void play(std::vector const& audio_data, + std::shared_ptr info, + const ProtoStruct& extra) = 0; - /// @brief Returns properties of the audio out device (supported codecs, sample rate, number of channels) + /// @brief Returns properties of the audio out device (supported codecs, sample rate, number of + /// channels) inline audio_properties get_properties() { return get_properties({}); } - /// @brief Returns properties of the audio out device (supported codecs, sample rate, number of channels) + /// @brief Returns properties of the audio out device (supported codecs, sample rate, number of + /// channels) /// @param extra Any additional arguments to the method virtual audio_properties get_properties(const ProtoStruct& extra) = 0; diff --git a/src/viam/sdk/components/private/audio_out_client.cpp b/src/viam/sdk/components/private/audio_out_client.cpp index d501d907f..a5411f861 100644 --- a/src/viam/sdk/components/private/audio_out_client.cpp +++ b/src/viam/sdk/components/private/audio_out_client.cpp @@ -25,24 +25,27 @@ AudioOutClient::AudioOutClient(std::string name, std::shared_ptr stub_(viam::component::audioout::v1::AudioOutService::NewStub(channel)), channel_(std::move(channel)) {} -void AudioOutClient::play(std::vector const& audio_data, std::shared_ptr info, const ProtoStruct& extra) { +void AudioOutClient::play(std::vector const& audio_data, + std::shared_ptr info, + const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::Play) - .with(extra, [&](auto& request) { - // Convert audio_data from std::vector to string - std::string audio_data_str; - audio_data_str.reserve(audio_data.size()); - for (const auto& byte : audio_data) { - audio_data_str.push_back(static_cast(byte)); - } - request.set_audio_data(std::move(audio_data_str)); + .with(extra, + [&](auto& request) { + // Convert audio_data from std::vector to string + std::string audio_data_str; + audio_data_str.reserve(audio_data.size()); + for (const auto& byte : audio_data) { + audio_data_str.push_back(static_cast(byte)); + } + request.set_audio_data(std::move(audio_data_str)); - if (info) { - auto* proto_info = request.mutable_audio_info(); - proto_info->set_codec(info->codec); - proto_info->set_sample_rate_hz(info->sample_rate_hz); - proto_info->set_num_channels(info->num_channels); - } - }) + if (info) { + auto* proto_info = request.mutable_audio_info(); + proto_info->set_codec(info->codec); + proto_info->set_sample_rate_hz(info->sample_rate_hz); + proto_info->set_num_channels(info->num_channels); + } + }) .invoke([](auto& response) {}); } @@ -57,9 +60,8 @@ audio_properties AudioOutClient::get_properties(const ProtoStruct& extra) { codecs.push_back(codec); } - return audio_properties{std::move(codecs), - response.sample_rate_hz(), - response.num_channels()}; + return audio_properties{ + std::move(codecs), response.sample_rate_hz(), response.num_channels()}; }); } diff --git a/src/viam/sdk/components/private/audio_out_client.hpp b/src/viam/sdk/components/private/audio_out_client.hpp index 3c5645635..d816fe736 100644 --- a/src/viam/sdk/components/private/audio_out_client.hpp +++ b/src/viam/sdk/components/private/audio_out_client.hpp @@ -21,15 +21,16 @@ class AudioOutClient : public AudioOut { using interface_type = AudioOut; AudioOutClient(std::string name, std::shared_ptr channel); - void play(std::vector const& audio_data, std::shared_ptr info, const ProtoStruct& extra) override; + void play(std::vector const& audio_data, + std::shared_ptr info, + const ProtoStruct& extra) override; audio_properties get_properties(const ProtoStruct& extra) override; ProtoStruct do_command(const ProtoStruct& command) override; std::vector get_geometries(const ProtoStruct& extra) override; - - using AudioOut::play; - using AudioOut::get_properties; using AudioOut::get_geometries; + using AudioOut::get_properties; + using AudioOut::play; private: using StubType = viam::component::audioout::v1::AudioOutService::StubInterface; diff --git a/src/viam/sdk/components/private/audio_out_server.cpp b/src/viam/sdk/components/private/audio_out_server.cpp index e13aae545..073fc284d 100644 --- a/src/viam/sdk/components/private/audio_out_server.cpp +++ b/src/viam/sdk/components/private/audio_out_server.cpp @@ -1,8 +1,8 @@ #include +#include #include #include -#include #include namespace viam { @@ -12,72 +12,69 @@ namespace impl { AudioOutServer::AudioOutServer(std::shared_ptr manager) : ResourceServer(std::move(manager)) {} -::grpc::Status AudioOutServer::Play( - ::grpc::ServerContext*, - const ::viam::component::audioout::v1::PlayRequest* request, - ::viam::component::audioout::v1::PlayResponse*) noexcept { - return make_service_helper("AudioOutServer::Play", this, request)( - [&](auto& helper, auto& audio_out) { - // Convert audio_data from string to std::vector - const std::string& audio_data_str = request->audio_data(); - std::vector audio_data; - audio_data.reserve(audio_data_str.size()); - for (char c : audio_data_str) { - audio_data.push_back(static_cast(c)); - } +::grpc::Status AudioOutServer::Play(::grpc::ServerContext*, + const ::viam::component::audioout::v1::PlayRequest* request, + ::viam::component::audioout::v1::PlayResponse*) noexcept { + return make_service_helper( + "AudioOutServer::Play", this, request)([&](auto& helper, auto& audio_out) { + // Convert audio_data from string to std::vector + const std::string& audio_data_str = request->audio_data(); + std::vector audio_data; + audio_data.reserve(audio_data_str.size()); + for (char c : audio_data_str) { + audio_data.push_back(static_cast(c)); + } - std::shared_ptr info_ptr; - if (request->has_audio_info()) { - info_ptr = std::make_shared(); - info_ptr->codec = request->audio_info().codec(); - info_ptr->sample_rate_hz = request->audio_info().sample_rate_hz(); - info_ptr->num_channels = request->audio_info().num_channels(); - } - audio_out->play(audio_data, info_ptr, helper.getExtra()); - }); + std::shared_ptr info_ptr; + if (request->has_audio_info()) { + info_ptr = std::make_shared(); + info_ptr->codec = request->audio_info().codec(); + info_ptr->sample_rate_hz = request->audio_info().sample_rate_hz(); + info_ptr->num_channels = request->audio_info().num_channels(); + } + audio_out->play(audio_data, info_ptr, helper.getExtra()); + }); } -::grpc::Status AudioOutServer::DoCommand( - ::grpc::ServerContext*, - const ::viam::common::v1::DoCommandRequest* request, - ::viam::common::v1::DoCommandResponse* response) noexcept { - return make_service_helper("AudioOutServer::DoCommand", this, request)( - [&](auto&, auto& audio_out) { - const ProtoStruct result = audio_out->do_command(from_proto(request->command())); - *response->mutable_result() = to_proto(result); - }); +::grpc::Status AudioOutServer::DoCommand(::grpc::ServerContext*, + const ::viam::common::v1::DoCommandRequest* request, + ::viam::common::v1::DoCommandResponse* response) noexcept { + return make_service_helper( + "AudioOutServer::DoCommand", this, request)([&](auto&, auto& audio_out) { + const ProtoStruct result = audio_out->do_command(from_proto(request->command())); + *response->mutable_result() = to_proto(result); + }); } ::grpc::Status AudioOutServer::GetGeometries( ::grpc::ServerContext*, const ::viam::common::v1::GetGeometriesRequest* request, ::viam::common::v1::GetGeometriesResponse* response) noexcept { - return make_service_helper("AudioOutServer::GetGeometries", this, request)( - [&](auto& helper, auto& audio_out) { - const std::vector geometries = - audio_out->get_geometries(helper.getExtra()); - for (const auto& geometry : geometries) { - *response->mutable_geometries()->Add() = to_proto(geometry); - } - }); + return make_service_helper( + "AudioOutServer::GetGeometries", this, request)([&](auto& helper, auto& audio_out) { + const std::vector geometries = audio_out->get_geometries(helper.getExtra()); + for (const auto& geometry : geometries) { + *response->mutable_geometries()->Add() = to_proto(geometry); + } + }); } ::grpc::Status AudioOutServer::GetProperties( ::grpc::ServerContext*, const ::viam::common::v1::GetPropertiesRequest* request, ::viam::common::v1::GetPropertiesResponse* response) noexcept { - return make_service_helper("AudioOutServer::GetProperties", this, request)( - [&](auto& helper, auto& audio_out) { - const audio_properties result = audio_out->get_properties(helper.getExtra()); + return make_service_helper( + "AudioOutServer::GetProperties", this, request)([&](auto& helper, auto& audio_out) { + const audio_properties result = audio_out->get_properties(helper.getExtra()); - // Copy supported_codecs vector to repeated field - for (const auto& codec : result.supported_codecs) { - response->add_supported_codecs(codec); - } + // Copy supported_codecs vector to repeated field + for (const auto& codec : result.supported_codecs) { + response->add_supported_codecs(codec); + } - response->set_sample_rate_hz(result.sample_rate_hz); - response->set_num_channels(result.num_channels); - }); + response->set_sample_rate_hz(result.sample_rate_hz); + response->set_num_channels(result.num_channels); + }); } } // namespace impl diff --git a/src/viam/sdk/components/private/audio_out_server.hpp b/src/viam/sdk/components/private/audio_out_server.hpp index 370cbcd23..cff9f9d4a 100644 --- a/src/viam/sdk/components/private/audio_out_server.hpp +++ b/src/viam/sdk/components/private/audio_out_server.hpp @@ -30,8 +30,8 @@ class AudioOutServer : public ResourceServer, ::viam::component::audioout::v1::PlayResponse* response) noexcept override; ::grpc::Status DoCommand(::grpc::ServerContext* context, - const ::viam::common::v1::DoCommandRequest* request, - ::viam::common::v1::DoCommandResponse* response) noexcept override; + const ::viam::common::v1::DoCommandRequest* request, + ::viam::common::v1::DoCommandResponse* response) noexcept override; ::grpc::Status GetGeometries( ::grpc::ServerContext* context, diff --git a/src/viam/sdk/tests/mocks/mock_audio_out.hpp b/src/viam/sdk/tests/mocks/mock_audio_out.hpp index 01bb22a2e..f539147d8 100644 --- a/src/viam/sdk/tests/mocks/mock_audio_out.hpp +++ b/src/viam/sdk/tests/mocks/mock_audio_out.hpp @@ -15,7 +15,7 @@ using namespace viam::sdk; class MockAudioOut : public AudioOut { public: void play(std::vector const& audio_data, - std::shared_ptr info, + std::shared_ptr info, const sdk::ProtoStruct& extra) override; audio_properties get_properties(const sdk::ProtoStruct& extra) override; viam::sdk::ProtoStruct do_command(const viam::sdk::ProtoStruct& command) override; @@ -25,16 +25,15 @@ class MockAudioOut : public AudioOut { MockAudioOut(std::string name) : AudioOut(std::move(name)) {} - using AudioOut::play; - using AudioOut::get_properties; using AudioOut::get_geometries; + using AudioOut::get_properties; + using AudioOut::play; audio_properties properties_; viam::sdk::ProtoStruct map_; std::vector geometries_; std::vector last_played_audio_; std::shared_ptr last_played_audio_info_; - }; audio_properties fake_properties(); diff --git a/src/viam/sdk/tests/test_audio_out.cpp b/src/viam/sdk/tests/test_audio_out.cpp index 3b78f355a..dc4971a95 100644 --- a/src/viam/sdk/tests/test_audio_out.cpp +++ b/src/viam/sdk/tests/test_audio_out.cpp @@ -24,7 +24,6 @@ BOOST_AUTO_TEST_CASE(mock_get_api) { BOOST_CHECK_EQUAL(static_api.resource_subtype(), "audio_out"); } - BOOST_AUTO_TEST_CASE(test_play) { std::shared_ptr mock = MockAudioOut::get_mock_audio_out(); client_to_mock_pipeline(mock, [mock](AudioOut& client) { @@ -43,7 +42,6 @@ BOOST_AUTO_TEST_CASE(test_play) { BOOST_CHECK(mock->last_played_audio_ == audio_data); BOOST_CHECK(mock->last_played_audio_info_ != nullptr); BOOST_CHECK(*mock->last_played_audio_info_ == *info); - }); } @@ -59,7 +57,6 @@ BOOST_AUTO_TEST_CASE(test_play_no_audio_info) { client.play(audio_data, nullptr, {}); BOOST_CHECK(mock->last_played_audio_ == audio_data); BOOST_CHECK(mock->last_played_audio_info_ == nullptr); - }); } From 3cf34e14547cc8e9c6a5c1f6ff5e220c47595680 Mon Sep 17 00:00:00 2001 From: oliviamiller <106617921+oliviamiller@users.noreply.github.com> Date: Wed, 22 Oct 2025 11:38:56 -0500 Subject: [PATCH 07/12] lint mock --- src/viam/sdk/tests/mocks/mock_audio_out.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/viam/sdk/tests/mocks/mock_audio_out.cpp b/src/viam/sdk/tests/mocks/mock_audio_out.cpp index 6dd7f59fd..917af8e92 100644 --- a/src/viam/sdk/tests/mocks/mock_audio_out.cpp +++ b/src/viam/sdk/tests/mocks/mock_audio_out.cpp @@ -12,7 +12,9 @@ namespace audioout { using namespace viam::sdk; -void MockAudioOut::play(std::vector const& audio_data, std::shared_ptr info, const ProtoStruct& extra) { +void MockAudioOut::play(std::vector const& audio_data, + std::shared_ptr info, + const ProtoStruct& extra) { last_played_audio_ = audio_data; last_played_audio_info_ = info; } From 2b3f253a10da7e156aaaf0714a005a181dde2e93 Mon Sep 17 00:00:00 2001 From: oliviamiller <106617921+oliviamiller@users.noreply.github.com> Date: Wed, 22 Oct 2025 11:53:33 -0500 Subject: [PATCH 08/12] clean up --- src/viam/sdk/CMakeLists.txt | 1 + src/viam/sdk/components/audio_out.hpp | 10 +++++----- src/viam/sdk/components/private/audio_out_client.cpp | 10 +++------- src/viam/sdk/components/private/audio_out_server.cpp | 7 ++----- 4 files changed, 11 insertions(+), 17 deletions(-) diff --git a/src/viam/sdk/CMakeLists.txt b/src/viam/sdk/CMakeLists.txt index 46654e7f3..81971651c 100644 --- a/src/viam/sdk/CMakeLists.txt +++ b/src/viam/sdk/CMakeLists.txt @@ -179,6 +179,7 @@ target_sources(viamsdk ../../viam/sdk/common/version_metadata.hpp ../../viam/sdk/common/world_state.hpp ../../viam/sdk/components/arm.hpp + ../../viam/sdk/components/audio_out.hpp ../../viam/sdk/components/base.hpp ../../viam/sdk/components/board.hpp ../../viam/sdk/components/button.hpp diff --git a/src/viam/sdk/components/audio_out.hpp b/src/viam/sdk/components/audio_out.hpp index b745a24d3..7b9f0858c 100644 --- a/src/viam/sdk/components/audio_out.hpp +++ b/src/viam/sdk/components/audio_out.hpp @@ -27,9 +27,9 @@ class AudioOut : public Component { using audio_info = viam::sdk::audio_info; /// @brief Play audio data - /// @param audio_data The raw audio data to play as bytes - /// @param info Optional info about the audio_data (codec, sample rate, channels). Pass nullptr - /// if not needed. + /// @param audio_data The audio data to play as bytes + /// @param info Optional info about the audio_data (codec, sample rate, channels). Required for + /// raw PCM data, pass nullptr if not needed. inline void play(std::vector const& audio_data, std::shared_ptr info = nullptr) { return play(audio_data, info, {}); @@ -37,8 +37,8 @@ class AudioOut : public Component { /// @brief Play audio through the audioout component /// @param audio_data The audio data to play - /// @param info Optional info about the audio_data (codec, sample rate, channels). Pass nullptr - /// if not needed. + /// @param info Optional info about the audio_data (codec, sample rate, channels). Required for + /// raw PCM data, pass nullptr if not needed. /// @param extra Any additional arguments to the method virtual void play(std::vector const& audio_data, std::shared_ptr info, diff --git a/src/viam/sdk/components/private/audio_out_client.cpp b/src/viam/sdk/components/private/audio_out_client.cpp index a5411f861..ac2052ff4 100644 --- a/src/viam/sdk/components/private/audio_out_client.cpp +++ b/src/viam/sdk/components/private/audio_out_client.cpp @@ -32,15 +32,11 @@ void AudioOutClient::play(std::vector const& audio_data, .with(extra, [&](auto& request) { // Convert audio_data from std::vector to string - std::string audio_data_str; - audio_data_str.reserve(audio_data.size()); - for (const auto& byte : audio_data) { - audio_data_str.push_back(static_cast(byte)); - } + std::string audio_data_str(audio_data.begin(), audio_data.end()); request.set_audio_data(std::move(audio_data_str)); if (info) { - auto* proto_info = request.mutable_audio_info(); + ::viam::common::v1::AudioInfo* proto_info = request.mutable_audio_info(); proto_info->set_codec(info->codec); proto_info->set_sample_rate_hz(info->sample_rate_hz); proto_info->set_num_channels(info->num_channels); @@ -53,7 +49,7 @@ audio_properties AudioOutClient::get_properties(const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::GetProperties) .with(extra) .invoke([](auto& response) { - // Convert repeated field to vector + // Convert proto repeated field to vector std::vector codecs; codecs.reserve(response.supported_codecs_size()); for (const auto& codec : response.supported_codecs()) { diff --git a/src/viam/sdk/components/private/audio_out_server.cpp b/src/viam/sdk/components/private/audio_out_server.cpp index 073fc284d..5156978c5 100644 --- a/src/viam/sdk/components/private/audio_out_server.cpp +++ b/src/viam/sdk/components/private/audio_out_server.cpp @@ -18,12 +18,9 @@ ::grpc::Status AudioOutServer::Play(::grpc::ServerContext*, return make_service_helper( "AudioOutServer::Play", this, request)([&](auto& helper, auto& audio_out) { // Convert audio_data from string to std::vector - const std::string& audio_data_str = request->audio_data(); std::vector audio_data; - audio_data.reserve(audio_data_str.size()); - for (char c : audio_data_str) { - audio_data.push_back(static_cast(c)); - } + const std::string& audio_data_str = request->audio_data(); + audio_data.assign(audio_data_str.c_str(), audio_data_str.c_str() + audio_data_str.size()); std::shared_ptr info_ptr; if (request->has_audio_info()) { From b1f2aa0f43608defe0120d9d0a42c2143a3adbce Mon Sep 17 00:00:00 2001 From: oliviamiller <106617921+oliviamiller@users.noreply.github.com> Date: Wed, 22 Oct 2025 13:42:21 -0500 Subject: [PATCH 09/12] add code sample --- codesamples/apis.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/codesamples/apis.json b/codesamples/apis.json index 9cac7d040..e17507e0d 100644 --- a/codesamples/apis.json +++ b/codesamples/apis.json @@ -4,6 +4,11 @@ "func": "get_end_position", "args": [] }, + "audio_out": { + "client": "AudioOut", + "func": "get_properties", + "args": [] + }, "button": { "client": "Button", "func": "push", From 879b07acafbac5bdd3e5edce698b50ef8d85b798 Mon Sep 17 00:00:00 2001 From: oliviamiller <106617921+oliviamiller@users.noreply.github.com> Date: Thu, 23 Oct 2025 09:40:42 -0500 Subject: [PATCH 10/12] use boost optional --- src/viam/sdk/components/audio_out.hpp | 11 ++++++----- .../sdk/components/private/audio_out_client.cpp | 2 +- .../sdk/components/private/audio_out_client.hpp | 2 +- .../sdk/components/private/audio_out_server.cpp | 13 +++++++------ src/viam/sdk/tests/mocks/mock_audio_out.cpp | 2 +- src/viam/sdk/tests/test_audio_out.cpp | 15 +++++++-------- 6 files changed, 23 insertions(+), 22 deletions(-) diff --git a/src/viam/sdk/components/audio_out.hpp b/src/viam/sdk/components/audio_out.hpp index 7b9f0858c..f2f19c1fb 100644 --- a/src/viam/sdk/components/audio_out.hpp +++ b/src/viam/sdk/components/audio_out.hpp @@ -3,9 +3,10 @@ /// @brief Defines an `AudioOut` component. #pragma once -#include #include +#include + #include #include #include @@ -29,19 +30,19 @@ class AudioOut : public Component { /// @brief Play audio data /// @param audio_data The audio data to play as bytes /// @param info Optional info about the audio_data (codec, sample rate, channels). Required for - /// raw PCM data, pass nullptr if not needed. + /// raw PCM data. inline void play(std::vector const& audio_data, - std::shared_ptr info = nullptr) { + boost::optional info) { return play(audio_data, info, {}); } /// @brief Play audio through the audioout component /// @param audio_data The audio data to play /// @param info Optional info about the audio_data (codec, sample rate, channels). Required for - /// raw PCM data, pass nullptr if not needed. + /// raw PCM data. /// @param extra Any additional arguments to the method virtual void play(std::vector const& audio_data, - std::shared_ptr info, + boost::optional info, const ProtoStruct& extra) = 0; /// @brief Returns properties of the audio out device (supported codecs, sample rate, number of diff --git a/src/viam/sdk/components/private/audio_out_client.cpp b/src/viam/sdk/components/private/audio_out_client.cpp index ac2052ff4..9465a36a8 100644 --- a/src/viam/sdk/components/private/audio_out_client.cpp +++ b/src/viam/sdk/components/private/audio_out_client.cpp @@ -26,7 +26,7 @@ AudioOutClient::AudioOutClient(std::string name, std::shared_ptr channel_(std::move(channel)) {} void AudioOutClient::play(std::vector const& audio_data, - std::shared_ptr info, + boost::optional info, const ProtoStruct& extra) { return make_client_helper(this, *stub_, &StubType::Play) .with(extra, diff --git a/src/viam/sdk/components/private/audio_out_client.hpp b/src/viam/sdk/components/private/audio_out_client.hpp index d816fe736..33fe1f01e 100644 --- a/src/viam/sdk/components/private/audio_out_client.hpp +++ b/src/viam/sdk/components/private/audio_out_client.hpp @@ -22,7 +22,7 @@ class AudioOutClient : public AudioOut { AudioOutClient(std::string name, std::shared_ptr channel); void play(std::vector const& audio_data, - std::shared_ptr info, + boost::optional info, const ProtoStruct& extra) override; audio_properties get_properties(const ProtoStruct& extra) override; ProtoStruct do_command(const ProtoStruct& command) override; diff --git a/src/viam/sdk/components/private/audio_out_server.cpp b/src/viam/sdk/components/private/audio_out_server.cpp index 5156978c5..2da2f6b25 100644 --- a/src/viam/sdk/components/private/audio_out_server.cpp +++ b/src/viam/sdk/components/private/audio_out_server.cpp @@ -22,14 +22,15 @@ ::grpc::Status AudioOutServer::Play(::grpc::ServerContext*, const std::string& audio_data_str = request->audio_data(); audio_data.assign(audio_data_str.c_str(), audio_data_str.c_str() + audio_data_str.size()); - std::shared_ptr info_ptr; + boost::optional info; if (request->has_audio_info()) { - info_ptr = std::make_shared(); - info_ptr->codec = request->audio_info().codec(); - info_ptr->sample_rate_hz = request->audio_info().sample_rate_hz(); - info_ptr->num_channels = request->audio_info().num_channels(); + info.emplace(audio_info{ + request->audio_info().codec(), + request->audio_info().sample_rate_hz(), + request->audio_info().num_channels() + }); } - audio_out->play(audio_data, info_ptr, helper.getExtra()); + audio_out->play(audio_data, info, helper.getExtra()); }); } diff --git a/src/viam/sdk/tests/mocks/mock_audio_out.cpp b/src/viam/sdk/tests/mocks/mock_audio_out.cpp index 917af8e92..1aaf4926e 100644 --- a/src/viam/sdk/tests/mocks/mock_audio_out.cpp +++ b/src/viam/sdk/tests/mocks/mock_audio_out.cpp @@ -13,7 +13,7 @@ namespace audioout { using namespace viam::sdk; void MockAudioOut::play(std::vector const& audio_data, - std::shared_ptr info, + boost::optional info, const ProtoStruct& extra) { last_played_audio_ = audio_data; last_played_audio_info_ = info; diff --git a/src/viam/sdk/tests/test_audio_out.cpp b/src/viam/sdk/tests/test_audio_out.cpp index dc4971a95..f6e9df62d 100644 --- a/src/viam/sdk/tests/test_audio_out.cpp +++ b/src/viam/sdk/tests/test_audio_out.cpp @@ -33,15 +33,14 @@ BOOST_AUTO_TEST_CASE(test_play) { audio_data.push_back(3); audio_data.push_back(4); - auto info = std::make_shared(); - info->codec = audio_codecs::PCM_16; - info->sample_rate_hz = 44100; - info->num_channels = 1; + audio_info info; + info.codec = audio_codecs::PCM_16; + info.sample_rate_hz = 44100; + info.num_channels = 1; client.play(audio_data, info, {}); BOOST_CHECK(mock->last_played_audio_ == audio_data); - BOOST_CHECK(mock->last_played_audio_info_ != nullptr); - BOOST_CHECK(*mock->last_played_audio_info_ == *info); + BOOST_CHECK(*mock->last_played_audio_info_ == info); }); } @@ -54,9 +53,9 @@ BOOST_AUTO_TEST_CASE(test_play_no_audio_info) { audio_data.push_back(4); audio_data.push_back(4); - client.play(audio_data, nullptr, {}); + client.play(audio_data, {}, {}); BOOST_CHECK(mock->last_played_audio_ == audio_data); - BOOST_CHECK(mock->last_played_audio_info_ == nullptr); + BOOST_CHECK(!mock->last_played_audio_info_); }); } From c6fca797310c7c447ef0d2cf26ec91220fcdff80 Mon Sep 17 00:00:00 2001 From: oliviamiller <106617921+oliviamiller@users.noreply.github.com> Date: Thu, 23 Oct 2025 09:42:02 -0500 Subject: [PATCH 11/12] lint --- src/viam/sdk/components/audio_out.hpp | 3 +-- src/viam/sdk/components/private/audio_out_server.cpp | 8 +++----- src/viam/sdk/tests/mocks/mock_audio_out.hpp | 4 ++-- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/viam/sdk/components/audio_out.hpp b/src/viam/sdk/components/audio_out.hpp index f2f19c1fb..cf1aeb232 100644 --- a/src/viam/sdk/components/audio_out.hpp +++ b/src/viam/sdk/components/audio_out.hpp @@ -31,8 +31,7 @@ class AudioOut : public Component { /// @param audio_data The audio data to play as bytes /// @param info Optional info about the audio_data (codec, sample rate, channels). Required for /// raw PCM data. - inline void play(std::vector const& audio_data, - boost::optional info) { + inline void play(std::vector const& audio_data, boost::optional info) { return play(audio_data, info, {}); } diff --git a/src/viam/sdk/components/private/audio_out_server.cpp b/src/viam/sdk/components/private/audio_out_server.cpp index 2da2f6b25..f6ea1f1bf 100644 --- a/src/viam/sdk/components/private/audio_out_server.cpp +++ b/src/viam/sdk/components/private/audio_out_server.cpp @@ -24,11 +24,9 @@ ::grpc::Status AudioOutServer::Play(::grpc::ServerContext*, boost::optional info; if (request->has_audio_info()) { - info.emplace(audio_info{ - request->audio_info().codec(), - request->audio_info().sample_rate_hz(), - request->audio_info().num_channels() - }); + info.emplace(audio_info{request->audio_info().codec(), + request->audio_info().sample_rate_hz(), + request->audio_info().num_channels()}); } audio_out->play(audio_data, info, helper.getExtra()); }); diff --git a/src/viam/sdk/tests/mocks/mock_audio_out.hpp b/src/viam/sdk/tests/mocks/mock_audio_out.hpp index f539147d8..3028ca66a 100644 --- a/src/viam/sdk/tests/mocks/mock_audio_out.hpp +++ b/src/viam/sdk/tests/mocks/mock_audio_out.hpp @@ -15,7 +15,7 @@ using namespace viam::sdk; class MockAudioOut : public AudioOut { public: void play(std::vector const& audio_data, - std::shared_ptr info, + boost::optional info, const sdk::ProtoStruct& extra) override; audio_properties get_properties(const sdk::ProtoStruct& extra) override; viam::sdk::ProtoStruct do_command(const viam::sdk::ProtoStruct& command) override; @@ -33,7 +33,7 @@ class MockAudioOut : public AudioOut { viam::sdk::ProtoStruct map_; std::vector geometries_; std::vector last_played_audio_; - std::shared_ptr last_played_audio_info_; + boost::optional last_played_audio_info_; }; audio_properties fake_properties(); From d3c4c0ed35ebabc855606b34feac5c6b1c1c74b0 Mon Sep 17 00:00:00 2001 From: oliviamiller <106617921+oliviamiller@users.noreply.github.com> Date: Thu, 23 Oct 2025 15:56:03 -0500 Subject: [PATCH 12/12] add back info == operator --- src/viam/sdk/common/audio.cpp | 5 +++++ src/viam/sdk/common/audio.hpp | 3 +++ 2 files changed, 8 insertions(+) diff --git a/src/viam/sdk/common/audio.cpp b/src/viam/sdk/common/audio.cpp index 081c58fee..186a83c75 100644 --- a/src/viam/sdk/common/audio.cpp +++ b/src/viam/sdk/common/audio.cpp @@ -19,6 +19,11 @@ bool operator==(const audio_properties& lhs, const audio_properties& rhs) { std::tie(rhs.supported_codecs, rhs.sample_rate_hz, rhs.num_channels); } +bool operator==(const audio_info& lhs, const audio_info& rhs) { + return std::tie(lhs.codec, lhs.sample_rate_hz, lhs.num_channels) == + std::tie(rhs.codec, rhs.sample_rate_hz, rhs.num_channels); +} + uint16_t get_bits_per_sample(const std::string& codec) { if (codec == audio_codecs::PCM_16) { return 16; diff --git a/src/viam/sdk/common/audio.hpp b/src/viam/sdk/common/audio.hpp index 505a5cf9a..e060d9733 100644 --- a/src/viam/sdk/common/audio.hpp +++ b/src/viam/sdk/common/audio.hpp @@ -38,6 +38,9 @@ struct audio_info { /// @brief Equality operator for properties bool operator==(const audio_properties& lhs, const audio_properties& rhs); +/// @brief Equality operator for audio_info +bool operator==(const audio_info& lhs, const audio_info& rhs); + uint16_t get_bits_per_sample(const std::string& codec); void write_wav_file(const std::string& filename,