Magnum::Audio::DrFlacImporter class

FLAC audio importer plugin using dr_flac.

Imports mono, stereo and surround sound files using the dr_flac library.

This plugins provides FlacAudioImporter, but note that this plugin doesn't handle CRC checks, corrupt or perverse FLAC streams, or broadcast streams.


This plugin depends on the Audio library and is built if MAGNUM_WITH_DRFLACAUDIOIMPORTER is enabled when building Magnum Plugins. To use as a dynamic plugin, load "DrFlacAudioImporter" via Corrade::PluginManager::Manager.

Additionally, if you're using Magnum as a CMake subproject, bundle the magnum-plugins repository and do the following:

add_subdirectory(magnum-plugins EXCLUDE_FROM_ALL)

# So the dynamically loaded plugin gets built implicitly
add_dependencies(your-app MagnumPlugins::DrFlacAudioImporter)

To use as a static plugin or as a dependency of another plugin with CMake, put FindMagnumPlugins.cmake into your modules/ directory, request the DrFlacAudioImporter component of the MagnumPlugins package and link to the MagnumPlugins::DrFlacAudioImporter target:

find_package(MagnumPlugins REQUIRED DrFlacAudioImporter)

# ...
target_link_libraries(your-app PRIVATE MagnumPlugins::DrFlacAudioImporter)

See Downloading and building plugins, Plugin usage with CMake and Loading and using plugins for more information.

Behavior and limitations

The files are imported in the following formats

Although technically FLAC supports 32 bits per channel as well, not even the reference encoder supports that, which makes it impossible to verify whether dr_flac is capable of importing such files, and thus handling of such files is not implemented.

Base classes

class AbstractImporter
Base for audio importer plugins.

Constructors, destructors, conversion operators

DrFlacImporter() explicit
Default constructor.
DrFlacImporter(PluginManager::AbstractManager& manager, const Containers::StringView& plugin) explicit
Plugin manager constructor.