| /* |
| * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
| * |
| * Use of this source code is governed by a BSD-style license |
| * that can be found in the LICENSE file in the root of the source |
| * tree. An additional intellectual property rights grant can be found |
| * in the file PATENTS. All contributing project authors may |
| * be found in the AUTHORS file in the root of the source tree. |
| */ |
| |
| #ifndef WEBRTC_VOICE_ENGINE_VOE_HARDWARE_IMPL_H |
| #define WEBRTC_VOICE_ENGINE_VOE_HARDWARE_IMPL_H |
| |
| #include "webrtc/voice_engine/include/voe_hardware.h" |
| |
| #include "webrtc/voice_engine/shared_data.h" |
| |
| namespace webrtc { |
| |
| class VoEHardwareImpl : public VoEHardware { |
| public: |
| int GetNumOfRecordingDevices(int& devices) override; |
| |
| int GetNumOfPlayoutDevices(int& devices) override; |
| |
| int GetRecordingDeviceName(int index, |
| char strNameUTF8[128], |
| char strGuidUTF8[128]) override; |
| |
| int GetPlayoutDeviceName(int index, |
| char strNameUTF8[128], |
| char strGuidUTF8[128]) override; |
| |
| int SetRecordingDevice(int index, |
| StereoChannel recordingChannel = kStereoBoth) override; |
| |
| int SetPlayoutDevice(int index) override; |
| |
| int SetAudioDeviceLayer(AudioLayers audioLayer) override; |
| |
| int GetAudioDeviceLayer(AudioLayers& audioLayer) override; |
| |
| int SetRecordingSampleRate(unsigned int samples_per_sec) override; |
| int RecordingSampleRate(unsigned int* samples_per_sec) const override; |
| int SetPlayoutSampleRate(unsigned int samples_per_sec) override; |
| int PlayoutSampleRate(unsigned int* samples_per_sec) const override; |
| |
| bool BuiltInAECIsAvailable() const override; |
| int EnableBuiltInAEC(bool enable) override; |
| bool BuiltInAGCIsAvailable() const override; |
| int EnableBuiltInAGC(bool enable) override; |
| bool BuiltInNSIsAvailable() const override; |
| int EnableBuiltInNS(bool enable) override; |
| |
| protected: |
| VoEHardwareImpl(voe::SharedData* shared); |
| ~VoEHardwareImpl() override; |
| |
| private: |
| voe::SharedData* _shared; |
| }; |
| |
| } // namespace webrtc |
| |
| #endif // WEBRTC_VOICE_ENGINE_VOE_HARDWARE_IMPL_H |