@@ -34,17 +34,124 @@ namespace jni
3434 explicit JavaAudioProcessingConfigClass (JNIEnv * env);
3535
3636 jclass cls;
37- jfieldID echoCancellerEnabled ;
38- jfieldID residualEchoDetectorEnabled ;
39- jfieldID gainControlEnabled ;
40- jfieldID highPassFilterEnabled ;
41- jfieldID noiseSuppressionEnabled ;
42- jfieldID transientSuppressionEnabled ;
43- jfieldID levelEstimationEnabled ;
44- jfieldID voiceDetectionEnabled ;
37+ jfieldID echoCanceller ;
38+ jfieldID gainControl ;
39+ jfieldID highPassFilter ;
40+ jfieldID levelEstimation ;
41+ jfieldID noiseSuppression ;
42+ jfieldID residualEchoDetector ;
43+ jfieldID transientSuppression ;
44+ jfieldID voiceDetection ;
4545 };
4646
4747 webrtc::AudioProcessing::Config toNative (JNIEnv * env, const JavaRef<jobject> & javaType);
48+ webrtc::AudioProcessing::Config::GainController2 toGainController2 (JNIEnv * env, const JavaLocalRef<jobject> & javaType);
49+
50+
51+ class JavaEchoCancellerClass : public JavaClass
52+ {
53+ public:
54+ explicit JavaEchoCancellerClass (JNIEnv * env);
55+
56+ jclass cls;
57+ jfieldID enabled;
58+ jfieldID enforceHighPassFiltering;
59+ };
60+
61+ class JavaGainControlClass : public JavaClass
62+ {
63+ public:
64+ explicit JavaGainControlClass (JNIEnv * env);
65+
66+ jclass cls;
67+ jfieldID enabled;
68+ jfieldID fixedDigital;
69+ jfieldID adaptiveDigital;
70+ };
71+
72+ class JavaGainControlFixedDigitalClass : public JavaClass
73+ {
74+ public:
75+ explicit JavaGainControlFixedDigitalClass (JNIEnv * env);
76+
77+ jclass cls;
78+ jfieldID gainDb;
79+ };
80+
81+ class JavaGainControlAdaptiveDigitalClass : public JavaClass
82+ {
83+ public:
84+ explicit JavaGainControlAdaptiveDigitalClass (JNIEnv * env);
85+
86+ jclass cls;
87+ jfieldID enabled;
88+ jfieldID dryRun;
89+ jfieldID vadResetPeriodMs;
90+ jfieldID adjacentSpeechFramesThreshold;
91+ jfieldID maxGainChangeDbPerSecond;
92+ jfieldID maxOutputNoiseLevelDbfs;
93+ jfieldID vadProbabilityAttack;
94+ jfieldID levelEstimatorAdjacentSpeechFramesThreshold;
95+ jfieldID useSaturationProtector;
96+ jfieldID initialSaturationMarginDb;
97+ jfieldID extraSaturationMarginDb;
98+ jfieldID gainApplierAdjacentSpeechFramesThreshold;
99+ };
100+
101+ class JavaHighPassFilterClass : public JavaClass
102+ {
103+ public:
104+ explicit JavaHighPassFilterClass (JNIEnv * env);
105+
106+ jclass cls;
107+ jfieldID enabled;
108+ };
109+
110+ class JavaLevelEstimationClass : public JavaClass
111+ {
112+ public:
113+ explicit JavaLevelEstimationClass (JNIEnv * env);
114+
115+ jclass cls;
116+ jfieldID enabled;
117+ };
118+
119+ class JavaNoiseSuppressionClass : public JavaClass
120+ {
121+ public:
122+ explicit JavaNoiseSuppressionClass (JNIEnv * env);
123+
124+ jclass cls;
125+ jfieldID enabled;
126+ jfieldID level;
127+ };
128+
129+ class JavaResidualEchoDetectorClass : public JavaClass
130+ {
131+ public:
132+ explicit JavaResidualEchoDetectorClass (JNIEnv * env);
133+
134+ jclass cls;
135+ jfieldID enabled;
136+ };
137+
138+ class JavaTransientSuppressionClass : public JavaClass
139+ {
140+ public:
141+ explicit JavaTransientSuppressionClass (JNIEnv * env);
142+
143+ jclass cls;
144+ jfieldID enabled;
145+ };
146+
147+ class JavaVoiceDetectionClass : public JavaClass
148+ {
149+ public:
150+ explicit JavaVoiceDetectionClass (JNIEnv * env);
151+
152+ jclass cls;
153+ jfieldID enabled;
154+ };
48155 }
49156}
50157
0 commit comments