Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / webrtc / sound / nullsoundsystem.h
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:
26   static SoundSystemInterface *Create() {
27     return new NullSoundSystem();
28   }
29
30   virtual ~NullSoundSystem();
31
32   virtual bool Init();
33   virtual void Terminate();
34
35   virtual bool EnumeratePlaybackDevices(SoundDeviceLocatorList *devices);
36   virtual bool EnumerateCaptureDevices(SoundDeviceLocatorList *devices);
37
38   virtual SoundOutputStreamInterface *OpenPlaybackDevice(
39       const SoundDeviceLocator *device,
40       const OpenParams &params);
41   virtual SoundInputStreamInterface *OpenCaptureDevice(
42       const SoundDeviceLocator *device,
43       const OpenParams &params);
44
45   virtual bool GetDefaultPlaybackDevice(SoundDeviceLocator **device);
46   virtual bool GetDefaultCaptureDevice(SoundDeviceLocator **device);
47
48   virtual const char *GetName() const;
49 };
50
51 }  // namespace rtc
52
53 #endif  // WEBRTC_SOUND_NULLSOUNDSYSTEM_H_