1//************************************ bs::framework - Copyright 2018 Marko Pintera **************************************//
2//*********** Licensed under the MIT license. See LICENSE.md for full terms. This notice is not to be removed. ***********//
3#include "BsOAPrerequisites.h"
4#include "Audio/BsAudioManager.h"
5#include "BsOAAudio.h"
6#include "BsOAImporter.h"
7#include "Importer/BsImporter.h"
8
9namespace bs
10{
11 class OAFactory : public AudioFactory
12 {
13 public:
14 void startUp() override
15 {
16 Audio::startUp<OAAudio>();
17 }
18
19 void shutDown() override
20 {
21 Audio::shutDown();
22 }
23 };
24
25 /** Returns a name of the plugin. */
26 extern "C" BS_PLUGIN_EXPORT const char* getPluginName()
27 {
28 static const char* pluginName = "OpenAudio";
29 return pluginName;
30 }
31
32 /** Entry point to the plugin. Called by the engine when the plugin is loaded. */
33 extern "C" BS_PLUGIN_EXPORT void* loadPlugin()
34 {
35 OAImporter* importer = bs_new<OAImporter>();
36 Importer::instance()._registerAssetImporter(importer);
37
38 return bs_new<OAFactory>();
39 }
40
41 /** Exit point of the plugin. Called by the engine before the plugin is unloaded. */
42 extern "C" BS_PLUGIN_EXPORT void unloadPlugin(OAFactory* instance)
43 {
44 bs_delete(instance);
45 }
46}