Magnum::Audio::AbstractImporter class

Base for audio importer plugins.

Provides interface for importing various audio formats. See Loading and using plugins for more information and *Importer classes in Audio namespace for available importer plugins.


Plugin implements function doFeatures(), doIsOpened(), one of or both doOpenData() and doOpenFile() functions, function doClose() and data access functions doFormat(), doFrequency() and doData().

You don't need to do most of the redundant sanity checks, these things are checked by the implementation:

  • Functions doOpenData() and doOpenFile() are called after the previous file was closed, function doClose() is called only if there is any file opened.
  • Function doOpenData() is called only if Feature::OpenData is supported.
  • All do*() implementations working on opened file are called only if there is any file opened.

Derived classes

class AnyImporter
Any audio importer plugin.
class DrFlacImporter
FLAC audio importer plugin using dr_flac.
class DrWavImporter
WAV audio importer plugin using dr_wav.
class Faad2Importer
AAC audio importer plugin using FAAD2.
class FfmpegImporter
Audio importer using FFmpeg.
class StbVorbisImporter
OGG audio importer plugin using stb_vorbis.
class WavImporter
WAV importer plugin.

Public types

enum class Feature: UnsignedByte { OpenData = 1 << 0 }
Features supported by this importer.
using Features = Containers::EnumSet<Feature>
Features supported by this importer.

Public static functions

static auto pluginInterface() -> std::string
Plugin interface.
static auto pluginSearchPaths() -> std::vector<std::string>
Plugin search paths.

Constructors, destructors, conversion operators

AbstractImporter() explicit
Default constructor.
AbstractImporter(PluginManager::Manager<AbstractImporter>& manager) explicit
Constructor with access to plugin manager.
AbstractImporter(PluginManager::AbstractManager& manager, const std::string& plugin) explicit
Plugin manager constructor.

Public functions

auto features() const -> Features
Features supported by this importer.
auto isOpened() const -> bool
Whether any file is opened.
auto openData(Containers::ArrayView<const char> data) -> bool
Open raw data.
auto openFile(const std::string& filename) -> bool
Open file.
void close()
Close file.

Protected functions

auto doFeatures() const -> Features pure virtual
Implementation for features()
auto doIsOpened() const -> bool pure virtual
Implementation for isOpened()
void doOpenData(Containers::ArrayView<const char> data) virtual
Implementation for openData()
void doOpenFile(const std::string& filename) virtual
Implementation for openFile()
void doClose() pure virtual
Implementation for close()
auto doFormat() const -> BufferFormat pure virtual
Implementation for format()
auto doFrequency() const -> UnsignedInt pure virtual
Implementation for frequency()
auto doData() -> Containers::Array<char> pure virtual
Implementation for data()

Data access

auto format() const -> BufferFormat
Sample format.
auto frequency() const -> UnsignedInt
Sample frequency.
auto data() -> Containers::Array<char>
Sample data.

Enum documentation

enum class Magnum::Audio::AbstractImporter::Feature: UnsignedByte

Features supported by this importer.


Opening files from raw data using openData()

Typedef documentation

typedef Containers::EnumSet<Feature> Magnum::Audio::AbstractImporter::Features

Features supported by this importer.

Function documentation

static std::string Magnum::Audio::AbstractImporter::pluginInterface()

Plugin interface.


static std::vector<std::string> Magnum::Audio::AbstractImporter::pluginSearchPaths()

Plugin search paths.

First looks in magnum/audioimporters/ or magnum-d/audioimporters/ next to the executable and as a fallback in magnum/audioimporters/ or magnum-d/audioimporters/ in the runtime install location (lib[64]/ on Unix-like systems, bin/ on Windows). The system-wide plugin search directory is configurable using the MAGNUM_PLUGINS_DIR CMake variables, see Downloading and building for more information.

Not defined on platforms without dynamic plugin support.

bool Magnum::Audio::AbstractImporter::openData(Containers::ArrayView<const char> data)

Open raw data.

Closes previous file, if it was opened, and tries to open given file. Available only if Feature::OpenData is supported. Returns true on success, false otherwise.

bool Magnum::Audio::AbstractImporter::openFile(const std::string& filename)

Open file.

Closes previous file, if it was opened, and tries to open given file. Returns true on success, false otherwise.

void Magnum::Audio::AbstractImporter::doOpenFile(const std::string& filename) virtual protected

Implementation for openFile()

If Feature::OpenData is supported, default implementation opens the file and calls doOpenData() with its contents.