/*
 *  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.
 */

#include "modules/audio_device/dummy/audio_device_dummy.h"

#include <cstdint>

#include "api/audio/audio_device.h"
#include "api/audio/audio_device_defines.h"
#include "modules/audio_device/audio_device_buffer.h"
#include "modules/audio_device/audio_device_generic.h"

namespace webrtc {

int32_t AudioDeviceDummy::ActiveAudioLayer(
    AudioDeviceModule::AudioLayer& /* audioLayer */) const {
  return -1;
}

AudioDeviceGeneric::InitStatus AudioDeviceDummy::Init() {
  return InitStatus::OK;
}

int32_t AudioDeviceDummy::Terminate() {
  return 0;
}

bool AudioDeviceDummy::Initialized() const {
  return true;
}

int16_t AudioDeviceDummy::PlayoutDevices() {
  return -1;
}

int16_t AudioDeviceDummy::RecordingDevices() {
  return -1;
}

int32_t AudioDeviceDummy::PlayoutDeviceName(
    uint16_t /* index */,
    char /* name */[kAdmMaxDeviceNameSize],
    char /* guid */[kAdmMaxGuidSize]) {
  return -1;
}

int32_t AudioDeviceDummy::RecordingDeviceName(
    uint16_t /* index */,
    char /* name */[kAdmMaxDeviceNameSize],
    char /* guid */[kAdmMaxGuidSize]) {
  return -1;
}

int32_t AudioDeviceDummy::SetPlayoutDevice(uint16_t /* index */) {
  return -1;
}

int32_t AudioDeviceDummy::SetPlayoutDevice(
    AudioDeviceModule::WindowsDeviceType /* device */) {
  return -1;
}

int32_t AudioDeviceDummy::SetRecordingDevice(uint16_t /* index */) {
  return -1;
}

int32_t AudioDeviceDummy::SetRecordingDevice(
    AudioDeviceModule::WindowsDeviceType /* device */) {
  return -1;
}

int32_t AudioDeviceDummy::PlayoutIsAvailable(bool& /* available */) {
  return -1;
}

int32_t AudioDeviceDummy::InitPlayout() {
  return -1;
}

bool AudioDeviceDummy::PlayoutIsInitialized() const {
  return false;
}

int32_t AudioDeviceDummy::RecordingIsAvailable(bool& /* available */) {
  return -1;
}

int32_t AudioDeviceDummy::InitRecording() {
  return -1;
}

bool AudioDeviceDummy::RecordingIsInitialized() const {
  return false;
}

int32_t AudioDeviceDummy::StartPlayout() {
  return -1;
}

int32_t AudioDeviceDummy::StopPlayout() {
  return 0;
}

bool AudioDeviceDummy::Playing() const {
  return false;
}

int32_t AudioDeviceDummy::StartRecording() {
  return -1;
}

int32_t AudioDeviceDummy::StopRecording() {
  return 0;
}

bool AudioDeviceDummy::Recording() const {
  return false;
}

int32_t AudioDeviceDummy::InitSpeaker() {
  return -1;
}

bool AudioDeviceDummy::SpeakerIsInitialized() const {
  return false;
}

int32_t AudioDeviceDummy::InitMicrophone() {
  return -1;
}

bool AudioDeviceDummy::MicrophoneIsInitialized() const {
  return false;
}

int32_t AudioDeviceDummy::SpeakerVolumeIsAvailable(bool& /* available */) {
  return -1;
}

int32_t AudioDeviceDummy::SetSpeakerVolume(uint32_t /* volume */) {
  return -1;
}

int32_t AudioDeviceDummy::SpeakerVolume(uint32_t& /* volume */) const {
  return -1;
}

int32_t AudioDeviceDummy::MaxSpeakerVolume(uint32_t& /* maxVolume */) const {
  return -1;
}

int32_t AudioDeviceDummy::MinSpeakerVolume(uint32_t& /* minVolume */) const {
  return -1;
}

int32_t AudioDeviceDummy::MicrophoneVolumeIsAvailable(bool& /* available */) {
  return -1;
}

int32_t AudioDeviceDummy::SetMicrophoneVolume(uint32_t /* volume */) {
  return -1;
}

int32_t AudioDeviceDummy::MicrophoneVolume(uint32_t& /* volume */) const {
  return -1;
}

int32_t AudioDeviceDummy::MaxMicrophoneVolume(uint32_t& /* maxVolume */) const {
  return -1;
}

int32_t AudioDeviceDummy::MinMicrophoneVolume(uint32_t& /* minVolume */) const {
  return -1;
}

int32_t AudioDeviceDummy::SpeakerMuteIsAvailable(bool& /* available */) {
  return -1;
}

int32_t AudioDeviceDummy::SetSpeakerMute(bool /* enable */) {
  return -1;
}

int32_t AudioDeviceDummy::SpeakerMute(bool& /* enabled */) const {
  return -1;
}

int32_t AudioDeviceDummy::MicrophoneMuteIsAvailable(bool& /* available */) {
  return -1;
}

int32_t AudioDeviceDummy::SetMicrophoneMute(bool /* enable */) {
  return -1;
}

int32_t AudioDeviceDummy::MicrophoneMute(bool& /* enabled */) const {
  return -1;
}

int32_t AudioDeviceDummy::StereoPlayoutIsAvailable(bool& /* available */) {
  return -1;
}
int32_t AudioDeviceDummy::SetStereoPlayout(bool /* enable */) {
  return -1;
}

int32_t AudioDeviceDummy::StereoPlayout(bool& /* enabled */) const {
  return -1;
}

int32_t AudioDeviceDummy::StereoRecordingIsAvailable(bool& /* available */) {
  return -1;
}

int32_t AudioDeviceDummy::SetStereoRecording(bool /* enable */) {
  return -1;
}

int32_t AudioDeviceDummy::StereoRecording(bool& /* enabled */) const {
  return -1;
}

int32_t AudioDeviceDummy::PlayoutDelay(uint16_t& /* delayMS */) const {
  return -1;
}

void AudioDeviceDummy::AttachAudioBuffer(AudioDeviceBuffer* /* audioBuffer */) {
}
}  // namespace webrtc
