diff options
Diffstat (limited to 'src/lib/util/wavwrite.h')
-rw-r--r-- | src/lib/util/wavwrite.h | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/src/lib/util/wavwrite.h b/src/lib/util/wavwrite.h index 8ceb6ad2a0d..3f6ac6fd5c1 100644 --- a/src/lib/util/wavwrite.h +++ b/src/lib/util/wavwrite.h @@ -5,14 +5,35 @@ #pragma once +#include <cstdint> +#include <memory> +#include <string_view> + + +namespace util { + struct wav_file; -wav_file *wav_open(const char *filename, int sample_rate, int channels); -void wav_close(wav_file*wavptr); +void wav_close(wav_file *wavptr); + +struct wav_deleter +{ + void operator()(wav_file *wavptr) const + { + if (wavptr) + wav_close(wavptr); + } +}; + +using wav_file_ptr = std::unique_ptr<wav_file, wav_deleter>; + +wav_file_ptr wav_open(std::string_view filename, int sample_rate, int channels); + +void wav_add_data_16(wav_file &wavptr, std::int16_t *data, int samples); +void wav_add_data_32(wav_file &wavptr, std::int32_t *data, int samples, int shift); +void wav_add_data_16lr(wav_file &wavptr, std::int16_t *left, std::int16_t *right, int samples); +void wav_add_data_32lr(wav_file &wavptr, std::int32_t *left, std::int32_t *right, int samples, int shift); -void wav_add_data_16(wav_file *wavptr, int16_t *data, int samples); -void wav_add_data_32(wav_file *wavptr, int32_t *data, int samples, int shift); -void wav_add_data_16lr(wav_file *wavptr, int16_t *left, int16_t *right, int samples); -void wav_add_data_32lr(wav_file *wavptr, int32_t *left, int32_t *right, int samples, int shift); +} // namespace util #endif // MAME_UTIL_WAVWRITE_H |