diff --git a/Userland/Libraries/LibAudio/FlacLoader.cpp b/Userland/Libraries/LibAudio/FlacLoader.cpp index 2cb2898111..08e32ba7ad 100644 --- a/Userland/Libraries/LibAudio/FlacLoader.cpp +++ b/Userland/Libraries/LibAudio/FlacLoader.cpp @@ -235,6 +235,7 @@ RefPtr FlacLoaderPlugin::get_more_samples([[maybe_unused]] size_t max_by --samples_to_read; } + m_loaded_samples += samples.size(); return Buffer::create_with_samples(move(samples)); } diff --git a/Userland/Libraries/LibAudio/FlacLoader.h b/Userland/Libraries/LibAudio/FlacLoader.h index 693146c5c7..0b75ff5dfd 100644 --- a/Userland/Libraries/LibAudio/FlacLoader.h +++ b/Userland/Libraries/LibAudio/FlacLoader.h @@ -67,8 +67,7 @@ public: virtual void reset() override; virtual void seek(const int position) override; - // FIXME - virtual int loaded_samples() override { return 0; } + virtual int loaded_samples() override { return m_loaded_samples; } virtual int total_samples() override { return m_total_samples; } virtual u32 sample_rate() override { return m_sample_rate; } virtual u16 num_channels() override { return m_num_channels; } @@ -119,6 +118,7 @@ private: u32 m_max_frame_size { 0 }; // 24 bit u64 m_total_samples { 0 }; // 36 bit u8 m_md5_checksum[128 / 8]; // 128 bit (!) + size_t m_loaded_samples { 0 }; // keep track of the start of the data in the FLAC stream to seek back more easily u64 m_data_start_location { 0 };