分支自 DSP/ADSP21569/DSP-21569

wanglei
2024-03-27 ec21e6d7b11751cba2501c690d0e16fcb0581d3c
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#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("AnaInput", ModuleType::AnaInput, InputCreate,  ufalse));
        modules.push_back(ModuleEntry("DanteInput", ModuleType::DanteInput, InputCreate, ufalse));
        modules.push_back(ModuleEntry("ARMInput", ModuleType::ARMInput, InputCreate,ufalse));
        modules.push_back(ModuleEntry("USBInput", ModuleType::USBInput, InputCreate, ufalse));
        modules.push_back(ModuleEntry("AECInput", ModuleType::AECInput, InputCreate, ufalse));
        modules.push_back(ModuleEntry("DummyInput", ModuleType::DummyInput, DummyCreate, ufalse));
 
        modules.push_back(ModuleEntry("AnaOutput", ModuleType::AnaOutput, OutputCreate, ufalse));
        modules.push_back(ModuleEntry("DanteOutput", ModuleType::DanteOutput, OutputCreate, ufalse));
        modules.push_back(ModuleEntry("ARMOutput", ModuleType::ARMOutput, OutputCreate, ufalse));
        modules.push_back(ModuleEntry("USBOutput", ModuleType::USBOutput, OutputCreate, ufalse));
        modules.push_back(ModuleEntry("AECOutput", ModuleType::AECOutput, OutputCreate, ufalse));
        modules.push_back(ModuleEntry("DummyOutput", ModuleType::DummyOutput, DummyCreate, ufalse));
 
        modules.push_back(ModuleEntry("Meter", ModuleType::Meter, MeterCreate, ufalse));
        modules.push_back(ModuleEntry("Expander", ModuleType::Expander, ExpanderCreate, utrue));
        modules.push_back(ModuleEntry("Compress", ModuleType::Compress, CompressorCreate, utrue));
        modules.push_back(ModuleEntry("Limiter", ModuleType::Limiter, LimiterCreate, utrue));
        modules.push_back(ModuleEntry("Mixer", ModuleType::Mixer, MixerCreate, ufalse));
        modules.push_back(ModuleEntry("Delay", ModuleType::Delay, DelayCreate, utrue));
        modules.push_back(ModuleEntry("Gain", ModuleType::Gain, GainCreate, ufalse));
        modules.push_back(ModuleEntry("GainSharingAM", ModuleType::GainSharingAM, GSAMCreate, ufalse));
        modules.push_back(ModuleEntry("GatingAM", ModuleType::GatingAM, GatingAMCreate, ufalse));
        modules.push_back(ModuleEntry("ContinuitySPL", ModuleType::ContinuitySPL, ContinuousSPLCreate, utrue));
        //modules.push_back(ModuleEntry(ModuleType::GapSPL, InputCreate, ufalse));
        modules.push_back(ModuleEntry("Ducker", ModuleType::Ducker, DuckerCreate, utrue));
        modules.push_back(ModuleEntry("AGC", ModuleType::AGC, AGCCreate, utrue));
        modules.push_back(ModuleEntry("Route", ModuleType::Route, RouteCreate, ufalse));
        modules.push_back(ModuleEntry("SignalGenerator", ModuleType::SignalGenerator, SignalGeneraterCreate, utrue));
        modules.push_back(ModuleEntry("NoiseGate", ModuleType::NoiseGate, NoiseGateCreate,utrue));
 
        modules.push_back(ModuleEntry("EQ", ModuleType::EQ, EQsCreate, utrue));
        modules.push_back(ModuleEntry("GEQ", ModuleType::GEQ, GEQCreate, utrue));
        modules.push_back(ModuleEntry("CrossOver", ModuleType::CrossOver, CrossOverCreate, ufalse));
        modules.push_back(ModuleEntry("NHS", ModuleType::NHS, NHSCreate, utrue));
        modules.push_back(ModuleEntry("AEC", ModuleType::AEC, SQECreate, ufalse));
        //modules.push_back(ModuleEntry(ModuleType::ANS, ANSCreate, utrue));
//        modules.push_back(ModuleEntry("FIR", ModuleType::FIR, FIRCreate, ufalse));
//        modules.push_back(ModuleEntry("AFC", ModuleType::AFC, AFCCreate, utrue));
        modules.push_back(ModuleEntry("HighPass", ModuleType::HighPass, HighPassCreate, utrue));
        modules.push_back(ModuleEntry("LowPass", ModuleType::LowPass, LowPassCreate, utrue));
        modules.push_back(ModuleEntry("HighShelf", ModuleType::HighShelf, HighShelfCreate, utrue));
        modules.push_back(ModuleEntry("LowShelf", ModuleType::LowShelf, LowShelfCreate, utrue));
        modules.push_back(ModuleEntry("AllPass", ModuleType::AllPass, AllPassCreate, utrue));
 
//        modules.push_back(ModuleEntry("Reverb", ModuleType::Reverb, ReverbCreate, utrue));
//        modules.push_back(ModuleEntry("Echo", ModuleType::Echo, EchoCreate, utrue));
//        modules.push_back(ModuleEntry("Pitch", ModuleType::Pitch, PitchCreate, utrue));
 
        modules.push_back(ModuleEntry("UnLooping", ModuleType::UnLooping, 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;
}