Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(107)

Side by Side Diff: webrtc/sound/alsasoundsystem.h

Issue 1715043002: Remove webrtc/sound/ subdir. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@remove_devicemanager
Patch Set: rebase Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « webrtc/sound/OWNERS ('k') | webrtc/sound/alsasoundsystem.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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_ALSASOUNDSYSTEM_H_
12 #define WEBRTC_SOUND_ALSASOUNDSYSTEM_H_
13
14 #include "webrtc/sound/alsasymboltable.h"
15 #include "webrtc/sound/soundsysteminterface.h"
16 #include "webrtc/base/constructormagic.h"
17
18 namespace rtc {
19
20 class AlsaStream;
21 class AlsaInputStream;
22 class AlsaOutputStream;
23
24 // Sound system implementation for ALSA, the predominant sound device API on
25 // Linux (but typically not used directly by applications anymore).
26 class AlsaSoundSystem : public SoundSystemInterface {
27 friend class AlsaStream;
28 friend class AlsaInputStream;
29 friend class AlsaOutputStream;
30 public:
31 static SoundSystemInterface *Create() {
32 return new AlsaSoundSystem();
33 }
34
35 AlsaSoundSystem();
36
37 ~AlsaSoundSystem() override;
38
39 bool Init() override;
40 void Terminate() override;
41
42 bool EnumeratePlaybackDevices(SoundDeviceLocatorList *devices) override;
43 bool EnumerateCaptureDevices(SoundDeviceLocatorList *devices) override;
44
45 bool GetDefaultPlaybackDevice(SoundDeviceLocator **device) override;
46 bool GetDefaultCaptureDevice(SoundDeviceLocator **device) override;
47
48 SoundOutputStreamInterface *OpenPlaybackDevice(
49 const SoundDeviceLocator *device,
50 const OpenParams &params) override;
51 SoundInputStreamInterface *OpenCaptureDevice(
52 const SoundDeviceLocator *device,
53 const OpenParams &params) override;
54
55 const char *GetName() const override;
56
57 private:
58 bool IsInitialized() { return initialized_; }
59
60 bool EnumerateDevices(SoundDeviceLocatorList *devices,
61 bool capture_not_playback);
62
63 bool GetDefaultDevice(SoundDeviceLocator **device);
64
65 static size_t FrameSize(const OpenParams &params);
66
67 template <typename StreamInterface>
68 StreamInterface *OpenDevice(
69 const SoundDeviceLocator *device,
70 const OpenParams &params,
71 snd_pcm_stream_t type,
72 StreamInterface *(AlsaSoundSystem::*start_fn)(
73 snd_pcm_t *handle,
74 size_t frame_size,
75 int wait_timeout_ms,
76 int flags,
77 int freq));
78
79 SoundOutputStreamInterface *StartOutputStream(
80 snd_pcm_t *handle,
81 size_t frame_size,
82 int wait_timeout_ms,
83 int flags,
84 int freq);
85
86 SoundInputStreamInterface *StartInputStream(
87 snd_pcm_t *handle,
88 size_t frame_size,
89 int wait_timeout_ms,
90 int flags,
91 int freq);
92
93 const char *GetError(int err);
94
95 bool initialized_;
96 AlsaSymbolTable symbol_table_;
97
98 RTC_DISALLOW_COPY_AND_ASSIGN(AlsaSoundSystem);
99 };
100
101 } // namespace rtc
102
103 #endif // WEBRTC_SOUND_ALSASOUNDSYSTEM_H_
OLDNEW
« no previous file with comments | « webrtc/sound/OWNERS ('k') | webrtc/sound/alsasoundsystem.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698