diff options
| author | jacqueline <me@jacqueline.id.au> | 2023-07-31 11:00:17 +1000 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2023-07-31 11:06:27 +1000 |
| commit | cdaa2ac97ac663de7c0c2b0361871c97269b1675 (patch) | |
| tree | c7ac2908d9294613db6f11138fc54786f4d78dab /src/audio/include/audio_task.hpp | |
| parent | 0a8d2fd12e0781c32d23b67dd938e3ba8caf782e (diff) | |
| download | tangara-fw-cdaa2ac97ac663de7c0c2b0361871c97269b1675.tar.gz | |
Add duration for flacs
Diffstat (limited to 'src/audio/include/audio_task.hpp')
| -rw-r--r-- | src/audio/include/audio_task.hpp | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/audio/include/audio_task.hpp b/src/audio/include/audio_task.hpp index 72732021..f6e9789b 100644 --- a/src/audio/include/audio_task.hpp +++ b/src/audio/include/audio_task.hpp @@ -18,15 +18,21 @@ namespace audio { +struct Duration { + enum class Source { + kLibTags, + kCodec, + kFileSize, + }; + Source src; + uint32_t duration; +}; + class Timer { public: - explicit Timer(StreamInfo::Pcm); - - auto SetLengthSeconds(uint32_t) -> void; - auto SetLengthBytes(uint32_t) -> void; + Timer(const StreamInfo::Pcm&, const Duration&); auto AddBytes(std::size_t) -> void; - auto has_duration() const -> bool { return has_duration_; } private: auto bytes_to_samples(uint32_t) -> uint32_t; @@ -36,7 +42,6 @@ class Timer { uint32_t current_seconds_; uint32_t current_sample_in_second_; - bool has_duration_; uint32_t total_duration_seconds_; }; @@ -57,7 +62,7 @@ class AudioTask { auto ForwardPcmStream(StreamInfo::Pcm&, cpp::span<const std::byte>) -> bool; - auto ConfigureSink(const StreamInfo::Pcm&) -> bool; + auto ConfigureSink(const StreamInfo::Pcm&, const Duration&) -> bool; IAudioSource* source_; IAudioSink* sink_; |
