diff options
Diffstat (limited to 'src/audio/ring_buffer.h')
| -rw-r--r-- | src/audio/ring_buffer.h | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/audio/ring_buffer.h b/src/audio/ring_buffer.h index b19c1ea..324447a 100644 --- a/src/audio/ring_buffer.h +++ b/src/audio/ring_buffer.h @@ -42,6 +42,11 @@ class AudioRingBuffer { return total_read_.load(std::memory_order_acquire); } + // Get total samples written (for render timing) + int64_t get_total_written() const { + return total_written_.load(std::memory_order_acquire); + } + // Clear buffer (for seeking) void clear(); @@ -49,7 +54,8 @@ class AudioRingBuffer { float buffer_[RING_BUFFER_CAPACITY_SAMPLES]; int capacity_; // Total capacity in samples - std::atomic<int> write_pos_; // Write position (0 to capacity-1) - std::atomic<int> read_pos_; // Read position (0 to capacity-1) - std::atomic<int64_t> total_read_; // Total samples read (for playback time) + std::atomic<int> write_pos_; // Write position (0 to capacity-1) + std::atomic<int> read_pos_; // Read position (0 to capacity-1) + std::atomic<int64_t> total_read_; // Total samples read (for playback time) + std::atomic<int64_t> total_written_; // Total samples written (for render timing) }; |
