diff options
Diffstat (limited to 'src/osd/modules/sound/sound_module.h')
| -rw-r--r-- | src/osd/modules/sound/sound_module.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/osd/modules/sound/sound_module.h b/src/osd/modules/sound/sound_module.h index b160a14dd1b..7279d922439 100644 --- a/src/osd/modules/sound/sound_module.h +++ b/src/osd/modules/sound/sound_module.h @@ -41,15 +41,15 @@ protected: abuffer(uint32_t channels, uint32_t rate) noexcept; void set_latency(float latency); void clear(); - void get(int16_t *data, uint32_t samples) noexcept; + void get(int16_t *data, uint32_t samples, bool internal = false) noexcept; void push(const int16_t *data, uint32_t samples); uint32_t channels() const noexcept { return m_channels; } uint32_t available() const noexcept; private: struct buffer { - uint32_t m_cpos; - std::vector<int16_t> m_data; + uint32_t cpos; + std::vector<int16_t> data; buffer() noexcept = default; buffer(const buffer &) = default; @@ -59,6 +59,7 @@ protected: }; void pop_buffer() noexcept; + void flush_buffers(uint32_t remain); buffer &push_buffer(); uint32_t m_channels; @@ -69,6 +70,8 @@ protected: std::array<int32_t, 8> m_history; uint8_t m_hindex; bool m_overrun; + bool m_internal_get; + std::vector<int16_t> m_last_fade; std::vector<int16_t> m_last_sample; std::vector<buffer> m_buffers; |
