1 /* 2 * Copyright 2004 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_SOUND_NULLSOUNDSYSTEM_H_ 12 #define WEBRTC_SOUND_NULLSOUNDSYSTEM_H_ 13 14 #include "webrtc/sound/soundsysteminterface.h" 15 16 namespace rtc { 17 18 class SoundDeviceLocator; 19 class SoundInputStreamInterface; 20 class SoundOutputStreamInterface; 21 22 // A simple reference sound system that drops output samples and generates 23 // no input samples. 24 class NullSoundSystem : public SoundSystemInterface { 25 public: Create()26 static SoundSystemInterface *Create() { 27 return new NullSoundSystem(); 28 } 29 30 ~NullSoundSystem() override; 31 32 bool Init() override; 33 void Terminate() override; 34 35 bool EnumeratePlaybackDevices(SoundDeviceLocatorList *devices) override; 36 bool EnumerateCaptureDevices(SoundDeviceLocatorList *devices) override; 37 38 SoundOutputStreamInterface *OpenPlaybackDevice( 39 const SoundDeviceLocator *device, 40 const OpenParams ¶ms) override; 41 SoundInputStreamInterface *OpenCaptureDevice( 42 const SoundDeviceLocator *device, 43 const OpenParams ¶ms) override; 44 45 bool GetDefaultPlaybackDevice(SoundDeviceLocator **device) override; 46 bool GetDefaultCaptureDevice(SoundDeviceLocator **device) override; 47 48 const char *GetName() const override; 49 }; 50 51 } // namespace rtc 52 53 #endif // WEBRTC_SOUND_NULLSOUNDSYSTEM_H_ 54