summaryrefslogtreecommitdiff
path: root/src/audio
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2024-05-02 17:06:25 +1000
committerjacqueline <me@jacqueline.id.au>2024-05-02 17:06:25 +1000
commita231fd1c8afedbeb14b0bc77d76bad61db986059 (patch)
tree5cbb12f502445776072b691bdebcd0ef6ef54d12 /src/audio
parentf852e447159757a92564327c6b114f929200b3a0 (diff)
downloadtangara-fw-a231fd1c8afedbeb14b0bc77d76bad61db986059.tar.gz
Replace cpp::span shim with std::span
Diffstat (limited to 'src/audio')
-rw-r--r--src/audio/CMakeLists.txt2
-rw-r--r--src/audio/audio_converter.cpp8
-rw-r--r--src/audio/audio_decoder.cpp3
-rw-r--r--src/audio/audio_source.cpp2
-rw-r--r--src/audio/fatfs_audio_input.cpp8
-rw-r--r--src/audio/fatfs_source.cpp2
-rw-r--r--src/audio/include/audio_converter.hpp12
-rw-r--r--src/audio/include/audio_decoder.hpp2
-rw-r--r--src/audio/include/audio_source.hpp2
-rw-r--r--src/audio/include/fatfs_source.hpp2
-rw-r--r--src/audio/include/readahead_source.hpp2
-rw-r--r--src/audio/include/resample.hpp8
-rw-r--r--src/audio/readahead_source.cpp2
-rw-r--r--src/audio/resample.cpp4
14 files changed, 30 insertions, 29 deletions
diff --git a/src/audio/CMakeLists.txt b/src/audio/CMakeLists.txt
index 8ed5efbb..635320f4 100644
--- a/src/audio/CMakeLists.txt
+++ b/src/audio/CMakeLists.txt
@@ -8,7 +8,7 @@ idf_component_register(
"fatfs_source.cpp" "bt_audio_output.cpp" "readahead_source.cpp"
"audio_source.cpp"
INCLUDE_DIRS "include"
- REQUIRES "codecs" "drivers" "cbor" "result" "tasks" "span" "memory" "tinyfsm"
+ REQUIRES "codecs" "drivers" "cbor" "result" "tasks" "memory" "tinyfsm"
"database" "system_fsm" "speexdsp" "millershuffle" "libcppbor")
target_compile_options(${COMPONENT_LIB} PRIVATE ${EXTRA_WARNINGS})
diff --git a/src/audio/audio_converter.cpp b/src/audio/audio_converter.cpp
index eb1cde80..d2edb0b3 100644
--- a/src/audio/audio_converter.cpp
+++ b/src/audio/audio_converter.cpp
@@ -76,7 +76,7 @@ auto SampleConverter::beginStream(std::shared_ptr<TrackInfo> track) -> void {
xQueueSend(commands_, &args, portMAX_DELAY);
}
-auto SampleConverter::continueStream(cpp::span<sample::Sample> input) -> void {
+auto SampleConverter::continueStream(std::span<sample::Sample> input) -> void {
Args args{
.track = nullptr,
.samples_available = input.size(),
@@ -182,7 +182,7 @@ auto SampleConverter::handleContinueStream(size_t samples_available) -> void {
}
}
-auto SampleConverter::handleSamples(cpp::span<sample::Sample> input) -> size_t {
+auto SampleConverter::handleSamples(std::span<sample::Sample> input) -> size_t {
if (source_format_ == target_format_) {
// The happiest possible case: the input format matches the output
// format already.
@@ -192,7 +192,7 @@ auto SampleConverter::handleSamples(cpp::span<sample::Sample> input) -> size_t {
size_t samples_used = 0;
while (samples_used < input.size()) {
- cpp::span<sample::Sample> output_source;
+ std::span<sample::Sample> output_source;
if (source_format_.sample_rate != target_format_.sample_rate) {
if (resampler_ == nullptr) {
ESP_LOGI(kTag, "creating new resampler for %lu -> %lu",
@@ -245,7 +245,7 @@ auto SampleConverter::handleEndStream() -> void {
events::Audio().Dispatch(internal::StreamEnded{});
}
-auto SampleConverter::sendToSink(cpp::span<sample::Sample> samples) -> void {
+auto SampleConverter::sendToSink(std::span<sample::Sample> samples) -> void {
// Update the number of samples sunk so far *before* actually sinking them,
// since writing to the stream buffer will block when the buffer gets full.
samples_sunk_ += samples.size();
diff --git a/src/audio/audio_decoder.cpp b/src/audio/audio_decoder.cpp
index 90c69c16..baf17e7a 100644
--- a/src/audio/audio_decoder.cpp
+++ b/src/audio/audio_decoder.cpp
@@ -5,7 +5,6 @@
*/
#include "audio_decoder.hpp"
-#include <stdint.h>
#include <cstdint>
#include <cstdlib>
@@ -17,6 +16,7 @@
#include <cstring>
#include <deque>
#include <memory>
+#include <span>
#include <variant>
#include "cbor.h"
@@ -28,7 +28,6 @@
#include "freertos/queue.h"
#include "freertos/ringbuf.h"
#include "i2s_dac.hpp"
-#include "span.hpp"
#include "audio_converter.hpp"
#include "audio_events.hpp"
diff --git a/src/audio/audio_source.cpp b/src/audio/audio_source.cpp
index d9e8e04a..ee2f617f 100644
--- a/src/audio/audio_source.cpp
+++ b/src/audio/audio_source.cpp
@@ -20,7 +20,7 @@ auto TaggedStream::tags() -> std::shared_ptr<database::TrackTags> {
return tags_;
}
-auto TaggedStream::Read(cpp::span<std::byte> dest) -> ssize_t {
+auto TaggedStream::Read(std::span<std::byte> dest) -> ssize_t {
return wrapped_->Read(dest);
}
diff --git a/src/audio/fatfs_audio_input.cpp b/src/audio/fatfs_audio_input.cpp
index 29d32390..e5fb3b21 100644
--- a/src/audio/fatfs_audio_input.cpp
+++ b/src/audio/fatfs_audio_input.cpp
@@ -14,6 +14,7 @@
#include <future>
#include <memory>
#include <mutex>
+#include <span>
#include <string>
#include <variant>
@@ -23,7 +24,6 @@
#include "freertos/portmacro.h"
#include "freertos/projdefs.h"
#include "readahead_source.hpp"
-#include "span.hpp"
#include "audio_events.hpp"
#include "audio_fsm.hpp"
@@ -61,7 +61,8 @@ auto FatfsAudioInput::SetPath(std::optional<std::string> path) -> void {
}
}
-auto FatfsAudioInput::SetPath(const std::string& path,uint32_t offset) -> void {
+auto FatfsAudioInput::SetPath(const std::string& path, uint32_t offset)
+ -> void {
std::lock_guard<std::mutex> guard{new_stream_mutex_};
if (OpenFile(path, offset)) {
has_new_stream_ = true;
@@ -102,7 +103,8 @@ auto FatfsAudioInput::NextStream() -> std::shared_ptr<TaggedStream> {
}
}
-auto FatfsAudioInput::OpenFile(const std::string& path,uint32_t offset) -> bool {
+auto FatfsAudioInput::OpenFile(const std::string& path, uint32_t offset)
+ -> bool {
ESP_LOGI(kTag, "opening file %s", path.c_str());
auto tags = tag_parser_.ReadAndParseTags(path);
diff --git a/src/audio/fatfs_source.cpp b/src/audio/fatfs_source.cpp
index 72c3940d..dccdd581 100644
--- a/src/audio/fatfs_source.cpp
+++ b/src/audio/fatfs_source.cpp
@@ -33,7 +33,7 @@ FatfsSource::~FatfsSource() {
f_close(file_.get());
}
-auto FatfsSource::Read(cpp::span<std::byte> dest) -> ssize_t {
+auto FatfsSource::Read(std::span<std::byte> dest) -> ssize_t {
auto lock = drivers::acquire_spi();
if (f_eof(file_.get())) {
return 0;
diff --git a/src/audio/include/audio_converter.hpp b/src/audio/include/audio_converter.hpp
index 232b5d8e..163c6836 100644
--- a/src/audio/include/audio_converter.hpp
+++ b/src/audio/include/audio_converter.hpp
@@ -33,7 +33,7 @@ class SampleConverter {
auto SetOutput(std::shared_ptr<IAudioOutput>) -> void;
auto beginStream(std::shared_ptr<TrackInfo>) -> void;
- auto continueStream(cpp::span<sample::Sample>) -> void;
+ auto continueStream(std::span<sample::Sample>) -> void;
auto endStream() -> void;
private:
@@ -43,9 +43,9 @@ class SampleConverter {
auto handleContinueStream(size_t samples_available) -> void;
auto handleEndStream() -> void;
- auto handleSamples(cpp::span<sample::Sample>) -> size_t;
+ auto handleSamples(std::span<sample::Sample>) -> size_t;
- auto sendToSink(cpp::span<sample::Sample>) -> void;
+ auto sendToSink(std::span<sample::Sample>) -> void;
struct Args {
std::shared_ptr<TrackInfo>* track;
@@ -57,10 +57,10 @@ class SampleConverter {
std::unique_ptr<Resampler> resampler_;
StreamBufferHandle_t source_;
- cpp::span<sample::Sample> input_buffer_;
- cpp::span<std::byte> input_buffer_as_bytes_;
+ std::span<sample::Sample> input_buffer_;
+ std::span<std::byte> input_buffer_as_bytes_;
- cpp::span<sample::Sample> resampled_buffer_;
+ std::span<sample::Sample> resampled_buffer_;
std::shared_ptr<IAudioOutput> sink_;
IAudioOutput::Format source_format_;
diff --git a/src/audio/include/audio_decoder.hpp b/src/audio/include/audio_decoder.hpp
index 89f0f43c..8e955f74 100644
--- a/src/audio/include/audio_decoder.hpp
+++ b/src/audio/include/audio_decoder.hpp
@@ -50,7 +50,7 @@ class Decoder {
std::optional<codecs::ICodec::OutputFormat> current_format_;
std::optional<IAudioOutput::Format> current_sink_format_;
- cpp::span<sample::Sample> codec_buffer_;
+ std::span<sample::Sample> codec_buffer_;
};
} // namespace audio
diff --git a/src/audio/include/audio_source.hpp b/src/audio/include/audio_source.hpp
index b38acd7a..f6a34300 100644
--- a/src/audio/include/audio_source.hpp
+++ b/src/audio/include/audio_source.hpp
@@ -23,7 +23,7 @@ class TaggedStream : public codecs::IStream {
auto tags() -> std::shared_ptr<database::TrackTags>;
- auto Read(cpp::span<std::byte> dest) -> ssize_t override;
+ auto Read(std::span<std::byte> dest) -> ssize_t override;
auto CanSeek() -> bool override;
diff --git a/src/audio/include/fatfs_source.hpp b/src/audio/include/fatfs_source.hpp
index 45ab34c6..ce9b4db8 100644
--- a/src/audio/include/fatfs_source.hpp
+++ b/src/audio/include/fatfs_source.hpp
@@ -26,7 +26,7 @@ class FatfsSource : public codecs::IStream {
FatfsSource(codecs::StreamType, std::unique_ptr<FIL> file);
~FatfsSource();
- auto Read(cpp::span<std::byte> dest) -> ssize_t override;
+ auto Read(std::span<std::byte> dest) -> ssize_t override;
auto CanSeek() -> bool override;
diff --git a/src/audio/include/readahead_source.hpp b/src/audio/include/readahead_source.hpp
index 3e18a989..74a30e1b 100644
--- a/src/audio/include/readahead_source.hpp
+++ b/src/audio/include/readahead_source.hpp
@@ -30,7 +30,7 @@ class ReadaheadSource : public codecs::IStream {
ReadaheadSource(tasks::WorkerPool&, std::unique_ptr<codecs::IStream>);
~ReadaheadSource();
- auto Read(cpp::span<std::byte> dest) -> ssize_t override;
+ auto Read(std::span<std::byte> dest) -> ssize_t override;
auto CanSeek() -> bool override;
diff --git a/src/audio/include/resample.hpp b/src/audio/include/resample.hpp
index a9464cb1..4d48d47f 100644
--- a/src/audio/include/resample.hpp
+++ b/src/audio/include/resample.hpp
@@ -7,9 +7,9 @@
#pragma once
#include <cstdint>
+#include <span>
#include <vector>
-#include "span.hpp"
#include "speex/speex_resampler.h"
#include "sample.hpp"
@@ -24,8 +24,8 @@ class Resampler {
~Resampler();
- auto Process(cpp::span<sample::Sample> input,
- cpp::span<sample::Sample> output,
+ auto Process(std::span<sample::Sample> input,
+ std::span<sample::Sample> output,
bool end_of_data) -> std::pair<size_t, size_t>;
private:
@@ -34,4 +34,4 @@ class Resampler {
uint8_t num_channels_;
};
-} // namespace audio \ No newline at end of file
+} // namespace audio
diff --git a/src/audio/readahead_source.cpp b/src/audio/readahead_source.cpp
index fe7ac3bd..6276907a 100644
--- a/src/audio/readahead_source.cpp
+++ b/src/audio/readahead_source.cpp
@@ -41,7 +41,7 @@ ReadaheadSource::~ReadaheadSource() {
vStreamBufferDeleteWithCaps(buffer_);
}
-auto ReadaheadSource::Read(cpp::span<std::byte> dest) -> ssize_t {
+auto ReadaheadSource::Read(std::span<std::byte> dest) -> ssize_t {
size_t bytes_written = 0;
// Fill the destination from our buffer, until either the buffer is drained
// or the destination is full.
diff --git a/src/audio/resample.cpp b/src/audio/resample.cpp
index a3a34ee7..1e20392b 100644
--- a/src/audio/resample.cpp
+++ b/src/audio/resample.cpp
@@ -38,8 +38,8 @@ Resampler::~Resampler() {
speex_resampler_destroy(resampler_);
}
-auto Resampler::Process(cpp::span<sample::Sample> input,
- cpp::span<sample::Sample> output,
+auto Resampler::Process(std::span<sample::Sample> input,
+ std::span<sample::Sample> output,
bool end_of_data) -> std::pair<size_t, size_t> {
uint32_t samples_used = input.size() / num_channels_;
uint32_t samples_produced = output.size() / num_channels_;