tomwalters@23
|
1 // Copyright 2008-2010, Thomas Walters
|
tomwalters@23
|
2 //
|
tomwalters@23
|
3 // AIM-C: A C++ implementation of the Auditory Image Model
|
tomwalters@23
|
4 // http://www.acousticscale.org/AIMC
|
tomwalters@23
|
5 //
|
tomwalters@23
|
6 // This program is free software: you can redistribute it and/or modify
|
tomwalters@23
|
7 // it under the terms of the GNU General Public License as published by
|
tomwalters@23
|
8 // the Free Software Foundation, either version 3 of the License, or
|
tomwalters@23
|
9 // (at your option) any later version.
|
tomwalters@23
|
10 //
|
tomwalters@23
|
11 // This program is distributed in the hope that it will be useful,
|
tomwalters@23
|
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
|
tomwalters@23
|
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
tomwalters@23
|
14 // GNU General Public License for more details.
|
tomwalters@23
|
15 //
|
tomwalters@23
|
16 // You should have received a copy of the GNU General Public License
|
tomwalters@23
|
17 // along with this program. If not, see <http://www.gnu.org/licenses/>.
|
tomwalters@23
|
18
|
tomwalters@23
|
19 #include "Modules/Input/ModuleFileInput.h"
|
tomwalters@23
|
20 #include "Modules/BMM/ModuleGammatone.h"
|
tomwalters@23
|
21 #include "Modules/BMM/ModulePZFC.h"
|
tomwalters@23
|
22 #include "Modules/NAP/ModuleHCL.h"
|
tomwalters@23
|
23 #include "Modules/Strobes/ModuleParabola.h"
|
tomwalters@23
|
24 #include "Modules/SAI/ModuleSAI.h"
|
tomwalters@23
|
25 #include "Modules/SSI/ModuleSSI.h"
|
tomwalters@23
|
26 #include "Modules/Profile/ModuleSlice.h"
|
tomwalters@23
|
27 #include "Modules/Profile/ModuleScaler.h"
|
tomwalters@23
|
28 #include "Modules/Features/ModuleGaussians.h"
|
tomwalters@23
|
29 #include "Modules/Output/FileOutputHTK.h"
|
tomwalters@23
|
30
|
tomwalters@23
|
31 #include "Support/ModuleFactory.h"
|
tomwalters@23
|
32
|
tomwalters@23
|
33 namespace aimc {
|
tomwalters@23
|
34 Module* ModuleFactory::Create(string module_name_, Parameters* params) {
|
tomwalters@23
|
35 if (module_name_.compare("gt") == 0)
|
tomwalters@23
|
36 return new ModuleGammatone(params);
|
tomwalters@23
|
37
|
tomwalters@23
|
38 if (module_name_.compare("pzfc") == 0)
|
tomwalters@23
|
39 return new ModulePZFC(params);
|
tomwalters@23
|
40
|
tomwalters@23
|
41 if (module_name_.compare("gaussians") == 0)
|
tomwalters@23
|
42 return new ModuleGaussians(params);
|
tomwalters@23
|
43
|
tomwalters@23
|
44 if (module_name_.compare("file_input") == 0)
|
tomwalters@23
|
45 return new ModuleFileInput(params);
|
tomwalters@23
|
46
|
tomwalters@23
|
47 if (module_name_.compare("hcl") == 0)
|
tomwalters@23
|
48 return new ModuleHCL(params);
|
tomwalters@23
|
49
|
tomwalters@23
|
50 if (module_name_.compare("htk_out") == 0)
|
tomwalters@23
|
51 return new FileOutputHTK(params);
|
tomwalters@23
|
52
|
tomwalters@23
|
53 if (module_name_.compare("scaler") == 0)
|
tomwalters@23
|
54 return new ModuleScaler(params);
|
tomwalters@23
|
55
|
tomwalters@23
|
56 if (module_name_.compare("slice") == 0)
|
tomwalters@23
|
57 return new ModuleSlice(params);
|
tomwalters@23
|
58
|
tomwalters@23
|
59 if (module_name_.compare("weighted_sai") == 0)
|
tomwalters@23
|
60 return new ModuleSAI(params);
|
tomwalters@23
|
61
|
tomwalters@23
|
62 if (module_name_.compare("ssi") == 0)
|
tomwalters@23
|
63 return new ModuleSSI(params);
|
tomwalters@23
|
64
|
tomwalters@23
|
65 if (module_name_.compare("parabola") == 0)
|
tomwalters@23
|
66 return new ModuleParabola(params);
|
tomwalters@23
|
67
|
tomwalters@23
|
68 return NULL;
|
tomwalters@23
|
69 }
|
tomwalters@23
|
70 } // namespace aimc
|