diff --git a/src/Magnum/Audio/Context.cpp b/src/Magnum/Audio/Context.cpp index 9083c8422..093d609ca 100644 --- a/src/Magnum/Audio/Context.cpp +++ b/src/Magnum/Audio/Context.cpp @@ -177,6 +177,41 @@ std::vector Context::extensionStrings() const { return extensions; } +bool Context::isHrtfEnabled() const { + Int enabled; + alcGetIntegerv(_device, ALC_HRTF_SOFT, 1, &enabled); + return enabled == ALC_TRUE; +} + +Context::HrtfStatus Context::hrtfStatus() const { + if(!isExtensionSupported()) + return isHrtfEnabled() ? HrtfStatus::Enabled : HrtfStatus::Disabled; + + Int status; + alcGetIntegerv(_device, ALC_HRTF_STATUS_SOFT, 1, &status); + return Context::HrtfStatus(status); +} + +std::string Context::hrtfSpecifier() const { + return alcGetString(_device, ALC_HRTF_SPECIFIER_SOFT); +} + +std::string Context::deviceSpecifierString() const { + return alcGetString(_device, ALC_DEVICE_SPECIFIER); +} + +std::string Context::vendorString() const { + return alGetString(AL_VENDOR); +} + +std::string Context::rendererString() const { + return alGetString(AL_RENDERER); +} + +std::string Context::versionString() const { + return alGetString(AL_VERSION); +} + bool Context::tryCreateContext(const Configuration& config) { /* The following parameters are order dependent! Make sure to always add sufficient space at end of the attributes diff --git a/src/Magnum/Audio/Context.h b/src/Magnum/Audio/Context.h index 80ddfb8cf..4b3e4a76d 100644 --- a/src/Magnum/Audio/Context.h +++ b/src/Magnum/Audio/Context.h @@ -205,9 +205,7 @@ class MAGNUM_AUDIO_EXPORT Context { * @see @fn_al{GetString} with @def_alc{HRTF_SPECIFIER_SOFT} * @requires_al_extension @alc_extension{SOFT,HRTF} */ - std::string hrtfSpecifier() const { - return alcGetString(_device, ALC_HRTF_SPECIFIER_SOFT); - } + std::string hrtfSpecifier() const; /** * @brief Device specifier string @@ -215,7 +213,7 @@ class MAGNUM_AUDIO_EXPORT Context { * @see @ref deviceSpecifierStrings(), @ref vendorString(), @ref rendererString(), * @fn_al{GetString} with @def_alc{DEVICE_SPECIFIER} */ - std::string deviceSpecifierString() const { return alcGetString(_device, ALC_DEVICE_SPECIFIER); } + std::string deviceSpecifierString() const; /** * @brief Vendor string @@ -223,7 +221,7 @@ class MAGNUM_AUDIO_EXPORT Context { * @see @ref deviceSpecifierString(), @ref rendererString(), * @fn_al{GetString} with @def_al{VENDOR} */ - std::string vendorString() const { return alGetString(AL_VENDOR); } + std::string vendorString() const; /** * @brief Renderer string @@ -231,14 +229,14 @@ class MAGNUM_AUDIO_EXPORT Context { * @see @ref deviceSpecifierString(), @ref vendorString(), * @fn_al{GetString} with @def_al{RENDERER} */ - std::string rendererString() const { return alGetString(AL_RENDERER); } + std::string rendererString() const; /** * @brief Version string * * @see @fn_al{GetString} with @def_al{VERSION} */ - std::string versionString() const { return alGetString(AL_VERSION); } + std::string versionString() const; /** * @brief Extension strings @@ -469,21 +467,6 @@ MAGNUM_ASSERT_AUDIO_EXTENSION_SUPPORTED(Extensions::ALC::SOFTX::HRTF); /** @debugoperatorclassenum{Magnum::Audio::Context,Magnum::Audio::Context::HrtfStatus} */ MAGNUM_AUDIO_EXPORT Debug& operator<<(Debug& debug, Context::HrtfStatus value); -inline bool Context::isHrtfEnabled() const { - Int enabled; - alcGetIntegerv(_device, ALC_HRTF_SOFT, 1, &enabled); - return enabled == ALC_TRUE; -} - -inline Context::HrtfStatus Context::hrtfStatus() const { - if(!isExtensionSupported()) - return isHrtfEnabled() ? HrtfStatus::Enabled : HrtfStatus::Disabled; - - Int status; - alcGetIntegerv(_device, ALC_HRTF_STATUS_SOFT, 1, &status); - return Context::HrtfStatus(status); -} - }} #endif