Viam C++ SDK current
Loading...
Searching...
No Matches
audio_out.hpp
Go to the documentation of this file.
1
4#pragma once
5
6#include <string>
7
8#include <boost/optional/optional.hpp>
9
10#include <viam/sdk/common/audio.hpp>
11#include <viam/sdk/common/proto_value.hpp>
12#include <viam/sdk/common/utils.hpp>
13#include <viam/sdk/config/resource.hpp>
14
15namespace viam {
16namespace sdk {
17
19
26class AudioOut : public Component {
27 public:
29
34 inline void play(std::vector<uint8_t> const& audio_data, boost::optional<audio_info> info) {
35 return play(audio_data, info, {});
36 }
37
43 virtual void play(std::vector<uint8_t> const& audio_data,
44 boost::optional<audio_info> info,
45 const ProtoStruct& extra) = 0;
46
50 return get_properties({});
51 }
52
56 virtual audio_properties get_properties(const ProtoStruct& extra) = 0;
57
61 virtual ProtoStruct do_command(const ProtoStruct& command) = 0;
62
63 // @brief Returns `GeometryConfig`s associated with the calling audioout.
65 inline std::vector<GeometryConfig> get_geometries() {
66 return get_geometries({});
67 }
68
72 virtual std::vector<GeometryConfig> get_geometries(const ProtoStruct& extra) = 0;
73
74 API api() const override;
75
76 protected:
77 explicit AudioOut(std::string name);
78};
79
80template <>
82 static API api();
83};
84
85} // namespace sdk
86} // namespace viam
Definition resource_api.hpp:21
An AudioOut is a device that can output audio.
Definition audio_out.hpp:26
virtual void play(std::vector< uint8_t > const &audio_data, boost::optional< audio_info > info, const ProtoStruct &extra)=0
Play audio through the audioout component.
API api() const override
Returns the API associated with a particular resource.
void play(std::vector< uint8_t > const &audio_data, boost::optional< audio_info > info)
Play audio data.
Definition audio_out.hpp:34
std::vector< GeometryConfig > get_geometries()
Definition audio_out.hpp:65
virtual audio_properties get_properties(const ProtoStruct &extra)=0
Returns properties of the audio out device (supported codecs, sample rate, number of channels)
virtual ProtoStruct do_command(const ProtoStruct &command)=0
Send/receive arbitrary commands to the resource.
audio_properties get_properties()
Returns properties of the audio out device (supported codecs, sample rate, number of channels)
Definition audio_out.hpp:49
virtual std::vector< GeometryConfig > get_geometries(const ProtoStruct &extra)=0
Returns GeometryConfigs associated with the calling audioout.
Definition component.hpp:10
virtual std::string name() const
Return the resource's name.
Definition resource_api.hpp:46
Information about a piece of audio data.
Definition audio.hpp:32
Properties of an audio component (input or output)
Definition audio.hpp:24