|
- /*
- ZynAddSubFX - a software synthesizer
-
- EngineMgr.h - MIDI/Audio Factory
- Copyright (C) 2016 Mark McCurry
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2
- of the License, or (at your option) any later version.
- */
- #ifndef ENGINE_MGR_H
- #define ENGINE_MGR_H
-
- #include <list>
- #include <string>
- #include "Engine.h"
-
- namespace zyncarla {
-
- class MidiIn;
- class AudioOut;
- class OutMgr;
- struct SYNTH_T;
- /**Container/Owner of the long lived Engines*/
- class EngineMgr
- {
- public:
- static EngineMgr &getInstance(
- const SYNTH_T *synth = nullptr,
- const class oss_devs_t* oss_devs = nullptr);
- ~EngineMgr();
-
- /**Gets requested engine
- * @param name case unsensitive name of engine
- * @return pointer to Engine or NULL
- */
- Engine *getEng(std::string name);
-
- /**Start up defaults*/
- bool start();
-
- /**Stop all engines*/
- void stop();
-
- std::list<Engine *> engines;
-
- //return false on failure
- bool setInDefault(std::string name);
- bool setOutDefault(std::string name);
-
- //default I/O
- AudioOut *defaultOut;
- MidiIn *defaultIn;
- private:
- EngineMgr(const SYNTH_T *synth, const oss_devs_t &oss_devs);
- };
-
- }
-
- #endif
|