diff --git a/doc/changelog.dox b/doc/changelog.dox index df605de51..0ede8d10d 100644 --- a/doc/changelog.dox +++ b/doc/changelog.dox @@ -120,6 +120,7 @@ See also: @subsection changelog-latest-deprecated Deprecated APIs +- `Audio::Buffer::Format` is deprecated, use `Audio::BufferFormat` instead - `setData()` functions in the @ref Image and @ref CompressedImage classes are deprecated because they don't offer anything extra over simple move-assignment of a new instance. diff --git a/src/Magnum/Audio/AbstractImporter.cpp b/src/Magnum/Audio/AbstractImporter.cpp index a17d89dd7..f94fef202 100644 --- a/src/Magnum/Audio/AbstractImporter.cpp +++ b/src/Magnum/Audio/AbstractImporter.cpp @@ -97,7 +97,7 @@ void AbstractImporter::close() { } } -Buffer::Format AbstractImporter::format() const { +BufferFormat AbstractImporter::format() const { CORRADE_ASSERT(isOpened(), "Audio::AbstractImporter::format(): no file opened", {}); return doFormat(); } diff --git a/src/Magnum/Audio/AbstractImporter.h b/src/Magnum/Audio/AbstractImporter.h index 31e9e857a..8e5ecf1ec 100644 --- a/src/Magnum/Audio/AbstractImporter.h +++ b/src/Magnum/Audio/AbstractImporter.h @@ -32,7 +32,7 @@ #include #include "Magnum/Magnum.h" -#include "Magnum/Audio/Buffer.h" +#include "Magnum/Audio/BufferFormat.h" namespace Magnum { namespace Audio { @@ -151,7 +151,7 @@ class MAGNUM_AUDIO_EXPORT AbstractImporter: public PluginManager::AbstractManagi /** @{ @name Data access */ /** @brief Sample format */ - Buffer::Format format() const; + BufferFormat format() const; /** @brief Sample frequency */ UnsignedInt frequency() const; @@ -187,7 +187,7 @@ class MAGNUM_AUDIO_EXPORT AbstractImporter: public PluginManager::AbstractManagi virtual void doClose() = 0; /** @brief Implementation for @ref format() */ - virtual Buffer::Format doFormat() const = 0; + virtual BufferFormat doFormat() const = 0; /** @brief Implementation for @ref frequency() */ virtual UnsignedInt doFrequency() const = 0; diff --git a/src/Magnum/Audio/Audio.h b/src/Magnum/Audio/Audio.h index caee78de3..d210096f5 100644 --- a/src/Magnum/Audio/Audio.h +++ b/src/Magnum/Audio/Audio.h @@ -31,10 +31,17 @@ #include +#ifndef DOXYGEN_GENERATING_OUTPUT +typedef int ALenum; +#endif + namespace Magnum { namespace Audio { #ifndef DOXYGEN_GENERATING_OUTPUT class AbstractImporter; + +enum class BufferFormat: ALenum; + class Buffer; class Context; class Source; diff --git a/src/Magnum/Audio/Buffer.h b/src/Magnum/Audio/Buffer.h index 61e923418..a85bdddf8 100644 --- a/src/Magnum/Audio/Buffer.h +++ b/src/Magnum/Audio/Buffer.h @@ -37,165 +37,25 @@ #include #include "Magnum/Magnum.h" +#include "Magnum/Audio/Audio.h" #include "Magnum/Audio/visibility.h" +#ifdef MAGNUM_BUILD_DEPRECATED +#include +#include "Magnum/Audio/BufferFormat.h" +#endif + namespace Magnum { namespace Audio { /** @brief Sample buffer */ class Buffer { public: - /** - * @brief Sample format - * - * @note Multi-channel format is played without 3D spatialization - * (useful for background music) - * @see @ref setData() - * @m_enum_values_as_keywords + #ifdef MAGNUM_BUILD_DEPRECATED + /** @brief @copybrief BufferFormat + * @deprecated Use @ref BufferFormat instead. */ - enum class Format: ALenum { - Mono8 = AL_FORMAT_MONO8, /**< 8-bit unsigned mono */ - Mono16 = AL_FORMAT_MONO16, /**< 16-bit signed mono */ - Stereo8 = AL_FORMAT_STEREO8, /**< 8-bit interleaved unsigned stereo */ - Stereo16 = AL_FORMAT_STEREO16, /**< 16-bit interleaved signed stereo */ - - /** - * 8-bit mono [A-Law Compressed Sound Format](https://en.wikipedia.org/wiki/A-law_algorithm) - * @requires_al_extension Extension @al_extension{EXT,ALAW} - */ - MonoALaw = AL_FORMAT_MONO_ALAW_EXT, - - /** - * 8-bit interleaved stereo [A-Law Compressed Sound Format](https://en.wikipedia.org/wiki/A-law_algorithm) - * @requires_al_extension Extension @al_extension{EXT,ALAW} - */ - StereoALaw = AL_FORMAT_STEREO_ALAW_EXT, - - /** - * 8-bit mono [μ-Law Compressed Sound Format](https://en.wikipedia.org/wiki/Μ-law_algorithm) - * @requires_al_extension Extension @al_extension{EXT,MULAW} - */ - MonoMuLaw = AL_FORMAT_MONO_MULAW_EXT, - - /** - * 8-bit interleaved [μ-Law Compressed Sound Format](https://en.wikipedia.org/wiki/Μ-law_algorithm) - * @requires_al_extension Extension @al_extension{EXT,MULAW} - */ - StereoMuLaw = AL_FORMAT_STEREO_MULAW_EXT, - - /** - * 32-bit floating-point mono - * @requires_al_extension Extension @al_extension{EXT,float32} - */ - MonoFloat = AL_FORMAT_MONO_FLOAT32, - - /** - * 32-bit interleaved floating-point stereo - * @requires_al_extension Extension @al_extension{EXT,float32} - */ - StereoFloat = AL_FORMAT_STEREO_FLOAT32, - - /** - * 64-bit floating-point mono - * @requires_al_extension Extension @al_extension{EXT,double} - */ - MonoDouble = AL_FORMAT_MONO_DOUBLE_EXT, - - /** - * 64-bit interleaved floating-point stereo - * @requires_al_extension Extension @al_extension{EXT,double} - */ - StereoDouble = AL_FORMAT_STEREO_DOUBLE_EXT, - - /** - * 8-bit unsigned quadrophonic - * @requires_al_extension Extension @al_extension{EXT,MCFORMATS} - */ - Quad8 = AL_FORMAT_QUAD8, - - /** - * 16-bit signed quadrophonic - * @requires_al_extension Extension @al_extension{EXT,MCFORMATS} - */ - Quad16 = AL_FORMAT_QUAD16, - - /** - * 32-bit interleaved floating-point quadrophonic - * @requires_al_extension Extension @al_extension{EXT,MCFORMATS} - */ - Quad32 = AL_FORMAT_QUAD32, - - /** - * 8-bit unsigned rear - * @requires_al_extension Extension @al_extension{EXT,MCFORMATS} - */ - Rear8 = AL_FORMAT_REAR8, - - /** - * 16-bit signed rear - * @requires_al_extension Extension @al_extension{EXT,MCFORMATS} - */ - Rear16 = AL_FORMAT_REAR16, - - /** - * 32-bit interleaved floating-point rear - * @requires_al_extension Extension @al_extension{EXT,MCFORMATS} - */ - Rear32 = AL_FORMAT_REAR32, - - /** - * 8-bit unsigned 5.1 surround - * @requires_al_extension Extension @al_extension{EXT,MCFORMATS} - */ - Surround51Channel8 = AL_FORMAT_51CHN8, - - /** - * 16-bit signed 5.1 surround - * @requires_al_extension Extension @al_extension{EXT,MCFORMATS} - */ - Surround51Channel16 = AL_FORMAT_51CHN16, - - /** - * 32-bit interleaved floating-point 5.1 surround - * @requires_al_extension Extension @al_extension{EXT,MCFORMATS} - */ - Surround51Channel32 = AL_FORMAT_51CHN32, - - /** - * 8-bit unsigned 6.1 surround - * @requires_al_extension Extension @al_extension{EXT,MCFORMATS} - */ - Surround61Channel8 = AL_FORMAT_61CHN8, - - /** - * 16-bit signed 6.1 surround - * @requires_al_extension Extension @al_extension{EXT,MCFORMATS} - */ - Surround61Channel16 = AL_FORMAT_61CHN16, - - /** - * 32-bit interleaved floating-point 6.1 surround - * @requires_al_extension Extension @al_extension{EXT,MCFORMATS} - */ - Surround61Channel32 = AL_FORMAT_61CHN32, - - /** - * 8-bit unsigned 7.1 surround - * @requires_al_extension Extension @al_extension{EXT,MCFORMATS} - */ - Surround71Channel8 = AL_FORMAT_71CHN8, - - /** - * 16-bit signed 7.1 surround - * @requires_al_extension Extension @al_extension{EXT,MCFORMATS} - */ - Surround71Channel16 = AL_FORMAT_71CHN16, - - /** - * 32-bit interleaved floating-point 7.1 surround - * @requires_al_extension Extension @al_extension{EXT,MCFORMATS} - */ - Surround71Channel32 = AL_FORMAT_71CHN32 - }; + typedef CORRADE_DEPRECATED("use BufferFormat instead") BufferFormat Format; + #endif /** * @brief Constructor @@ -237,7 +97,7 @@ class Buffer { * * @see @fn_al_keyword{BufferData} */ - Buffer& setData(Format format, Containers::ArrayView data, ALsizei frequency) { + Buffer& setData(BufferFormat format, Containers::ArrayView data, ALsizei frequency) { alBufferData(_id, ALenum(format), data, data.size(), frequency); return *this; } @@ -246,9 +106,6 @@ class Buffer { ALuint _id; }; -/** @debugoperatorclassenum{Buffer,Buffer::Format} */ -MAGNUM_AUDIO_EXPORT Debug& operator<<(Debug& debug, Buffer::Format value); - inline Buffer::Buffer(Buffer&& other): _id(other._id) { other._id = 0; } diff --git a/src/Magnum/Audio/Buffer.cpp b/src/Magnum/Audio/BufferFormat.cpp similarity index 86% rename from src/Magnum/Audio/Buffer.cpp rename to src/Magnum/Audio/BufferFormat.cpp index cf4f223eb..8281feb3f 100644 --- a/src/Magnum/Audio/Buffer.cpp +++ b/src/Magnum/Audio/BufferFormat.cpp @@ -23,16 +23,16 @@ DEALINGS IN THE SOFTWARE. */ -#include "Buffer.h" +#include "BufferFormat.h" #include namespace Magnum { namespace Audio { -Debug& operator<<(Debug& debug, const Buffer::Format value) { +Debug& operator<<(Debug& debug, const BufferFormat value) { switch(value) { /* LCOV_EXCL_START */ - #define _c(value) case Buffer::Format::value: return debug << "Audio::Buffer::Format::" #value; + #define _c(value) case BufferFormat::value: return debug << "Audio::BufferFormat::" #value; _c(Mono8) _c(Mono16) _c(Stereo8) @@ -73,7 +73,7 @@ Debug& operator<<(Debug& debug, const Buffer::Format value) { /* LCOV_EXCL_STOP */ } - return debug << "Audio::Buffer::Format(" << Debug::nospace << reinterpret_cast(ALenum(value)) << Debug::nospace << ")"; + return debug << "Audio::BufferFormat(" << Debug::nospace << reinterpret_cast(ALenum(value)) << Debug::nospace << ")"; } }} diff --git a/src/Magnum/Audio/BufferFormat.h b/src/Magnum/Audio/BufferFormat.h new file mode 100644 index 000000000..1c9fbe7aa --- /dev/null +++ b/src/Magnum/Audio/BufferFormat.h @@ -0,0 +1,199 @@ +#ifndef Magnum_Audio_BufferFormat_h +#define Magnum_Audio_BufferFormat_h +/* + This file is part of Magnum. + + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 + Vladimír Vondruš + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +/** @file + * @brief Enum @ref Magnum::Audio::BufferFormat + */ + +#include +#include "MagnumExternal/OpenAL/extensions.h" + +#include "Magnum/Magnum.h" +#include "Magnum/Audio/visibility.h" + +namespace Magnum { namespace Audio { + +/** +@brief Buffer sample format + +@note Multi-channel format is played without 3D spatialization (useful for + background music) +@see @ref Buffer::setData(), @ref AbstractImporter::format() +@m_enum_values_as_keywords + */ +enum class BufferFormat: ALenum { + Mono8 = AL_FORMAT_MONO8, /**< 8-bit unsigned mono */ + Mono16 = AL_FORMAT_MONO16, /**< 16-bit signed mono */ + Stereo8 = AL_FORMAT_STEREO8, /**< 8-bit interleaved unsigned stereo */ + Stereo16 = AL_FORMAT_STEREO16, /**< 16-bit interleaved signed stereo */ + + /** + * 8-bit mono [A-Law Compressed Sound Format](https://en.wikipedia.org/wiki/A-law_algorithm) + * @requires_al_extension Extension @al_extension{EXT,ALAW} + */ + MonoALaw = AL_FORMAT_MONO_ALAW_EXT, + + /** + * 8-bit interleaved stereo [A-Law Compressed Sound Format](https://en.wikipedia.org/wiki/A-law_algorithm) + * @requires_al_extension Extension @al_extension{EXT,ALAW} + */ + StereoALaw = AL_FORMAT_STEREO_ALAW_EXT, + + /** + * 8-bit mono [μ-Law Compressed Sound Format](https://en.wikipedia.org/wiki/Μ-law_algorithm) + * @requires_al_extension Extension @al_extension{EXT,MULAW} + */ + MonoMuLaw = AL_FORMAT_MONO_MULAW_EXT, + + /** + * 8-bit interleaved [μ-Law Compressed Sound Format](https://en.wikipedia.org/wiki/Μ-law_algorithm) + * @requires_al_extension Extension @al_extension{EXT,MULAW} + */ + StereoMuLaw = AL_FORMAT_STEREO_MULAW_EXT, + + /** + * 32-bit floating-point mono + * @requires_al_extension Extension @al_extension{EXT,float32} + */ + MonoFloat = AL_FORMAT_MONO_FLOAT32, + + /** + * 32-bit interleaved floating-point stereo + * @requires_al_extension Extension @al_extension{EXT,float32} + */ + StereoFloat = AL_FORMAT_STEREO_FLOAT32, + + /** + * 64-bit floating-point mono + * @requires_al_extension Extension @al_extension{EXT,double} + */ + MonoDouble = AL_FORMAT_MONO_DOUBLE_EXT, + + /** + * 64-bit interleaved floating-point stereo + * @requires_al_extension Extension @al_extension{EXT,double} + */ + StereoDouble = AL_FORMAT_STEREO_DOUBLE_EXT, + + /** + * 8-bit unsigned quadrophonic + * @requires_al_extension Extension @al_extension{EXT,MCFORMATS} + */ + Quad8 = AL_FORMAT_QUAD8, + + /** + * 16-bit signed quadrophonic + * @requires_al_extension Extension @al_extension{EXT,MCFORMATS} + */ + Quad16 = AL_FORMAT_QUAD16, + + /** + * 32-bit interleaved floating-point quadrophonic + * @requires_al_extension Extension @al_extension{EXT,MCFORMATS} + */ + Quad32 = AL_FORMAT_QUAD32, + + /** + * 8-bit unsigned rear + * @requires_al_extension Extension @al_extension{EXT,MCFORMATS} + */ + Rear8 = AL_FORMAT_REAR8, + + /** + * 16-bit signed rear + * @requires_al_extension Extension @al_extension{EXT,MCFORMATS} + */ + Rear16 = AL_FORMAT_REAR16, + + /** + * 32-bit interleaved floating-point rear + * @requires_al_extension Extension @al_extension{EXT,MCFORMATS} + */ + Rear32 = AL_FORMAT_REAR32, + + /** + * 8-bit unsigned 5.1 surround + * @requires_al_extension Extension @al_extension{EXT,MCFORMATS} + */ + Surround51Channel8 = AL_FORMAT_51CHN8, + + /** + * 16-bit signed 5.1 surround + * @requires_al_extension Extension @al_extension{EXT,MCFORMATS} + */ + Surround51Channel16 = AL_FORMAT_51CHN16, + + /** + * 32-bit interleaved floating-point 5.1 surround + * @requires_al_extension Extension @al_extension{EXT,MCFORMATS} + */ + Surround51Channel32 = AL_FORMAT_51CHN32, + + /** + * 8-bit unsigned 6.1 surround + * @requires_al_extension Extension @al_extension{EXT,MCFORMATS} + */ + Surround61Channel8 = AL_FORMAT_61CHN8, + + /** + * 16-bit signed 6.1 surround + * @requires_al_extension Extension @al_extension{EXT,MCFORMATS} + */ + Surround61Channel16 = AL_FORMAT_61CHN16, + + /** + * 32-bit interleaved floating-point 6.1 surround + * @requires_al_extension Extension @al_extension{EXT,MCFORMATS} + */ + Surround61Channel32 = AL_FORMAT_61CHN32, + + /** + * 8-bit unsigned 7.1 surround + * @requires_al_extension Extension @al_extension{EXT,MCFORMATS} + */ + Surround71Channel8 = AL_FORMAT_71CHN8, + + /** + * 16-bit signed 7.1 surround + * @requires_al_extension Extension @al_extension{EXT,MCFORMATS} + */ + Surround71Channel16 = AL_FORMAT_71CHN16, + + /** + * 32-bit interleaved floating-point 7.1 surround + * @requires_al_extension Extension @al_extension{EXT,MCFORMATS} + */ + Surround71Channel32 = AL_FORMAT_71CHN32 +}; + +/** @debugoperatorenum{BufferFormat} */ +MAGNUM_AUDIO_EXPORT Debug& operator<<(Debug& debug, BufferFormat value); + +}} + +#endif + diff --git a/src/Magnum/Audio/CMakeLists.txt b/src/Magnum/Audio/CMakeLists.txt index c2ef04297..efca7c237 100644 --- a/src/Magnum/Audio/CMakeLists.txt +++ b/src/Magnum/Audio/CMakeLists.txt @@ -29,7 +29,7 @@ find_package(OpenAL REQUIRED) set(MagnumAudio_SRCS AbstractImporter.cpp Audio.cpp - Buffer.cpp + BufferFormat.cpp Context.cpp Renderer.cpp Source.cpp) @@ -38,6 +38,7 @@ set(MagnumAudio_HEADERS AbstractImporter.h Audio.h Buffer.h + BufferFormat.h Context.h Extensions.h Renderer.h diff --git a/src/Magnum/Audio/Test/AbstractImporterTest.cpp b/src/Magnum/Audio/Test/AbstractImporterTest.cpp index d81d134a9..bac9551fa 100644 --- a/src/Magnum/Audio/Test/AbstractImporterTest.cpp +++ b/src/Magnum/Audio/Test/AbstractImporterTest.cpp @@ -57,7 +57,7 @@ void AbstractImporterTest::openFile() { opened = (data.size() == 1 && data[0] == '\xa5'); } - Buffer::Format doFormat() const override { return {}; } + BufferFormat doFormat() const override { return {}; } UnsignedInt doFrequency() const override { return {}; } Corrade::Containers::Array doData() override { return nullptr; } diff --git a/src/Magnum/Audio/Test/BufferTest.cpp b/src/Magnum/Audio/Test/BufferFormatTest.cpp similarity index 75% rename from src/Magnum/Audio/Test/BufferTest.cpp rename to src/Magnum/Audio/Test/BufferFormatTest.cpp index 9c02554e7..8d49f2807 100644 --- a/src/Magnum/Audio/Test/BufferTest.cpp +++ b/src/Magnum/Audio/Test/BufferFormatTest.cpp @@ -26,26 +26,26 @@ #include #include -#include "Magnum/Audio/Buffer.h" +#include "Magnum/Audio/BufferFormat.h" namespace Magnum { namespace Audio { namespace Test { -struct BufferTest: TestSuite::Tester { - explicit BufferTest(); +struct BufferFormatTest: TestSuite::Tester { + explicit BufferFormatTest(); void debugFormat(); }; -BufferTest::BufferTest() { - addTests({&BufferTest::debugFormat}); +BufferFormatTest::BufferFormatTest() { + addTests({&BufferFormatTest::debugFormat}); } -void BufferTest::debugFormat() { +void BufferFormatTest::debugFormat() { std::ostringstream out; - Debug(&out) << Buffer::Format::Stereo16 << Buffer::Format(0xdead); - CORRADE_COMPARE(out.str(), "Audio::Buffer::Format::Stereo16 Audio::Buffer::Format(0xdead)\n"); + Debug(&out) << BufferFormat::Stereo16 << BufferFormat(0xdead); + CORRADE_COMPARE(out.str(), "Audio::BufferFormat::Stereo16 Audio::BufferFormat(0xdead)\n"); } }}} -CORRADE_TEST_MAIN(Magnum::Audio::Test::BufferTest) +CORRADE_TEST_MAIN(Magnum::Audio::Test::BufferFormatTest) diff --git a/src/Magnum/Audio/Test/CMakeLists.txt b/src/Magnum/Audio/Test/CMakeLists.txt index 43f6daa39..b777c2941 100644 --- a/src/Magnum/Audio/Test/CMakeLists.txt +++ b/src/Magnum/Audio/Test/CMakeLists.txt @@ -37,14 +37,14 @@ corrade_add_test(AudioAbstractImporterTest AbstractImporterTest.cpp LIBRARIES MagnumAudio FILES file.bin) target_include_directories(AudioAbstractImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) -corrade_add_test(AudioBufferTest BufferTest.cpp LIBRARIES MagnumAudio) +corrade_add_test(AudioBufferFormatTest BufferFormatTest.cpp LIBRARIES MagnumAudio) corrade_add_test(AudioContextTest ContextTest.cpp LIBRARIES MagnumAudio) corrade_add_test(AudioRendererTest RendererTest.cpp LIBRARIES MagnumAudio) corrade_add_test(AudioSourceTest SourceTest.cpp LIBRARIES MagnumAudio) set_target_properties( AudioAbstractImporterTest - AudioBufferTest + AudioBufferFormatTest AudioContextTest AudioRendererTest AudioSourceTest diff --git a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp index ccfdd4781..201d54e3d 100644 --- a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp +++ b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.cpp @@ -75,7 +75,7 @@ void AnyImporter::doOpenFile(const std::string& filename) { _in = std::move(importer); } -Buffer::Format AnyImporter::doFormat() const { return _in->format(); } +BufferFormat AnyImporter::doFormat() const { return _in->format(); } UnsignedInt AnyImporter::doFrequency() const { return _in->frequency(); } diff --git a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h index 6815497ea..4bf71e8ff 100644 --- a/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h +++ b/src/MagnumPlugins/AnyAudioImporter/AnyImporter.h @@ -92,7 +92,7 @@ class MAGNUM_ANYAUDIOIMPORTER_EXPORT AnyImporter: public AbstractImporter { MAGNUM_ANYAUDIOIMPORTER_LOCAL void doClose() override; MAGNUM_ANYAUDIOIMPORTER_LOCAL void doOpenFile(const std::string& filename) override; - MAGNUM_ANYAUDIOIMPORTER_LOCAL Buffer::Format doFormat() const override; + MAGNUM_ANYAUDIOIMPORTER_LOCAL BufferFormat doFormat() const override; MAGNUM_ANYAUDIOIMPORTER_LOCAL UnsignedInt doFrequency() const override; MAGNUM_ANYAUDIOIMPORTER_LOCAL Containers::Array doData() override; diff --git a/src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp b/src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp index fcfe99f15..bcf50b5f1 100644 --- a/src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp +++ b/src/MagnumPlugins/AnyAudioImporter/Test/Test.cpp @@ -68,7 +68,7 @@ void AnyImporterTest::wav() { CORRADE_VERIFY(importer->openFile(WAV_FILE)); /* Check only parameters, as it is good enough proof that it is working */ - CORRADE_COMPARE(importer->format(), Buffer::Format::Stereo8); + CORRADE_COMPARE(importer->format(), BufferFormat::Stereo8); CORRADE_COMPARE(importer->frequency(), 96000); } diff --git a/src/MagnumPlugins/WavAudioImporter/Test/WavImporterTest.cpp b/src/MagnumPlugins/WavAudioImporter/Test/WavImporterTest.cpp index 5cb13ac2e..36689fed7 100644 --- a/src/MagnumPlugins/WavAudioImporter/Test/WavImporterTest.cpp +++ b/src/MagnumPlugins/WavAudioImporter/Test/WavImporterTest.cpp @@ -184,7 +184,7 @@ void WavImporterTest::invalidFactChunk() { std::unique_ptr importer = _manager.instantiate("WavAudioImporter"); CORRADE_VERIFY(importer->openFile(Utility::Directory::join(WAVAUDIOIMPORTER_TEST_DIR, "invalidFactChunk.wav"))); - CORRADE_COMPARE(importer->format(), Buffer::Format::Mono16); + CORRADE_COMPARE(importer->format(), BufferFormat::Mono16); CORRADE_COMPARE(importer->frequency(), 22050); CORRADE_COMPARE(importer->data().size(), 3724); @@ -207,7 +207,7 @@ void WavImporterTest::mono8() { std::unique_ptr importer = _manager.instantiate("WavAudioImporter"); CORRADE_VERIFY(importer->openFile(Utility::Directory::join(WAVAUDIOIMPORTER_TEST_DIR, "mono8.wav"))); - CORRADE_COMPARE(importer->format(), Buffer::Format::Mono8); + CORRADE_COMPARE(importer->format(), BufferFormat::Mono8); CORRADE_COMPARE(importer->frequency(), 22050); CORRADE_COMPARE(importer->data().size(), 2136); @@ -220,7 +220,7 @@ void WavImporterTest::mono8junk() { std::unique_ptr importer = _manager.instantiate("WavAudioImporter"); CORRADE_VERIFY(importer->openFile(Utility::Directory::join(WAVAUDIOIMPORTER_TEST_DIR, "mono8junk.wav"))); - CORRADE_COMPARE(importer->format(), Buffer::Format::Mono8); + CORRADE_COMPARE(importer->format(), BufferFormat::Mono8); CORRADE_COMPARE(importer->frequency(), 22050); CORRADE_COMPARE_AS(importer->data().prefix(4), @@ -232,7 +232,7 @@ void WavImporterTest::mono8ALaw() { std::unique_ptr importer = _manager.instantiate("WavAudioImporter"); CORRADE_VERIFY(importer->openFile(Utility::Directory::join(WAVAUDIOIMPORTER_TEST_DIR, "mono8ALaw.wav"))); - CORRADE_COMPARE(importer->format(), Buffer::Format::MonoALaw); + CORRADE_COMPARE(importer->format(), BufferFormat::MonoALaw); CORRADE_COMPARE(importer->frequency(), 8000); CORRADE_COMPARE(importer->data().size(), 4096); @@ -246,7 +246,7 @@ void WavImporterTest::mono8MuLaw() { std::unique_ptr importer = _manager.instantiate("WavAudioImporter"); CORRADE_VERIFY(importer->openFile(Utility::Directory::join(WAVAUDIOIMPORTER_TEST_DIR, "mono8MuLaw.wav"))); - CORRADE_COMPARE(importer->format(), Buffer::Format::MonoMuLaw); + CORRADE_COMPARE(importer->format(), BufferFormat::MonoMuLaw); CORRADE_COMPARE(importer->frequency(), 8000); CORRADE_COMPARE(importer->data().size(), 4096); @@ -260,7 +260,7 @@ void WavImporterTest::mono16() { std::unique_ptr importer = _manager.instantiate("WavAudioImporter"); CORRADE_VERIFY(importer->openFile(Utility::Directory::join(WAVAUDIOIMPORTER_TEST_DIR, "mono16.wav"))); - CORRADE_COMPARE(importer->format(), Buffer::Format::Mono16); + CORRADE_COMPARE(importer->format(), BufferFormat::Mono16); CORRADE_COMPARE(importer->frequency(), 44000); CORRADE_COMPARE_AS(importer->data(), @@ -282,7 +282,7 @@ void WavImporterTest::stereo8() { std::unique_ptr importer = _manager.instantiate("WavAudioImporter"); CORRADE_VERIFY(importer->openFile(Utility::Directory::join(WAVAUDIOIMPORTER_TEST_DIR, "stereo8.wav"))); - CORRADE_COMPARE(importer->format(), Buffer::Format::Stereo8); + CORRADE_COMPARE(importer->format(), BufferFormat::Stereo8); CORRADE_COMPARE(importer->frequency(), 96000); CORRADE_COMPARE_AS(importer->data(), @@ -295,7 +295,7 @@ void WavImporterTest::stereo8ALaw() { std::unique_ptr importer = _manager.instantiate("WavAudioImporter"); CORRADE_VERIFY(importer->openFile(Utility::Directory::join(WAVAUDIOIMPORTER_TEST_DIR, "stereo8ALaw.wav"))); - CORRADE_COMPARE(importer->format(), Buffer::Format::StereoALaw); + CORRADE_COMPARE(importer->format(), BufferFormat::StereoALaw); CORRADE_COMPARE(importer->frequency(), 8000); CORRADE_COMPARE(importer->data().size(), 4096); @@ -309,7 +309,7 @@ void WavImporterTest::stereo8MuLaw() { std::unique_ptr importer = _manager.instantiate("WavAudioImporter"); CORRADE_VERIFY(importer->openFile(Utility::Directory::join(WAVAUDIOIMPORTER_TEST_DIR, "stereo8MuLaw.wav"))); - CORRADE_COMPARE(importer->format(), Buffer::Format::StereoMuLaw); + CORRADE_COMPARE(importer->format(), BufferFormat::StereoMuLaw); CORRADE_COMPARE(importer->frequency(), 8000); CORRADE_COMPARE(importer->data().size(), 4096); @@ -332,7 +332,7 @@ void WavImporterTest::stereo16() { std::unique_ptr importer = _manager.instantiate("WavAudioImporter"); CORRADE_VERIFY(importer->openFile(Utility::Directory::join(WAVAUDIOIMPORTER_TEST_DIR, "stereo16.wav"))); - CORRADE_COMPARE(importer->format(), Buffer::Format::Stereo16); + CORRADE_COMPARE(importer->format(), BufferFormat::Stereo16); CORRADE_COMPARE(importer->frequency(), 44100); CORRADE_COMPARE_AS(importer->data(), @@ -362,7 +362,7 @@ void WavImporterTest::mono32f() { std::unique_ptr importer = _manager.instantiate("WavAudioImporter"); CORRADE_VERIFY(importer->openFile(Utility::Directory::join(WAVAUDIOIMPORTER_TEST_DIR, "mono32f.wav"))); - CORRADE_COMPARE(importer->format(), Buffer::Format::MonoFloat); + CORRADE_COMPARE(importer->format(), BufferFormat::MonoFloat); CORRADE_COMPARE(importer->frequency(), 48000); CORRADE_COMPARE(importer->data().size(), 3920); @@ -376,7 +376,7 @@ void WavImporterTest::stereo32f() { std::unique_ptr importer = _manager.instantiate("WavAudioImporter"); CORRADE_VERIFY(importer->openFile(Utility::Directory::join(WAVAUDIOIMPORTER_TEST_DIR, "stereo32f.wav"))); - CORRADE_COMPARE(importer->format(), Buffer::Format::StereoFloat); + CORRADE_COMPARE(importer->format(), BufferFormat::StereoFloat); CORRADE_COMPARE(importer->frequency(), 44100); CORRADE_COMPARE(importer->data().size(), 1352); @@ -390,7 +390,7 @@ void WavImporterTest::stereo64f() { std::unique_ptr importer = _manager.instantiate("WavAudioImporter"); CORRADE_VERIFY(importer->openFile(Utility::Directory::join(WAVAUDIOIMPORTER_TEST_DIR, "stereo64f.wav"))); - CORRADE_COMPARE(importer->format(), Buffer::Format::StereoDouble); + CORRADE_COMPARE(importer->format(), BufferFormat::StereoDouble); CORRADE_COMPARE(importer->frequency(), 8000); CORRADE_COMPARE(importer->data().size(), 375888); diff --git a/src/MagnumPlugins/WavAudioImporter/WavImporter.cpp b/src/MagnumPlugins/WavAudioImporter/WavImporter.cpp index 8ec40a6b4..dce336d26 100644 --- a/src/MagnumPlugins/WavAudioImporter/WavImporter.cpp +++ b/src/MagnumPlugins/WavAudioImporter/WavImporter.cpp @@ -128,13 +128,13 @@ void WavImporter::doOpenData(Containers::ArrayView data) { if(formatChunk->audioFormat == WavAudioFormat::Pcm) { /* Decide about format */ if(formatChunk->numChannels == 1 && formatChunk->bitsPerSample == 8) - _format = Buffer::Format::Mono8; + _format = BufferFormat::Mono8; else if(formatChunk->numChannels == 1 && formatChunk->bitsPerSample == 16) - _format = Buffer::Format::Mono16; + _format = BufferFormat::Mono16; else if(formatChunk->numChannels == 2 && formatChunk->bitsPerSample == 8) - _format = Buffer::Format::Stereo8; + _format = BufferFormat::Stereo8; else if(formatChunk->numChannels == 2 && formatChunk->bitsPerSample == 16) - _format = Buffer::Format::Stereo16; + _format = BufferFormat::Stereo16; else { Error() << "Audio::WavImporter::openData(): PCM with unsupported channel count" << formatChunk->numChannels << "with" << formatChunk->bitsPerSample @@ -145,13 +145,13 @@ void WavImporter::doOpenData(Containers::ArrayView data) { /* Check IEEE Float format */ } else if(formatChunk->audioFormat == WavAudioFormat::IeeeFloat) { if(formatChunk->numChannels == 1 && formatChunk->bitsPerSample == 32) - _format = Buffer::Format::MonoFloat; + _format = BufferFormat::MonoFloat; else if(formatChunk->numChannels == 2 && formatChunk->bitsPerSample == 32) - _format = Buffer::Format::StereoFloat; + _format = BufferFormat::StereoFloat; else if(formatChunk->numChannels == 1 && formatChunk->bitsPerSample == 64) - _format = Buffer::Format::MonoDouble; + _format = BufferFormat::MonoDouble; else if(formatChunk->numChannels == 2 && formatChunk->bitsPerSample == 64) - _format = Buffer::Format::StereoDouble; + _format = BufferFormat::StereoDouble; else { Error() << "Audio::WavImporter::openData(): IEEE with unsupported channel count" << formatChunk->numChannels << "with" << formatChunk->bitsPerSample @@ -162,9 +162,9 @@ void WavImporter::doOpenData(Containers::ArrayView data) { /* Check A-Law format */ } else if(formatChunk->audioFormat == WavAudioFormat::ALaw) { if(formatChunk->numChannels == 1) - _format = Buffer::Format::MonoALaw; + _format = BufferFormat::MonoALaw; else if(formatChunk->numChannels == 2) - _format = Buffer::Format::StereoALaw; + _format = BufferFormat::StereoALaw; else { Error() << "Audio::WavImporter::openData(): ALaw with unsupported channel count" << formatChunk->numChannels << "with" << formatChunk->bitsPerSample @@ -175,9 +175,9 @@ void WavImporter::doOpenData(Containers::ArrayView data) { /* Check μ-Law format */ } else if(formatChunk->audioFormat == WavAudioFormat::MuLaw) { if(formatChunk->numChannels == 1) - _format = Buffer::Format::MonoMuLaw; + _format = BufferFormat::MonoMuLaw; else if(formatChunk->numChannels == 2) - _format = Buffer::Format::StereoMuLaw; + _format = BufferFormat::StereoMuLaw; else { Error() << "Audio::WavImporter::openData(): MuLaw with unsupported channel count" << formatChunk->numChannels << "with" << formatChunk->bitsPerSample @@ -219,7 +219,7 @@ void WavImporter::doOpenData(Containers::ArrayView data) { void WavImporter::doClose() { _data = nullptr; } -Buffer::Format WavImporter::doFormat() const { return _format; } +BufferFormat WavImporter::doFormat() const { return _format; } UnsignedInt WavImporter::doFrequency() const { return _frequency; } diff --git a/src/MagnumPlugins/WavAudioImporter/WavImporter.h b/src/MagnumPlugins/WavAudioImporter/WavImporter.h index 6a9223fa4..661bb0c03 100644 --- a/src/MagnumPlugins/WavAudioImporter/WavImporter.h +++ b/src/MagnumPlugins/WavAudioImporter/WavImporter.h @@ -59,12 +59,16 @@ namespace Magnum { namespace Audio { Supports mono and stereo files of the following formats: -- 8 bit per channel PCM, imported as @ref Buffer::Format::Mono8 and @ref Buffer::Format::Stereo8 -- 16 bit per channel PCM, imported as @ref Buffer::Format::Mono16 and @ref Buffer::Format::Stereo16 -- 32-bit IEEE Float, imported as @ref Buffer::Format::MonoFloat / @ref Buffer::Format::StereoFloat -- 64-bit IEEE Float, imported as @ref Buffer::Format::MonoDouble / @ref Buffer::Format::StereoDouble -- A-Law, imported as @ref Buffer::Format::MonoALaw / @ref Buffer::Format::StereoALaw -- μ-Law, imported as @ref Buffer::Format::MonoMuLaw / @ref Buffer::Format::StereoMuLaw +- 8 bit per channel PCM, imported as @ref BufferFormat::Mono8 and + @ref BufferFormat::Stereo8 +- 16 bit per channel PCM, imported as @ref BufferFormat::Mono16 and + @ref BufferFormat::Stereo16 +- 32-bit IEEE Float, imported as @ref BufferFormat::MonoFloat / + @ref BufferFormat::StereoFloat +- 64-bit IEEE Float, imported as @ref BufferFormat::MonoDouble / + @ref BufferFormat::StereoDouble +- A-Law, imported as @ref BufferFormat::MonoALaw / @ref BufferFormat::StereoALaw +- μ-Law, imported as @ref BufferFormat::MonoMuLaw / @ref BufferFormat::StereoMuLaw This plugin is built if `WITH_WAVAUDIOIMPORTER` is enabled when building Magnum. To use dynamic plugin, you need to load the @cpp "WavAudioImporter" @ce @@ -92,12 +96,12 @@ class MAGNUM_WAVAUDIOIMPORTER_EXPORT WavImporter: public AbstractImporter { MAGNUM_WAVAUDIOIMPORTER_LOCAL void doOpenData(Containers::ArrayView data) override; MAGNUM_WAVAUDIOIMPORTER_LOCAL void doClose() override; - MAGNUM_WAVAUDIOIMPORTER_LOCAL Buffer::Format doFormat() const override; + MAGNUM_WAVAUDIOIMPORTER_LOCAL BufferFormat doFormat() const override; MAGNUM_WAVAUDIOIMPORTER_LOCAL UnsignedInt doFrequency() const override; MAGNUM_WAVAUDIOIMPORTER_LOCAL Containers::Array doData() override; Containers::Array _data; - Buffer::Format _format; + BufferFormat _format; UnsignedInt _frequency; };