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#ifndef WEBRTC_VOICE_ENGINE_VOE_EXTERNAL_MEDIA_IMPL_H
12#define WEBRTC_VOICE_ENGINE_VOE_EXTERNAL_MEDIA_IMPL_H
13
14#include "webrtc/voice_engine/include/voe_external_media.h"
15
16#include "webrtc/voice_engine/shared_data.h"
17
18namespace webrtc {
19
20class VoEExternalMediaImpl : public VoEExternalMedia
21{
22public:
23    virtual int RegisterExternalMediaProcessing(
24        int channel,
25        ProcessingTypes type,
26        VoEMediaProcess& processObject);
27
28    virtual int DeRegisterExternalMediaProcessing(
29        int channel,
30        ProcessingTypes type);
31
32
33    virtual int GetAudioFrame(int channel, int desired_sample_rate_hz,
34                              AudioFrame* frame);
35
36    virtual int SetExternalMixing(int channel, bool enable);
37
38protected:
39    VoEExternalMediaImpl(voe::SharedData* shared);
40    virtual ~VoEExternalMediaImpl();
41
42private:
43    voe::SharedData* shared_;
44};
45
46}  // namespace webrtc
47
48#endif  // WEBRTC_VOICE_ENGINE_VOE_EXTERNAL_MEDIA_IMPL_H
49