chenlh
2025-08-29 faba6b022b86f066d95b1cfdf752573724d5fbcd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <fstream>
#include "ModuleExport.h"
 
ModuleEntry::ModuleEntry(const s8* name, u32 type ,Create create, ubool linkEnable)
{
    module_type = type ;
    module_create = create;
    link_enable = linkEnable;
    //strcpy(this->name , name );
}
 
Create ModuleEntry::GetEntry()
{
    return module_create;
}
 
ExportModules::ExportModules()
{
    ModuleProcessLibInit();
 
    if (modules.empty()) {
        modules.push_back(ModuleEntry("SignalSource", ModuleType::PROC_INPUT, SignalSourceCreate, ufalse));
//        modules.push_back(ModuleEntry("Input",ModuleType::PROC_INPUT, InputCreate, ufalse));
        modules.push_back(ModuleEntry("Output",ModuleType::PROC_OUTPUT, OutputCreate, ufalse));
 
        modules.push_back(ModuleEntry("Meter",ModuleType::PROC_METER, MeterCreate, ufalse));
        modules.push_back(ModuleEntry("Expander",ModuleType::PROC_EXPANDER, ExpanderCreate, utrue));
        modules.push_back(ModuleEntry("Compress",ModuleType::PROC_COMPRESS, CompressorCreate, utrue));
        modules.push_back(ModuleEntry("Limiter",ModuleType::PROC_LIMIT, LimiterCreate, utrue));
        modules.push_back(ModuleEntry("Mixer",ModuleType::PROC_MIXER, MixerCreate, ufalse));
        modules.push_back(ModuleEntry("Delay",ModuleType::PROC_DELAY, DelayCreate, utrue));
        modules.push_back(ModuleEntry("Gain",ModuleType::PROC_GAIN, GainCreate, ufalse));
        modules.push_back(ModuleEntry("GainSharingmixer",ModuleType::PROC_AUTOMIXER, GSAMCreate, ufalse));
        modules.push_back(ModuleEntry("GatingMixer",ModuleType::PROC_GATING_AUTOMIXER, GatingAMCreate, ufalse));
        modules.push_back(ModuleEntry("SPL",ModuleType::PROC_CONTINUNOUS_SPL, ContinuousSPLCreate, utrue));
        //modules.push_back(ModuleEntry(ModuleType::GapSPL, InputCreate, 0.00));
        modules.push_back(ModuleEntry("Ducker",ModuleType::PROC_DUCKER, DuckerCreate, utrue));
        modules.push_back(ModuleEntry("AGC",ModuleType::PROC_AGC, AGCCreate, utrue));
        modules.push_back(ModuleEntry("SELECTOR",ModuleType::PROC_SELECTOR, MixerCreate, ufalse));
        modules.push_back(ModuleEntry("SignalGenerator",ModuleType::PROC_SIGNALGEN, SignalGeneraterCreate, ufalse));
        modules.push_back(ModuleEntry("GATING",ModuleType::PROC_GATING, NoiseGateCreate,utrue));
        modules.push_back(ModuleEntry("ROUTE",ModuleType::PROC_ROUTE, RouteCreate,ufalse));
        modules.push_back(ModuleEntry("EQ",ModuleType::PROC_EQ, EQsCreate, utrue));
        modules.push_back(ModuleEntry("GEQ",ModuleType::PROC_GEQ, GEQCreate, utrue));
        modules.push_back(ModuleEntry("Crossover",ModuleType::PROC_CROSSOVER, CrossOverCreate, ufalse));
        modules.push_back(ModuleEntry("nhs",ModuleType::PROC_FEEDBACK, NHSCreate, utrue));
        modules.push_back(ModuleEntry("aec",ModuleType::PROC_AEC, SQECreate, utrue));
        modules.push_back(ModuleEntry("ans",ModuleType::PROC_ANS, ANSCreate, utrue));
        modules.push_back(ModuleEntry("Sysctrl",ModuleType::PROC_SYSCTL, SysctlCreate, ufalse));
        modules.push_back(ModuleEntry("FIR",ModuleType::PROC_FIR, FIRCreate,utrue));
        //modules.push_back(ModuleEntry("AFC",ModuleType::PROC_AFC, AFCCreate, utrue));
        modules.push_back(ModuleEntry("Pitch",ModuleType::PROC_PITCH, PitchCreate, ufalse));
        modules.push_back(ModuleEntry("Reverb",ModuleType::PROC_REVERB, ReverbCreate, utrue));
        modules.push_back(ModuleEntry("Echo",ModuleType::PROC_ECHO, EchoCreate, utrue));
        modules.push_back(ModuleEntry("DummyInput",ModuleType::DUMMY_INPUT, DummyCreate, ufalse));
        modules.push_back(ModuleEntry("DummyOutput",ModuleType::DUMMY_OUTPUT, DummyCreate, ufalse));
    }
}
 
ModuleEntry* ExportModules::GetModuleEntry(u32 moduleType)
{
    for (std::vector<ModuleEntry>::iterator iter = modules.begin()
        ; iter != modules.end()
        ; iter++) {
 
        if (moduleType == iter->module_type) {
            ModuleEntry& m = *iter;
            return &m;
        }
    }
    return NULL;
}