summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/sound/sound_module.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/osd/modules/sound/sound_module.h')
-rw-r--r--src/osd/modules/sound/sound_module.h9
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;