2 |
* * |
* * |
3 |
* LinuxSampler - modular, streaming capable sampler * |
* LinuxSampler - modular, streaming capable sampler * |
4 |
* * |
* * |
5 |
* Copyright (C) 2003, 2004 by Benno Senoner and Christian Schoenebeck * |
* Copyright (C) 2003,2004 by Benno Senoner and Christian Schoenebeck * |
6 |
* Copyright (C) 2005, 2006 Christian Schoenebeck * |
* Copyright (C) 2005-2007 Christian Schoenebeck * |
7 |
* * |
* * |
8 |
* This program is free software; you can redistribute it and/or modify * |
* This program is free software; you can redistribute it and/or modify * |
9 |
* it under the terms of the GNU General Public License as published by * |
* it under the terms of the GNU General Public License as published by * |
25 |
#define __LS_ENGINE_H__ |
#define __LS_ENGINE_H__ |
26 |
|
|
27 |
#include "../common/global.h" |
#include "../common/global.h" |
28 |
|
#include "InstrumentManager.h" |
29 |
|
|
30 |
namespace LinuxSampler { |
namespace LinuxSampler { |
31 |
|
|
58 |
virtual String Version() = 0; |
virtual String Version() = 0; |
59 |
virtual String EngineName() = 0; |
virtual String EngineName() = 0; |
60 |
|
|
61 |
|
/** |
62 |
|
* Returns pointer to the Engine's InstrumentManager or NULL if |
63 |
|
* the Engine does not provide an InstrumentManager. |
64 |
|
* |
65 |
|
* <b>Important:</b> All engine instances of the same engine |
66 |
|
* type have to return the same InstrumentManager, that is all |
67 |
|
* instances of the same engine type have to share one and |
68 |
|
* the same InstrumentManager object. |
69 |
|
*/ |
70 |
|
virtual InstrumentManager* GetInstrumentManager() = 0; |
71 |
|
|
72 |
protected: |
protected: |
73 |
virtual ~Engine() {}; // MUST only be destroyed by EngineFactory |
virtual ~Engine() {}; // MUST only be destroyed by EngineFactory |
74 |
|
void Unregister(); // Remove self from EngineFactory. |
75 |
friend class EngineFactory; |
friend class EngineFactory; |
76 |
}; |
}; |
77 |
|
|