diff --git a/doc/changelog.dox b/doc/changelog.dox index 5d5d4ae24..2ff2c0774 100644 --- a/doc/changelog.dox +++ b/doc/changelog.dox @@ -43,6 +43,10 @@ See also: @subsection changelog-latest-new New features +@subsubsection changelog-latest-new-audio Audio library + +- Added a @ref Audio::Buffer::frequency() getter + @subsubsection changelog-latest-new-gl GL library - Exposed new entry points. Note that no wrapper API in the @ref GL namespace diff --git a/src/Magnum/Audio/Buffer.h b/src/Magnum/Audio/Buffer.h index e110cef6a..e6981b827 100644 --- a/src/Magnum/Audio/Buffer.h +++ b/src/Magnum/Audio/Buffer.h @@ -96,7 +96,8 @@ class MAGNUM_AUDIO_EXPORT Buffer { * @brief Buffer size in bytes * @m_since{2019,10} * - * @see @ref channels(), @ref bitDepth(), @ref sampleCount() + * @see @ref channels(), @ref frequency(), @ref bitDepth(), + * @ref sampleCount() */ Int size() const { Int size; @@ -108,7 +109,8 @@ class MAGNUM_AUDIO_EXPORT Buffer { * @brief Buffer channel count * @m_since{2019,10} * - * @see @ref size(), @ref bitDepth(), @ref sampleCount() + * @see @ref size(), @ref frequency(), @ref bitDepth(), + * @ref sampleCount() */ Int channels() const { ALint channels; @@ -116,11 +118,25 @@ class MAGNUM_AUDIO_EXPORT Buffer { return channels; } + /** + * @brief Buffer frequency + * @m_since_latest + * + * @see @ref size(), @ref channels(), @ref bitDepth(), + * @ref sampleCount() + */ + Int frequency() const { + ALsizei frequency; + alGetBufferi(_id, AL_FREQUENCY, &frequency); + return frequency; + } + /** * @brief Buffer bit depth * @m_since{2019,10} * - * @see @ref size(), @ref channels(), @ref sampleCount() + * @see @ref size(), @ref channels(), @ref frequency(), + * @ref sampleCount() */ Int bitDepth() const { ALint bitDepth; diff --git a/src/Magnum/Audio/Test/BufferALTest.cpp b/src/Magnum/Audio/Test/BufferALTest.cpp index 262e26819..064f0e41e 100644 --- a/src/Magnum/Audio/Test/BufferALTest.cpp +++ b/src/Magnum/Audio/Test/BufferALTest.cpp @@ -77,6 +77,7 @@ void BufferALTest::properties() { CORRADE_COMPARE(buf.size(), 8); CORRADE_COMPARE(buf.channels(), 1); + CORRADE_COMPARE(buf.frequency(), 22050); CORRADE_COMPARE(buf.bitDepth(), 8); CORRADE_COMPARE(buf.sampleCount(), 8); }