From 80d7df910987db5201402fe987124f29f09344f3 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Tue, 25 Jul 2023 17:42:36 +1000 Subject: fuck off --- src/audio/include/audio_task.hpp | 45 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 42 insertions(+), 3 deletions(-) (limited to 'src/audio/include/audio_task.hpp') diff --git a/src/audio/include/audio_task.hpp b/src/audio/include/audio_task.hpp index f997caee..e316f17a 100644 --- a/src/audio/include/audio_task.hpp +++ b/src/audio/include/audio_task.hpp @@ -6,15 +6,54 @@ #pragma once +#include +#include +#include +#include "audio_decoder.hpp" #include "audio_sink.hpp" +#include "audio_source.hpp" +#include "codec.hpp" #include "pipeline.hpp" namespace audio { -namespace task { +class Timer { + public: + explicit Timer(StreamInfo::Pcm); -auto StartPipeline(Pipeline* pipeline, IAudioSink* sink) -> void; + auto SetLengthSeconds(uint32_t) -> void; + auto SetLengthBytes(uint32_t) -> void; -} // namespace task + auto AddBytes(std::size_t) -> void; + + private: + StreamInfo::Pcm format_; + + uint32_t last_seconds_; + uint32_t total_duration_seconds_; + float current_seconds_; +}; + +class AudioTask { + public: + static auto Start(IAudioSource* source, IAudioSink* sink) -> AudioTask*; + + auto Main() -> void; + + private: + AudioTask(IAudioSource* source, IAudioSink* sink); + + IAudioSource* source_; + IAudioSink* sink_; + std::unique_ptr codec_; + std::unique_ptr timer_; + + bool is_new_stream_; + std::optional current_input_format_; + std::optional current_output_format_; + + std::byte* sample_buffer_; + std::size_t sample_buffer_len_; +}; } // namespace audio -- cgit v1.2.3