diff --git a/include/SFML/Audio/SoundRecorder.h b/include/SFML/Audio/SoundRecorder.h index 92e8d45..610d8de 100644 --- a/include/SFML/Audio/SoundRecorder.h +++ b/include/SFML/Audio/SoundRecorder.h @@ -185,5 +185,33 @@ CSFML_AUDIO_API sfBool sfSoundRecorder_setDevice(sfSoundRecorder* soundRecorder, //////////////////////////////////////////////////////////// CSFML_AUDIO_API const char* sfSoundRecorder_getDevice(sfSoundRecorder* soundRecorder); +//////////////////////////////////////////////////////////// +/// \brief Set the channel count of the audio capture device +/// +/// This method allows you to specify the number of channels +/// used for recording. Currently only 16-bit mono and +/// 16-bit stereo are supported. +/// +/// \param channelCount Number of channels. Currently only +/// mono (1) and stereo (2) are supported. +/// +/// \see sfSoundRecorder_getChannelCount +/// +//////////////////////////////////////////////////////////// +CSFML_AUDIO_API void sfSoundRecorder_setChannelCount(sfSoundRecorder* soundRecorder, unsigned int channelCount); + +//////////////////////////////////////////////////////////// +/// \brief Get the number of channels used by this recorder +/// +/// Currently only mono and stereo are supported, so the +/// value is either 1 (for mono) or 2 (for stereo). +/// +/// \return Number of channels +/// +/// \see sfSoundRecorder_setChannelCount +/// +//////////////////////////////////////////////////////////// +CSFML_AUDIO_API unsigned int sfSoundRecorder_getChannelCount(const sfSoundRecorder* soundRecorder); + #endif // SFML_SOUNDRECORDER_H diff --git a/src/SFML/Audio/SoundRecorder.cpp b/src/SFML/Audio/SoundRecorder.cpp index c27e922..69a59fd 100644 --- a/src/SFML/Audio/SoundRecorder.cpp +++ b/src/SFML/Audio/SoundRecorder.cpp @@ -102,6 +102,7 @@ const char** sfSoundRecorder_getAvailableDevices(size_t* count) return !cstringDevices.empty() ? &cstringDevices[0] : NULL; } + //////////////////////////////////////////////////////////// const char* sfSoundRecorder_getDefaultDevice() { @@ -110,12 +111,14 @@ const char* sfSoundRecorder_getDefaultDevice() return !defaultDevice.empty() ? defaultDevice.c_str() : NULL; } + //////////////////////////////////////////////////////////// sfBool sfSoundRecorder_setDevice(sfSoundRecorder* soundRecorder, const char* name) { CSFML_CALL_RETURN(soundRecorder, setDevice(name), sfFalse); } + //////////////////////////////////////////////////////////// const char* sfSoundRecorder_getDevice(sfSoundRecorder* soundRecorder) { @@ -125,3 +128,17 @@ const char* sfSoundRecorder_getDevice(sfSoundRecorder* soundRecorder) return soundRecorder->DeviceName.c_str(); } + + +//////////////////////////////////////////////////////////// +void sfSoundRecorder_setChannelCount(sfSoundRecorder* soundRecorder, unsigned int channelCount) +{ + CSFML_CALL(soundRecorder, setChannelCount(channelCount)); +} + + +//////////////////////////////////////////////////////////// +unsigned int sfSoundRecorder_getChannelCount(const sfSoundRecorder* soundRecorder) +{ + CSFML_CALL_RETURN(soundRecorder, getChannelCount(), 0); +}