#pragma once #include #include #include #include "cbor.h" #include "result.hpp" namespace audio { class StreamInfo { public: static auto Parse(CborValue& container) -> cpp::result; StreamInfo() = default; StreamInfo(const StreamInfo&) = default; ~StreamInfo() = default; auto Path() const -> const std::optional& { return path_; } auto Channels() const -> const std::optional& { return channels_; } auto BitsPerSample() const -> const std::optional& { return bits_per_sample_; } auto SampleRate() const -> const std::optional& { return sample_rate_; } auto Encode(CborEncoder& enc) -> std::optional; private: std::optional path_; std::optional channels_; std::optional bits_per_sample_; std::optional sample_rate_; }; } // namespace audio