10#include <boost/optional/optional.hpp>
12#include <viam/sdk/common/audio.hpp>
13#include <viam/sdk/common/proto_value.hpp>
14#include <viam/sdk/common/utils.hpp>
15#include <viam/sdk/config/resource.hpp>
36 inline void play(std::vector<uint8_t>
const& audio_data, boost::optional<audio_info> info) {
37 return play(audio_data, info, {});
45 virtual void play(std::vector<uint8_t>
const& audio_data,
46 boost::optional<audio_info> info,
47 const ProtoStruct& extra) = 0;
54 std::function<boost::optional<std::vector<uint8_t>>()> chunk_source) {
55 return play_stream(std::move(info), std::move(chunk_source), {});
64 std::function<boost::optional<std::vector<uint8_t>>()> chunk_source,
65 const ProtoStruct& extra) = 0;
81 virtual ProtoStruct
do_command(
const ProtoStruct& command) = 0;
96 virtual std::vector<GeometryConfig>
get_geometries(
const ProtoStruct& extra) = 0;
Definition resource_api.hpp:21
An AudioOut is a device that can output audio.
Definition audio_out.hpp:28
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.
virtual ProtoStruct get_status()=0
Get the status of the audio_out.
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:36
std::vector< GeometryConfig > get_geometries()
Definition audio_out.hpp:89
virtual audio_properties get_properties(const ProtoStruct &extra)=0
Returns properties of the audio out device (supported codecs, sample rate, number of channels)
void play_stream(audio_info info, std::function< boost::optional< std::vector< uint8_t > >()> chunk_source)
Stream audio chunks to the audioout component for playback.
Definition audio_out.hpp:53
virtual ProtoStruct do_command(const ProtoStruct &command)=0
Send/receive arbitrary commands to the resource.
virtual void play_stream(audio_info info, std::function< boost::optional< std::vector< uint8_t > >()> chunk_source, const ProtoStruct &extra)=0
Stream audio chunks to the audioout component for playback.
audio_properties get_properties()
Returns properties of the audio out device (supported codecs, sample rate, number of channels)
Definition audio_out.hpp:69
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