diff options
Diffstat (limited to 'src/mame/audio/exidy440.h')
-rw-r--r-- | src/mame/audio/exidy440.h | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/src/mame/audio/exidy440.h b/src/mame/audio/exidy440.h index e3920be90a2..6e2a56c0460 100644 --- a/src/mame/audio/exidy440.h +++ b/src/mame/audio/exidy440.h @@ -58,12 +58,11 @@ private: /* sound_cache_entry structure contains info on each decoded sample */ struct sound_cache_entry { - struct sound_cache_entry *next; int address; int length; int bits; int frequency; - int16_t data[1]; + std::vector<int16_t> data; }; required_device<cpu_device> m_audiocpu; @@ -78,9 +77,7 @@ private: uint8_t m_sound_volume[0x10]; std::vector<int32_t> m_mixer_buffer_left; std::vector<int32_t> m_mixer_buffer_right; - sound_cache_entry *m_sound_cache; - sound_cache_entry *m_sound_cache_end; - sound_cache_entry *m_sound_cache_max; + std::list<sound_cache_entry> m_sound_cache; /* 6844 description */ m6844_channel_data m_m6844_channel[4]; @@ -103,11 +100,10 @@ private: void play_cvsd(int ch); void stop_cvsd(int ch); - void reset_sound_cache(); int16_t *add_to_sound_cache(uint8_t *input, int address, int length, int bits, int frequency); int16_t *find_or_add_to_sound_cache(int address, int length, int bits, int frequency); - void decode_and_filter_cvsd(uint8_t *data, int bytes, int maskbits, int frequency, int16_t *dest); + void decode_and_filter_cvsd(uint8_t *data, int bytes, int maskbits, int frequency, std::vector<int16_t> &output); void fir_filter(int32_t *input, int16_t *output, int count); void add_and_scale_samples(int ch, int32_t *dest, int samples, int volume); |