This reverts commit 34cdd2d402b08aee4e17a6fd38c87e0e5cd7aa30. Reason for revert: Breaks Chromium Original change's description: > Remove AudioDeviceObserver and make ADM not inherit from the Module interface. > > (Re-upload of https://codereview.webrtc.org/3020493002/) > > Bug: webrtc:4690, webrtc:7306 > Change-Id: I67fb9ebca1296aabc08eae8a292a5c69832dc35e > Reviewed-on: https://webrtc-review.googlesource.com/5360 > Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org> > Reviewed-by: Henrik Andreassson <henrika@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#20083} TBR=solenberg@webrtc.org,henrika@webrtc.org Change-Id: Iad03cafb7865f5a22394c3d4d1d3ff3e0fccd4ff No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:4690, webrtc:7306 Reviewed-on: https://webrtc-review.googlesource.com/5402 Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org> Commit-Queue: Fredrik Solenberg <solenberg@webrtc.org> Cr-Commit-Position: refs/heads/master@{#20085}
157 lines
6.6 KiB
C++
157 lines
6.6 KiB
C++
/*
|
|
* Copyright (c) 2013 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 MODULES_AUDIO_DEVICE_INCLUDE_FAKE_AUDIO_DEVICE_H_
|
|
#define MODULES_AUDIO_DEVICE_INCLUDE_FAKE_AUDIO_DEVICE_H_
|
|
|
|
#include "modules/audio_device/include/audio_device.h"
|
|
|
|
namespace webrtc {
|
|
|
|
class FakeAudioDeviceModule : public AudioDeviceModule {
|
|
public:
|
|
FakeAudioDeviceModule() {}
|
|
virtual ~FakeAudioDeviceModule() {}
|
|
virtual int32_t AddRef() const { return 0; }
|
|
virtual int32_t Release() const { return 0; }
|
|
|
|
private:
|
|
virtual int32_t RegisterEventObserver(AudioDeviceObserver* eventCallback) {
|
|
return 0;
|
|
}
|
|
virtual int32_t RegisterAudioCallback(AudioTransport* audioCallback) {
|
|
return 0;
|
|
}
|
|
virtual int32_t Init() { return 0; }
|
|
virtual int32_t InitSpeaker() { return 0; }
|
|
virtual int32_t SetPlayoutDevice(uint16_t index) { return 0; }
|
|
virtual int32_t SetPlayoutDevice(WindowsDeviceType device) { return 0; }
|
|
virtual int32_t SetStereoPlayout(bool enable) { return 0; }
|
|
virtual int32_t StopPlayout() { return 0; }
|
|
virtual int32_t InitMicrophone() { return 0; }
|
|
virtual int32_t SetRecordingDevice(uint16_t index) { return 0; }
|
|
virtual int32_t SetRecordingDevice(WindowsDeviceType device) { return 0; }
|
|
virtual int32_t SetStereoRecording(bool enable) { return 0; }
|
|
virtual int32_t SetAGC(bool enable) { return 0; }
|
|
virtual int32_t StopRecording() { return 0; }
|
|
|
|
// If the subclass doesn't override the ProcessThread implementation,
|
|
// we'll fall back on an implementation that doesn't eat too much CPU.
|
|
virtual int64_t TimeUntilNextProcess() {
|
|
if (turn_off_module_callbacks_)
|
|
return 7 * 24 * 60 * 60 * 1000; // call me next week.
|
|
uses_default_module_implementation_ = true;
|
|
return 10;
|
|
}
|
|
|
|
virtual void Process() {
|
|
turn_off_module_callbacks_ = uses_default_module_implementation_;
|
|
}
|
|
|
|
virtual int32_t Terminate() { return 0; }
|
|
|
|
virtual int32_t ActiveAudioLayer(AudioLayer* audioLayer) const { return 0; }
|
|
virtual ErrorCode LastError() const { return kAdmErrNone; }
|
|
virtual bool Initialized() const { return true; }
|
|
virtual int16_t PlayoutDevices() { return 0; }
|
|
virtual int16_t RecordingDevices() { return 0; }
|
|
virtual int32_t PlayoutDeviceName(uint16_t index,
|
|
char name[kAdmMaxDeviceNameSize],
|
|
char guid[kAdmMaxGuidSize]) {
|
|
return 0;
|
|
}
|
|
virtual int32_t RecordingDeviceName(uint16_t index,
|
|
char name[kAdmMaxDeviceNameSize],
|
|
char guid[kAdmMaxGuidSize]) {
|
|
return 0;
|
|
}
|
|
virtual int32_t PlayoutIsAvailable(bool* available) { return 0; }
|
|
virtual int32_t InitPlayout() { return 0; }
|
|
virtual bool PlayoutIsInitialized() const { return true; }
|
|
virtual int32_t RecordingIsAvailable(bool* available) { return 0; }
|
|
virtual int32_t InitRecording() { return 0; }
|
|
virtual bool RecordingIsInitialized() const { return true; }
|
|
virtual int32_t StartPlayout() { return 0; }
|
|
virtual bool Playing() const { return false; }
|
|
virtual int32_t StartRecording() { return 0; }
|
|
virtual bool Recording() const { return false; }
|
|
virtual bool AGC() const { return true; }
|
|
virtual bool SpeakerIsInitialized() const { return true; }
|
|
virtual bool MicrophoneIsInitialized() const { return true; }
|
|
virtual int32_t SpeakerVolumeIsAvailable(bool* available) { return 0; }
|
|
virtual int32_t SetSpeakerVolume(uint32_t volume) { return 0; }
|
|
virtual int32_t SpeakerVolume(uint32_t* volume) const { return 0; }
|
|
virtual int32_t MaxSpeakerVolume(uint32_t* maxVolume) const { return 0; }
|
|
virtual int32_t MinSpeakerVolume(uint32_t* minVolume) const { return 0; }
|
|
virtual int32_t MicrophoneVolumeIsAvailable(bool* available) { return 0; }
|
|
virtual int32_t SetMicrophoneVolume(uint32_t volume) { return 0; }
|
|
virtual int32_t MicrophoneVolume(uint32_t* volume) const { return 0; }
|
|
virtual int32_t MaxMicrophoneVolume(uint32_t* maxVolume) const { return 0; }
|
|
virtual int32_t MinMicrophoneVolume(uint32_t* minVolume) const { return 0; }
|
|
virtual int32_t SpeakerMuteIsAvailable(bool* available) { return 0; }
|
|
virtual int32_t SetSpeakerMute(bool enable) { return 0; }
|
|
virtual int32_t SpeakerMute(bool* enabled) const { return 0; }
|
|
virtual int32_t MicrophoneMuteIsAvailable(bool* available) { return 0; }
|
|
virtual int32_t SetMicrophoneMute(bool enable) { return 0; }
|
|
virtual int32_t MicrophoneMute(bool* enabled) const { return 0; }
|
|
virtual int32_t StereoPlayoutIsAvailable(bool* available) const {
|
|
*available = false;
|
|
return 0;
|
|
}
|
|
virtual int32_t StereoPlayout(bool* enabled) const { return 0; }
|
|
virtual int32_t StereoRecordingIsAvailable(bool* available) const {
|
|
*available = false;
|
|
return 0;
|
|
}
|
|
virtual int32_t StereoRecording(bool* enabled) const { return 0; }
|
|
virtual int32_t SetRecordingChannel(const ChannelType channel) { return 0; }
|
|
virtual int32_t RecordingChannel(ChannelType* channel) const { return 0; }
|
|
virtual int32_t PlayoutDelay(uint16_t* delayMS) const {
|
|
*delayMS = 0;
|
|
return 0;
|
|
}
|
|
virtual int32_t RecordingDelay(uint16_t* delayMS) const { return 0; }
|
|
virtual int32_t SetRecordingSampleRate(const uint32_t samplesPerSec) {
|
|
return 0;
|
|
}
|
|
virtual int32_t RecordingSampleRate(uint32_t* samplesPerSec) const {
|
|
return 0;
|
|
}
|
|
virtual int32_t SetPlayoutSampleRate(const uint32_t samplesPerSec) {
|
|
return 0;
|
|
}
|
|
virtual int32_t PlayoutSampleRate(uint32_t* samplesPerSec) const { return 0; }
|
|
virtual int32_t SetLoudspeakerStatus(bool enable) { return 0; }
|
|
virtual int32_t GetLoudspeakerStatus(bool* enabled) const { return 0; }
|
|
virtual bool BuiltInAECIsAvailable() const { return false; }
|
|
virtual int32_t EnableBuiltInAEC(bool enable) { return -1; }
|
|
virtual bool BuiltInAGCIsAvailable() const { return false; }
|
|
virtual int32_t EnableBuiltInAGC(bool enable) { return -1; }
|
|
virtual bool BuiltInNSIsAvailable() const { return false; }
|
|
virtual int32_t EnableBuiltInNS(bool enable) { return -1; }
|
|
|
|
#if defined(WEBRTC_IOS)
|
|
virtual int GetPlayoutAudioParameters(AudioParameters* params) const {
|
|
return -1;
|
|
}
|
|
virtual int GetRecordAudioParameters(AudioParameters* params) const {
|
|
return -1;
|
|
}
|
|
#endif // WEBRTC_IOS
|
|
|
|
private:
|
|
bool uses_default_module_implementation_ = false;
|
|
bool turn_off_module_callbacks_ = false;
|
|
};
|
|
|
|
} // namespace webrtc
|
|
|
|
#endif // MODULES_AUDIO_DEVICE_INCLUDE_FAKE_AUDIO_DEVICE_H_
|