8#include <viam/sdk/common/audio.hpp>
9#include <viam/sdk/common/proto_value.hpp>
10#include <viam/sdk/common/utils.hpp>
11#include <viam/sdk/config/resource.hpp>
30 std::vector<uint8_t> audio_data;
32 std::chrono::nanoseconds start_timestamp_ns;
33 std::chrono::nanoseconds end_timestamp_ns;
35 std::string request_id;
49 std::function<
bool(
audio_chunk&& chunk)>
const& chunk_handler,
50 double const& duration_seconds,
51 int64_t
const& previous_timestamp) {
52 return get_audio(codec, chunk_handler, duration_seconds, previous_timestamp, {});
67 std::function<
bool(
audio_chunk&& chunk)>
const& chunk_handler,
68 double const& duration_seconds,
69 int64_t
const& previous_timestamp,
70 const ProtoStruct& extra) = 0;
86 virtual ProtoStruct
do_command(
const ProtoStruct& command) = 0;
97 virtual std::vector<GeometryConfig>
get_geometries(
const ProtoStruct& extra) = 0;
Definition resource_api.hpp:21
An AudioIn is a deivce that can take audio input.
Definition audio_in.hpp:24
virtual void get_audio(std::string const &codec, std::function< bool(audio_chunk &&chunk)> const &chunk_handler, double const &duration_seconds, int64_t const &previous_timestamp, const ProtoStruct &extra)=0
Get a stream of audio from the device until completed or cancelled.
API api() const override
Returns the API associated with a particular resource.
audio_properties get_properties()
Returns properties of the audio in device (supported codecs, sample rate, number of channels)
Definition audio_in.hpp:74
std::vector< GeometryConfig > get_geometries()
Returns GeometryConfigs associated with the calling AudioIn.
Definition audio_in.hpp:90
void get_audio(std::string const &codec, std::function< bool(audio_chunk &&chunk)> const &chunk_handler, double const &duration_seconds, int64_t const &previous_timestamp)
Get a stream of audio from the device until completed or cancelled.
Definition audio_in.hpp:48
virtual ProtoStruct do_command(const ProtoStruct &command)=0
virtual std::vector< GeometryConfig > get_geometries(const ProtoStruct &extra)=0
Returns GeometryConfigs associated with the calling AudioIn.
virtual audio_properties get_properties(const ProtoStruct &extra)=0
Returns properties of the audio in device (supported codecs, sample rate, number of channels)
Definition component.hpp:10
virtual std::string name() const
Return the resource's name.
Definition resource_api.hpp:46
A sequential chunk of audio data with timing information for continuous audio streams.
Definition audio_in.hpp:29
Information about a piece of audio data.
Definition audio.hpp:32
Properties of an audio component (input or output)
Definition audio.hpp:24