1 |
/*************************************************************************** |
/*************************************************************************** |
2 |
* * |
* * |
3 |
* Copyright (C) 2005 Christian Schoenebeck * |
* Copyright (C) 2005, 2006 Christian Schoenebeck * |
4 |
* * |
* * |
5 |
* This program is free software; you can redistribute it and/or modify * |
* This program is free software; you can redistribute it and/or modify * |
6 |
* 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 * |
24 |
|
|
25 |
#include "gig/Engine.h" |
#include "gig/Engine.h" |
26 |
|
|
27 |
|
#include "../common/global.h" |
28 |
|
|
29 |
namespace LinuxSampler { |
namespace LinuxSampler { |
30 |
|
|
31 |
LinuxSampler::Engine* EngineFactory::Create(String EngineType) throw (LinuxSamplerException) { |
// all currently existing engine instances |
32 |
|
static std::set<LinuxSampler::Engine*> engines; |
33 |
|
|
34 |
|
LinuxSampler::Engine* EngineFactory::Create(String EngineType) throw (Exception) { |
35 |
if (!strcasecmp(EngineType.c_str(),"GigEngine") || !strcasecmp(EngineType.c_str(),"gig")) { |
if (!strcasecmp(EngineType.c_str(),"GigEngine") || !strcasecmp(EngineType.c_str(),"gig")) { |
36 |
return new gig::Engine; |
Engine* pEngine = new gig::Engine; |
37 |
|
engines.insert(pEngine); |
38 |
|
return pEngine; |
39 |
} |
} |
40 |
throw LinuxSamplerException("Unknown engine type"); |
throw Exception("Unknown engine type"); |
41 |
|
} |
42 |
|
|
43 |
|
void EngineFactory::Destroy(LinuxSampler::Engine* pEngine) { |
44 |
|
engines.erase(pEngine); |
45 |
|
} |
46 |
|
|
47 |
|
const std::set<LinuxSampler::Engine*>& EngineFactory::EngineInstances() { |
48 |
|
return engines; |
49 |
} |
} |
50 |
|
|
51 |
} // namepsace LinuxSampler |
} // namespace LinuxSampler |