diff options
Diffstat (limited to 'extern/audaspace/bindings')
-rw-r--r-- | extern/audaspace/bindings/C/AUD_Special.cpp | 8 | ||||
-rw-r--r-- | extern/audaspace/bindings/C/AUD_Special.h | 10 |
2 files changed, 12 insertions, 6 deletions
diff --git a/extern/audaspace/bindings/C/AUD_Special.cpp b/extern/audaspace/bindings/C/AUD_Special.cpp index c7155276a30..a83465620ab 100644 --- a/extern/audaspace/bindings/C/AUD_Special.cpp +++ b/extern/audaspace/bindings/C/AUD_Special.cpp @@ -270,7 +270,7 @@ AUD_API int AUD_readSound(AUD_Sound* sound, float* buffer, int length, int sampl return length; } -AUD_API const char* AUD_mixdown(AUD_Sound* sound, unsigned int start, unsigned int length, unsigned int buffersize, const char* filename, AUD_DeviceSpecs specs, AUD_Container format, AUD_Codec codec, unsigned int bitrate) +AUD_API const char* AUD_mixdown(AUD_Sound* sound, unsigned int start, unsigned int length, unsigned int buffersize, const char* filename, AUD_DeviceSpecs specs, AUD_Container format, AUD_Codec codec, unsigned int bitrate, void(*callback)(float, void*), void* data) { try { @@ -280,7 +280,7 @@ AUD_API const char* AUD_mixdown(AUD_Sound* sound, unsigned int start, unsigned i std::shared_ptr<IReader> reader = f->createQualityReader(); reader->seek(start); std::shared_ptr<IWriter> writer = FileWriter::createWriter(filename, convCToDSpec(specs), static_cast<Container>(format), static_cast<Codec>(codec), bitrate); - FileWriter::writeReader(reader, writer, length, buffersize); + FileWriter::writeReader(reader, writer, length, buffersize, callback, data); return nullptr; } @@ -290,7 +290,7 @@ AUD_API const char* AUD_mixdown(AUD_Sound* sound, unsigned int start, unsigned i } } -AUD_API const char* AUD_mixdown_per_channel(AUD_Sound* sound, unsigned int start, unsigned int length, unsigned int buffersize, const char* filename, AUD_DeviceSpecs specs, AUD_Container format, AUD_Codec codec, unsigned int bitrate) +AUD_API const char* AUD_mixdown_per_channel(AUD_Sound* sound, unsigned int start, unsigned int length, unsigned int buffersize, const char* filename, AUD_DeviceSpecs specs, AUD_Container format, AUD_Codec codec, unsigned int bitrate, void(*callback)(float, void*), void* data) { try { @@ -326,7 +326,7 @@ AUD_API const char* AUD_mixdown_per_channel(AUD_Sound* sound, unsigned int start std::shared_ptr<IReader> reader = f->createQualityReader(); reader->seek(start); - FileWriter::writeReader(reader, writers, length, buffersize); + FileWriter::writeReader(reader, writers, length, buffersize, callback, data); return nullptr; } diff --git a/extern/audaspace/bindings/C/AUD_Special.h b/extern/audaspace/bindings/C/AUD_Special.h index 9faf9e4ee74..ce51fa2e04e 100644 --- a/extern/audaspace/bindings/C/AUD_Special.h +++ b/extern/audaspace/bindings/C/AUD_Special.h @@ -68,12 +68,15 @@ extern AUD_API int AUD_readSound(AUD_Sound* sound, float* buffer, int length, in * \param format The file's container format. * \param codec The codec used for encoding the audio data. * \param bitrate The bitrate for encoding. + * \param callback A callback function that is called periodically during mixdown, reporting progress if length > 0. Can be NULL. + * \param data Pass through parameter that is passed to the callback. * \return An error message or NULL in case of success. */ extern AUD_API const char* AUD_mixdown(AUD_Sound* sound, unsigned int start, unsigned int length, unsigned int buffersize, const char* filename, AUD_DeviceSpecs specs, AUD_Container format, - AUD_Codec codec, unsigned int bitrate); + AUD_Codec codec, unsigned int bitrate, + void(*callback)(float, void*), void* data); /** * Mixes a sound down into multiple files. @@ -86,12 +89,15 @@ extern AUD_API const char* AUD_mixdown(AUD_Sound* sound, unsigned int start, uns * \param format The file's container format. * \param codec The codec used for encoding the audio data. * \param bitrate The bitrate for encoding. + * \param callback A callback function that is called periodically during mixdown, reporting progress if length > 0. Can be NULL. + * \param data Pass through parameter that is passed to the callback. * \return An error message or NULL in case of success. */ extern AUD_API const char* AUD_mixdown_per_channel(AUD_Sound* sound, unsigned int start, unsigned int length, unsigned int buffersize, const char* filename, AUD_DeviceSpecs specs, AUD_Container format, - AUD_Codec codec, unsigned int bitrate); + AUD_Codec codec, unsigned int bitrate, + void(*callback)(float, void*), void* data); /** * Opens a read device and prepares it for mixdown of the sound scene. |