public:
void clear();
void add_audio(const float *samples, size_t num_samples, double sample_rate, std::chrono::steady_clock::time_point frame_time);
- double get_length_seconds() const;
+ double get_length_seconds() const; // 0.0 if empty().
+ double get_length_seconds_after_base(std::chrono::steady_clock::time_point base) const;
+ bool empty() const;
- std::unique_ptr<std::pair<float, float>[]> get_min_max_peaks(unsigned width) const;
+ // Only valid if not empty.
+ std::chrono::steady_clock::time_point get_first_sample() const;
+
+ std::unique_ptr<std::pair<float, float>[]> get_min_max_peaks(unsigned width, std::chrono::steady_clock::time_point base) const;
private:
mutable std::mutex mu;