Browse Source

Audio: provide access to plugin manager in AbstractImporter.

So it is possible to create also AnyAudioImporter.
pull/107/head
Vladimír Vondruš 11 years ago
parent
commit
3b03d15009
  1. 4
      src/Magnum/Audio/AbstractImporter.cpp
  2. 7
      src/Magnum/Audio/AbstractImporter.h

4
src/Magnum/Audio/AbstractImporter.cpp

@ -33,7 +33,9 @@ namespace Magnum { namespace Audio {
AbstractImporter::AbstractImporter() = default;
AbstractImporter::AbstractImporter(PluginManager::AbstractManager& manager, std::string plugin): PluginManager::AbstractPlugin(manager, std::move(plugin)) {}
AbstractImporter::AbstractImporter(PluginManager::Manager<AbstractImporter>& manager): PluginManager::AbstractManagingPlugin<AbstractImporter>{manager} {}
AbstractImporter::AbstractImporter(PluginManager::AbstractManager& manager, std::string plugin): PluginManager::AbstractManagingPlugin<AbstractImporter>{manager, std::move(plugin)} {}
bool AbstractImporter::openData(Containers::ArrayView<const char> data) {
CORRADE_ASSERT(features() & Feature::OpenData,

7
src/Magnum/Audio/AbstractImporter.h

@ -29,7 +29,7 @@
* @brief Class @ref Magnum::Audio::AbstractImporter
*/
#include <Corrade/PluginManager/AbstractPlugin.h>
#include <Corrade/PluginManager/AbstractManagingPlugin.h>
#include "Magnum/Magnum.h"
#include "Magnum/Audio/Buffer.h"
@ -62,7 +62,7 @@ checked by the implementation:
Plugin interface string is `"cz.mosra.magnum.Audio.AbstractImporter/0.1"`.
*/
class MAGNUM_AUDIO_EXPORT AbstractImporter: public PluginManager::AbstractPlugin {
class MAGNUM_AUDIO_EXPORT AbstractImporter: public PluginManager::AbstractManagingPlugin<AbstractImporter> {
CORRADE_PLUGIN_INTERFACE("cz.mosra.magnum.Audio.AbstractImporter/0.1")
public:
@ -86,6 +86,9 @@ class MAGNUM_AUDIO_EXPORT AbstractImporter: public PluginManager::AbstractPlugin
/** @brief Default constructor */
explicit AbstractImporter();
/** @brief Constructor with access to plugin manager */
explicit AbstractImporter(PluginManager::Manager<AbstractImporter>& manager);
/** @brief Plugin manager constructor */
explicit AbstractImporter(PluginManager::AbstractManager& manager, std::string plugin);

Loading…
Cancel
Save