1/*
2 *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 *
4 *  Use of this source code is governed by a BSD-style license
5 *  that can be found in the LICENSE file in the root of the source
6 *  tree. An additional intellectual property rights grant can be found
7 *  in the file PATENTS.  All contributing project authors may
8 *  be found in the AUTHORS file in the root of the source tree.
9 */
10
11#include "webrtc/modules/audio_processing/ns/include/noise_suppression_x.h"
12
13#include <stdlib.h>
14
15#include "webrtc/common_audio/signal_processing/include/real_fft.h"
16#include "webrtc/modules/audio_processing/ns/nsx_core.h"
17#include "webrtc/modules/audio_processing/ns/nsx_defines.h"
18
19int WebRtcNsx_Create(NsxHandle** nsxInst) {
20  NsxInst_t* self = malloc(sizeof(NsxInst_t));
21  *nsxInst = (NsxHandle*)self;
22
23  if (self != NULL) {
24    WebRtcSpl_Init();
25    self->real_fft = NULL;
26    self->initFlag = 0;
27    return 0;
28  } else {
29    return -1;
30  }
31
32}
33
34int WebRtcNsx_Free(NsxHandle* nsxInst) {
35  WebRtcSpl_FreeRealFFT(((NsxInst_t*)nsxInst)->real_fft);
36  free(nsxInst);
37  return 0;
38}
39
40int WebRtcNsx_Init(NsxHandle* nsxInst, uint32_t fs) {
41  return WebRtcNsx_InitCore((NsxInst_t*)nsxInst, fs);
42}
43
44int WebRtcNsx_set_policy(NsxHandle* nsxInst, int mode) {
45  return WebRtcNsx_set_policy_core((NsxInst_t*)nsxInst, mode);
46}
47
48int WebRtcNsx_Process(NsxHandle* nsxInst, short* speechFrame,
49                      short* speechFrameHB, short* outFrame,
50                      short* outFrameHB) {
51  return WebRtcNsx_ProcessCore(
52      (NsxInst_t*)nsxInst, speechFrame, speechFrameHB, outFrame, outFrameHB);
53}
54